2009-09-01 145 views
8

使用休眠,我如何堅持與List<String>字段的類?堅持收集字段與休眠

考慮下面的實體類:

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

然而,當我試圖挽救它,我得到以下錯誤:

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

我嘗試添加 '@CollectionOfElements' 到getList(),但隨後只有id被保存到庫中。沒有爲列表創建相應的列。

注:我只是想休眠,所以我可以使用文檔鏈接,我們會幫助我瞭解的集合關係管理在Hibernate中

回答

7

看一看This。也許它是有幫助的。

您是否按如下方式應用@CollectionOfElements?

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

+0

謝謝!創建新表以保存映射 – notnoop 2009-09-01 13:57:02

0

看一看的Hibernate Annotations Documentation about Collections基本上你要告訴列表中的什麼關係它的立場。

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

然後它應該工作。

+0

我會得到thw以下錯誤:'@OneToOne或@ManyToOne在uk.co.pookey.hibernate.model.Blog.list引用一個未知的實體:java.util.List – notnoop 2009-09-01 05:13:20

+0

這應該工作,雖然。您是否導入了Hibernate或JPA註釋? – Daff 2009-09-01 06:44:55

+0

導入的JPA javax.persistence註釋 – notnoop 2009-09-01 13:33:20

0

使用Serializable對象似乎更好地工作。將list屬性更改爲ArrayList<String>似乎可以解決問題。