2009-09-01 13 views
8

Uso della sospensione, come è possibile mantenere una classe con un campo List<String>?Campi di raccolta persistenti con hibernate

Si consideri il seguente classe entità:

@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; } 
} 

Tuttavia, quando si tenta di salvarlo, ottengo il seguente errore:

[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)] 

Ho provato ad aggiungere '@CollectionOfElements' a getList(), ma poi solo il id viene salvato nella libreria. Nessuna colonna corrispondente viene creata per la lista.

Nota: Sto solo cercando Hibernate, così ho potuto utilizzare i collegamenti di documentazione che ci aiutano a capire la gestione dei rapporti di raccolta in Hibernate

risposta

7

Dai un'occhiata allo This. Forse è d'aiuto.

Hai applicato @CollectionOfElements come segue?

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

)

+0

Grazie! Nuova tabella creata per salvare la mappatura – notnoop

0

Dai un'occhiata al Hibernate Annotations Documentation about Collections pratica dovete dire la lista di ciò che relazione a cui sta.

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

Quindi dovrebbe funzionare.

+0

Vorrei ottenere il seguente errore: '@OneToOne o @ManyToOne su uk.co.pookey.hibernate.model.Blog.list fa riferimento a un'entità sconosciuta: java.util.List – notnoop

+0

Che dovrebbe funzionare comunque. Hai importato l'annotazione Hibernate o JPA? – Daff

+0

JPA javax.persistence annotazione importata – notnoop

0

Utilizzare un oggetto Serializable sembra funzionare meglio. La modifica della proprietà su ArrayList<String> sembra risolvere il problema.

Problemi correlati