2009-09-01 5 views
8

En utilisant hibernate, comment puis-je conserver une classe avec un champ List<String>?Conserver les champs de collection avec hibernate

Tenir compte de la classe d'entité suivante:

@Entity 
public class Blog { 
    private Long id; 
    private List<String> list; 

    @Id 
    @GeneratedValue 
    public Long getId() { return id; } 
    public void setId(Long id) { this.id = id; } 

    public List<String> getList() { return list; } 
    public void setList(List<String> list) { this.list = list; } 
} 

Cependant, lorsque je tente de le sauver, je reçois l'erreur suivante:

[INFO] An exception occured while executing the Java class. null 

Could not determine type for: java.util.List, at table: Blog, for columns: [org.hibernate.mapping.Column(list)] 

J'ai essayé d'ajouter '@CollectionOfElements' à getList(), mais Seul le id est enregistré dans la bibliothèque. Aucune colonne correspondante n'est créée pour la liste.

Note: Je suis juste essayer Hibernate, pour que je puisse utiliser des liens de documentation que nous me aider à comprendre la gestion des relations avec la collection Hibernate

Répondre

7

Jetez un oeil à This. Peut-être que c'est de l'aide.

Avez-vous appliqué @CollectionOfElements comme suit?

@org.hibernate.annotations.CollectionOfElements(
targetElement = java.lang.String.class 

)

+0

Merci! Une nouvelle table est créée pour enregistrer le mappage – notnoop

0

Jetez un oeil à la Hibernate Annotations Documentation about Collections fondamentalement, vous devez dire la liste dans ce relation à laquelle il se tient.

@OneToMany(mappedBy="blog") 
public List<String> getList() { return list; } 

Ensuite, cela devrait fonctionner.

+0

Je voudrais obtenir l'erreur suivante: '@OneToOne ou @ManyToOne sur uk.co.pookey.hibernate.model.Blog.list fait référence à une entité inconnue: java.util.List – notnoop

+0

Cela devrait fonctionner cependant. Avez-vous importé l'annotation Hibernate ou JPA? – Daff

+0

Importation JPA javax.persistence annotation – notnoop

0

Utilisez un objet Serializable semble mieux fonctionner. La modification de la propriété list à ArrayList<String> semble résoudre le problème.