Hibernate映射组件属性为集合(二)
2016-03-07 21:11
393 查看
如果组件类又包含了List、Set、Map等集合属性,则可直接在组件类中使用@ElementCollection修饰集合属性,并使用@CollectionTable指定保存集合属性的数据表——与普通实体类中映射集合属性的方式基本相同。假设上面的例子的Name中增加了一个power属性,而这个power属性为Map类型的。
执行结果如下:
@Embeddable public class Name { // 定义first成员变量 @Column(name="person_firstname") private String first; // 定义last成员变量 @Column(name="person_lastname") private String last; // 引用拥有该Name的Person对象 @Parent private Person owner; // 集合属性,保留该对象关联的考试成绩 @ElementCollection(targetClass=Integer.class) @CollectionTable(name="power_inf", joinColumns=@JoinColumn(name="person_name_id" , nullable=false)) @MapKeyColumn(name="name_aspect") @Column(name="name_power" , nullable=false) @MapKeyClass(String.class) private Map<String , Integer> power = new HashMap<>(); // 无参数的构造器 public Name() { } // 初始化全部成员变量的构造器 public Name(String first , String last) { this.first = first; this.last = last; } // first的setter和getter方法 public void setFirst(String first) { this.first = first; } public String getFirst() { return this.first; } // last的setter和getter方法 public void setLast(String last) { this.last = last; } public String getLast() { return this.last; } // owner的setter和getter方法 public void setOwner(Person owner) { this.owner = owner; } public Person getOwner() { return this.owner; } // power的setter和getter方法 public void setPower(Map<String ,Integer> power) { this.power = power; } public Map<String ,Integer> getPower() { return this.power; } }
执行结果如下:
相关文章推荐
- 百钱买百鸡(很流行的)
- Codeforces--106C--Buns(背包)
- 二维数组名本质
- Convert Sorted List to Binary Search Tree
- 亲测实验,RTC使用内部低速时钟LSI时,对RTC的配置过程
- 双重检查加锁机制--解决线程安全
- C++标准库简介、与STL的关系。
- POJ 3984 记录路径的BFS
- G代码 机器人的CNC实现
- POJ 3903 —— Stock Exchange 最长上升子序列
- Android OkHttp之 offline cache
- 从爬取湖北某高校hub教务系统课表浅谈Java信息抓取的实现 —— import java.*;
- [国嵌攻略][117][LED驱动程序设计]
- java里的静态变量是放在了堆内存还是栈内存?
- 杭电1284
- hdoj 1220 Cube
- Java设计模式之访问者模式
- 【数据结构】堆
- php日记——配置的坑
- 算法训练 学做菜