传智播客学习笔记5.19

本文详细介绍了Hibernate中集合的排序方式,包括内存中排序和SQL查询时排序,以及一对一映射的两种方式。强调了维护关系的重要性,特别是在重写`hashcode`和`equals`方法时要考虑关键业务数据。还探讨了继承映射的两种策略,并提到了级联操作和懒加载的概念。
摘要由CSDN通过智能技术生成

传智播客学习笔记5.19
HIBERNATE
汤阳光老师
TreeSet

第一种排序方式
<set name="users" sort="natural">----------该方法不推荐
</set>
内存中排序。影响效率
要求实体实现comparable接口

 

第二种排序方式
<set name="users" order-by="age">
</set>
sql查询时使用order by子句指定顺序

基于主键的一对一映射
基于外键的一对一映射

不管是多对一还是一对一,有外键的那个表所对应的实体始终能维护关系


维护关系?


重写hashcode和equals方法时,除了id,最好再加入关键业务数据

继承映射的两种方法


一般一个继承结构定义一个映射文件


Hibernate Template


* 索引(有序)集合
例如Group中的users希望以user的age升序排列.

有两种方式实现:
  a) 使用sort属性实现在内存中排序;
  b) 使用order-by属性实现: 在使用sql进行查询时使用order by子句指定顺序。

有序集合对于List或数组无效,因为列表元素的顺序由列表索引指明。

如果使用的是Set或Map类型的集合,并且在实体中对这个集合属性进行了初始化,
应是SortedSet或SortedMap实现类的实例(TreeSet或TreeMap)。

** sort属性
可以用于set或map映射,默认为unsorted,即不排序;可以设为natural,要求实
体要实现java.lang.Comparable接口。分类集合的行为象TreeSet或者TreeMap,
这是从数据库中取出记录后再在内存中进行排序。(在查询时有效)

** order-by属性
在set、bag或map映射中使用order-by属性,指定查询时生成的sql的order by子
句,这是在执行sql查询时指定排序(推荐)。如果使用了order-by,则返回的就
是可以保存顺序的集合实现类。


* 一对一映射:User与IdCard
有两种映射方式:基于主键和一对一和基于外键和一对一(用数据库说明)。不
管哪种方式,都是有外键的那个表对应的实体(IdCard)来维护关系;只为只有
IdCard能维护关系,所以如果要做单向关联,只能做从IdCard到User的单向关联。

不管是多对一还是一对一&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值