J'ai une classe Hibernate qui est essentiellement juste une enveloppe autour de plusieurs collections.Rupture d'une grande classe Hibernate
Ainsi, la classe est (massivement simplifiée/pseudo) quelque chose comme:
@Entity public class MyClass { @OneToMany Map1 @OneToMany Map2 @OneToMany Map3 AddToMap1(); AddToMap2(); AddToMap3(); RemoveFromMap1(); RemoveFromMap2(); RemoveFromMap3(); DoWhateverWithMap1(); DoWhateverWithMap2(); DoWhateverWithMap3(); }
etc. Chacune de ces Maps a alors quelques méthodes qui y sont associés (ajouter/supprimer/interroger/etc).
Comme vous pouvez l'imaginer, au moment où j'ai ajouté la 10e collection, la classe devient un peu ridicule en taille.
Ce que j'aimerais faire est quelque chose le long des lignes de:
@Entity public class MyClass { ClassWrappingMap1; ClassWrappingMap2; ClassWrappingMap3; }
Avec toutes les différentes méthodes enveloppées dans ces classes:
public class ClassWrappingMap1 { @OneToMany Map AddToMap(); RemoveFromMap(); DoWhateverWithMap(); }
Je pensais que je pourrais peut-être utiliser @Embedded
pour cela, mais je ne semble pas pouvoir le faire fonctionner (Hibernate n'essaye même pas de maintenir la Map dans le wrapperClass).
Quelqu'un a déjà fait quelque chose comme ça avant? Des indices?
Un grand merci,
Ned
Pouvez-vous montrer ce que vous avez essayé avec l'annotation @Embedded? –
Bonne réponse. (+1) –
Juha - J'ai fait exactement ce que votre code ("vous pourriez essayer quelque chose comme ça") ci-dessous. J'ai posté sur le forum Hibernate - Voyons voir si certains de ces gars peuvent décrire une meilleure pratique ou quelque chose. Merci beaucoup pour vos réponses. –