码迷,mamicode.com
首页 > Web开发 > 详细

hibernate映射集合属性

时间:2016-08-10 16:06:19      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:

注意:持久化集合字段必须声明为接口,两个持久化对象不能共享同一个集合元素的引用

映射集合属性 
@ElementCollection{
                                        fetch
                                        targetClass
                                  }
 
映射集合属性表
@CollectionTable{
                                  name
                                  catalog
                                  schema
                                  indexes
                                  joinColumns
                                  uniqueConstraints
                             }
 
@JoinColumn{
                              columnDefinition
                              name
                              insertable
                              updatable
                              nullable
                              table
                              unique
                              referencedColumnName
                       }
 
@Column
 
索引列
@OrderColumn
@MapKeyColumn

 
    List集合属性
        示例代码:
            // 集合属性,保留该对象关联的学校
            @ElementCollection(targetClass=String.class)
            // 映射保存集合属性的表
            @CollectionTable(name="school_inf",
                        joinColumns=@JoinColumn(name="person_id",nullable=false))
 
            // 指定保存集合元素的列为 school_name
            @Column(name="school_name")
            // 映射集合元素索引的列
            @OrderColumn(name="list_order")
        private List<String> schools = new ArrayList<>();
    
    数组几乎与List集合一样
 
    Set集合属性   
           没有索引
     示例代码:
         @ElementCollection(targetClass=String.class)
           // 映射保存集合属性的表
          @CollectionTable(name="school_inf",
                         joinColumns=@JoinColumn(name="person_id",nullable=false))
 
          // 指定保存集合元素的列为 school_name
         @Column(name="school_name",
                nullable=false)
          private Set<String> schools = new HashSet<>();
 
 Map集合属性
      索引列用@MapKeyColumn映射
   示例代码:
        // 集合属性,保留该对象关联的成绩
            @ElementCollection(targetClass=Float.class)
            // 映射保存集合属性的表
            @CollectionTable(name="score_inf",
                        joinColumns=@JoinColumn(name="person_id",nullable=false))
            @MapKeyColumn(name="subject_name")
            //指定Map key的类型为String
            @MapKeyClass(String.class)
            // 指定保存集合元素的列为 school_name
            @Column(name="mark")
        private Map<String , Float> score = new HashMap<>();
 

hibernate映射集合属性

标签:

原文地址:http://www.cnblogs.com/goingforward/p/5756841.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!