2010-03-19 6 views
0

J'ai 2 tables ... Challenge et ChallengeYear, ChallengeYear est seulement pour créer une liste d'années en challenge. Je veux seulement faire défier une entité, contenant une liste d'années de liste. Est-ce possible? J'ai regardé @SecondaryTable avec @JoinColumn et @OneToMany, mais ni l'un ni l'autre ne peuvent faire l'affaire, ou je néglige quelque chose.Mapping Hibernate, sur une classe non mappée

Quelqu'un peut-il m'aider?

Salutations, Jan

+0

et comment voulez-vous que ceux-ci persistaient à la base de données? Que contient ChallangeYear? Est-ce seulement un entier contenant l'année, ou il y en a plus? – Bozho

+0

il doit être persisté comme un @OneToMany (CascadeType.ALL, FetchType.EAGER) ChallengeYear contient une contrainte FK pour le Challenge, puis une année de colonne. Donc, il est possible d'ajouter plusieurs années à un défi – Jan

Répondre

1

Quelle est l'année dans votre modèle, est-il un nombre entier?

Si oui, vous pouvez annoter votre méthode Challenge.getYears avec @CollectionOfElements

comme:

@CollectionOfElements 
    @JoinTable(
    [email protected](name="ChallengeYear"), 
    joinColumns = @JoinColumn(name="challengeId") 
) 
    @Column(name="year", nullable=false) 
    List<Integer> getYears() { 
    ... 
+0

fonctionne très bien, merci, je suis tombé sur l'annotation @CollectionOfElements, mais je ne savais pas comment le configurer. De toute façon, merci – Jan

+0

@Jan - si cette réponse a fonctionné pour vous, marquez-le comme accepté (la coche ci-dessous le compteur de votes) – Bozho

+0

@Jan: mon plaisir ... la documentation de référence de cartographie hibernate peut être une lecture difficile @Bozho: THX ;-) – Thierry

Questions connexes