Set List Map来作为Entity的属性,他们都是类集合,一个有顺序,一个没有,说以在声明是,
List 总是将外键和OrderCloumn 作为主键,Set 是将外键和元素列作为主键
他们三个都是默认经Id 主键作为外键,
@ElementCollection 映射元素
@CollectionTable()//映射表 name 表的名字,joinColumns=@JoinColumn(name="",nullable) 映射外键的名字,不许为空
@Column()//映射的名字
@CollectionTable(name="school_inf_one",joinColumns=@JoinColumn(name="person_id",nullable=false))
@OrderColumn(name="list_order") //将作为外键联合主键
private List<String> school=new ArrayList<String>();
@ElementCollection(targetClass=String.class)
@CollectionTable(name="person_love_one",joinColumns=@JoinColumn(name="person_id",nullable=false))
@Column(name="love_person")
@OrderColumn(name="set_list") /没有用
private Set<String> lovePerson=new HashSet<String>();
public Set<String> getLovePerson() {
return lovePerson;
}
-------------------------------------------------------------
@ElementCollection(targetClass=Float.class) //主要声明的是Map<key,value> value的值,对于key的值,后面单独声明
@CollectionTable(name="score_inf",joinColumns=@JoinColumn(name="perisn_id",nullable=false)) // 声明的表的名称 外键的名字
@MapKeyColumn(name="subject_name") //声明key的名字
@MapKeyClass(String.class) //key的类型
@Column(name="mark") // value的名字
其实三个都很简单