2009-09-01 106 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>似乎可以解决问题。