63 votes

Comment faire persister une liste de chaînes dans Hibernate?

Je semble avoir des problèmes avec la cartographie d'une liste dans Hibernate. Dans notre projet, il y a une classe Card avec contient une classe Answer avec Answer contenant un List<String> .

Est-ce qu'un List<String> mappable par Hibernate en utilisant des annotations ? Je veux dire, puisqu'il n'a pas l'annotation @Entity

Salutations

121voto

Sean Patrick Floyd Points 109428

Utiliser @ElementCollection :

 @ElementCollection
@CollectionTable(name="Nicknames", joinColumns=@JoinColumn(name="user_id"))
@Column(name="nickname")
public List<String> getNicknames() { ... } 

Source : 7.2.3. Collections de types de base et d'objets intégrables

3voto

essayer

   @org.hibernate.annotations.CollectionOfElements(
        targetElement = java.lang.String.class
    )
    @JoinTable(
        name = "foo",
        joinColumns = @JoinColumn(name = "foo_id")
    )
    @org.hibernate.annotations.IndexColumn(
        name = "POSITION", base = 1
    )
    @Column(name = "baz", nullable = false)
    private List<String> arguments = new ArrayList<String>();

ou voir cet exemple de détail

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X