hibernate映射集合属性(属性内非持久化类)

来源:互联网 发布:虚拟图片打印机软件 编辑:程序博客网 时间:2024/06/06 00:06

集合类的实例具有如下行为:当持久化对象被保存的时候,集合属性自动被保存,删除等。

理解:集合属性会形成一张表,是持久化类的从表,相当于自动级联处理

entity:

package entity;import java.util.ArrayList;import java.util.List;import javax.persistence.CollectionTable;import javax.persistence.Column;import javax.persistence.ElementCollection;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.OrderColumn;import org.hibernate.annotations.Fetch;@Entitypublic class Person {@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="person_id")private Integer id;private String name;@ElementCollection(targetClass=String.class,fetch=FetchType.EAGER)@CollectionTable(name="perosn_info",joinColumns=@JoinColumn(name="person_id"))@Column(name="school_name")@OrderColumn(name="list_order")private List<String> school=new ArrayList<String>();public Person(){}public Person(Integer id, String name, List<String> school) {super();this.id = id;this.name = name;this.school = school;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public List<String> getSchool() {return school;}public void setSchool(List<String> school) {this.school = school;}}

person:


person_ifn表;


也就是说:在perosn中有school属性,也是通过perosn来管理school,但是对应的列在person-info表中

原创粉丝点击