使用休眠保持集合字段

时间:2009-09-01 05:01:11

标签: java hibernate jpa persistence

使用hibernate,如何使用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,所以我可以使用文档链接来帮助我理解Hibernate中的集合关系管理

3 个答案:

答案 0 :(得分:7)

看看This。也许它有所帮助。

您是否按以下方式申请@CollectionOfElements?

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

答案 1 :(得分:0)

看看Hibernate Annotations Documentation about Collections基本上你必须告诉清单它与它的关系。

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

然后它应该工作。

答案 2 :(得分:0)

使用Serializable对象似乎效果更好。将list属性更改为ArrayList<String>似乎可以解决问题。