Set
<hibernate-mapping >
<class name="mypack.Monkey" table="MONKEYS" >
<id name="id" type="long" column="ID">
<generator class="increment"/>
</id>
<property name="name" type="string" >
<column name="NAME" length="15" />
</property>
<set name="images" table="IMAGES" lazy="true" >
<key column="MONKEY_ID" />
<element column="FILENAME" type="string" not-null="true"/>
</set>
</class>
</hibernate-mapping>
说明:
1.值类型,就说Image类就行String类型一样当值搞了,一切受包含它的类控制
2.他是在数据库中有表的,并且可延时加载(默认),数据库有ID 和MONKEY_ID
3.elemet,你懂的,实体类可没这个。
4.Set是hibernate里的Persistent类,Hash的 也就是无序的
Bag
<hibernate-mapping >
<class name="mypack.Monkey" table="MONKEYS" >
<id name="id" type="long" column="ID">
<generator class="increment"/>
</id>
<property name="name" type="string" >
<column name="NAME" length="15" />
</property>
<idbag name="images" table="IMAGES" lazy="true">
<collection-id type="long" column="ID">
<generator class="increment"/>
</collection-id>
<key column="MONKEY_ID" />
<element column="FILENAME" type="string" not-null="true"/>
</idbag>
</class>
</hibernate-mapping>
说明:
和上一个唯一的区别是他可以放相同的元素,上面那个是Set你懂的
List
<list name="images" table="IMAGES" lazy="true">
<key column="MONKEY_ID" />
<list-index column="POSITION" />
<element column="FILENAME" type="string" not-null="true"/>
</list>
说明:
1.它的数据库没有ID主键,多了个POSITIOM的字段,显然他可以排序;Image类中是没有position属性的。存是按放入的先后顺序来的
2.对了Bag和List 在Monkey中都是包含了一个List的图片集合,但是BAG无序,List存的时候哪个先存,拿的时候可以get(0)这样取。
Map
<map name="images" table="IMAGES" lazy="true">
<key column="MONKEY_ID" />
<map-key column="IMAGE_NAME" type="string"/>
<element column="FILENAME" type="string" not-null="true"/>
</map>
说明:
1.数据库有个ID和MONKEY_ID,组成联合主键
2.处理的时候 得到一个Map images=monkey.getImages() 他有Set keys = images.keySet();显然这个是我们IMAGE_NAME 无序
这么多无序了,我们怎么对集合排序呢?有2种策略:
1.在数据库查的时候排好序,这个只有List不支持,因为他完全由自己排序
示例: <set name="images" table="IMAGES" lazy="true" order-by="lower(FILENAME) desc">
<key column="MONKEY_ID" />
<element column="FILENAME" type="string" not-null="true"/>
</set>
说明是的每次查的时候在屁股后面加了双引号里的语句
2.也可以内存排序,其实就是查出来后,用Comparator给查出来的集合排了一把
示例: <set name="images" table="IMAGES" lazy="true" sort=mypack.selfCpmparator">
<key column="MONKEY_ID" />
<element column="FILENAME" type="string" not-null="true"/>
</set>
两个都用,纯粹傻逼,当然肯定是sort有效果,但愿Hibernate不会去排序查
排序的时候,集合的实现类就可以用TreeSet TreeMap叻,完全排序完成。如Monkey类里面有成员 private Map images=new TreeMap();
分享到:
相关推荐
hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记 hibernate学习笔记
Hibernate学习笔记_特别详细 Hibernate学习笔记_特别详细
Hibernate学习笔记 Hibernate学习笔记 Hibernate学习笔记 Hibernate学习笔记
学习hibernate框架时,整理的笔记,对hibernate框架有全面的介绍
Hibernate学习笔记Hibernate学习笔记Hibernate学习笔记Hibernate学习笔记
hibernate配置关系的笔记
Hibernate映射解析 七种映射关系
hibernate映射枚举类型,hibernate如何映射枚举类型
hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要hibernate 学习笔记精要
达内HIBERNATE学习笔记,达内HIBERNATE学习笔记,达内HIBERNATE学习笔记,达内HIBERNATE学习笔记,
hibernate集合的映射 集合的映射 set list array map
Java相关课程系列笔记之十四Hibernate学习笔记
这套笔记是我学习Hibernate,进行相关技术点训练时记录下来的,其中包括技术点说明与相关事例,拿出来与大家分享。
便于同学们更好的学习hibernate,其中包含了hibernate的七种映射管、关系
hibernate学习笔记 hibernate
hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置实体规则,核心API详解(Configuration,sessionFactory,session,Transaction),hibernate中的对象状态以及刷新能缓存机制 ...
hibernate学习笔记文档
Hibernate学习笔记!
马士兵hibernate学习笔记(原版)