第六章Hibernate-的集合映射
第六章Hibernate-的集合映射
Set映射List映射Bag映射IdBag映射Map映射集合映射的排序? ?? Set类型的对象,被加入的对象不能重复,同时被加入的对象也没有固定的顺序。
???? 定义一个代表用户的User类,User类中,使用Set对象保存用户的多个email地址。
-- Create tablecreate table users1( username varchar2(40) not null, password varchar2(40), id number(8));-- Create/Recreate primary, unique and foreign key constraints alter table users1 add constraint users1_pk primary key (ID);
?
?List 映射<list name="emails" table="email"><key column="userid" foreign-key="id" /><index column ="idx" type="java.lang.Integer"/><element column="email" type="java.lang.String"></element> </list>?Bag映射
<bag name="emails" table="email"> <key column="userid" foreign-key="id"></key> <element type="java.lang.String" column="email"></element> </bag>??IdBag映射
??? Bag集合映射的一种扩展,Hibernate框架还提供了IdBag映射,可以在定义Bag映射时,为每个加入的对象指定"id"
?Map接口<map name="phone" table="phone"> <key column="userid" foreign-key="id" /><map-key column ="usage" type="java.lang.String"/><element column="phone_number" type="java.lang.String"></element> </map>
? 排序
?? natural(在内存中排序)数量少时,可以这样排序,
<map name="phone" table="phone" sort="natural"> <key column="userid" foreign-key="id" /> <map-key column ="usage" type="java.lang.String"/> <element column="phone_number" type="java.lang.String"></element></map>
??? order-by="phone_number"指定按数据库中的哪个字段排序
<map name="phone" table="phone" order-by="phone_number"> <key column="userid" foreign-key="id" /><map-key column ="usage" type="java.lang.String"/><element column="phone_number" type="java.lang.String"></element> </map>
?
?