代码之家  ›  专栏  ›  技术社区  ›  notnoop

具有休眠的持久集合字段

  •  8
  • notnoop  · 技术社区  · 15 年前

    使用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 回复  |  直到 12 年前
        1
  •  7
  •   Community Michael Schmitz    7 年前

    看一看 This .也许是有帮助的。

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

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

    )

        2
  •  0
  •   Daff    15 年前

    看看 Hibernate Annotations Documentation about Collections 基本上,你必须告诉列表它与什么关系。

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

    那么它就可以工作了。

        3
  •  0
  •   notnoop    15 年前

    使用A Serializable 物体似乎工作得更好。改变 list 属性到 ArrayList<String> 似乎解决了问题。