hibernate
shangshanzixu
这个作者很懒,什么都没留下…
展开
-
Hibernate 的检索策略
类的检索策略设置于class元素的lazy属性,有true和false两种取值。默认为true。lazy为true:在load方法加载时会使用延迟检索,返回代理对象。lazy为false:在load方法加载会立即检索。一对多、多对多关系检索策略主要是针对于hbm映射文件的set元素的配置1.lazy属性lazy有三种取值1.true 默认的取值 只有在需要访问集合元素的属性或者集合大小时才对集合进行初始化2.false 不使用延迟加载 在初始化持久化对象时就将集合元素一起加载,不建议设置原创 2020-11-23 22:10:19 · 117 阅读 · 0 评论 -
Hibernate表与表之间的关系映射
一对多关系一个student有多个作业,所以student表中的记录和homework表中的记录形成1对多关系表中字段体现在homework表中具有S_ID字段,表示该记录对应的作业属于哪个学生1.单向一对多数据表Student表对应java中的Student类,homework表对应Homework类单向一对多是只从多的一段维护关联关系,即Homework类中存储了其对应的student的引用hbm映射文件的配置除了基础字段的映射,关联字段同样需要映射,多个homework对应一个st原创 2020-11-19 16:51:45 · 280 阅读 · 0 评论 -
hibernate篇:持久化对象的状态
站在持久化的角度,hibernate将对象分为四种状态。1.持久化状态 OID不为空,缓存中存在记录,数据库中也有响应的记录2.临时状态 在使用代理主键的情况下,OID通常为null 不在session的缓存中 数据库中没有相应的记录3.游离状态 OID不为null ,不在session的缓存中,数据库中可能还保留有响应的记录4.删除状态 数据库中没有和其OID相同的记录,不在session的缓存中1.save()方法save方法可以将临时对象转换为持久化对象可以看到在save原创 2020-10-21 21:13:21 · 235 阅读 · 0 评论 -
Hibernate篇:一级缓存
一级缓存为了减少对数据库的访问次数,提高查询效率,hibernate提供了一级缓存和二级缓存,这里先介绍一级缓存,一级缓存是session级别的。什么是一级缓存?执行上述语句,我们会发现hibernate只向数据库发送了一次select语句,这是因为存在一级缓存的缘故,所以第二次进行查询时,session会先在缓存中查询看是否存在该对象,如果存在则不会去数据库中进行查询。session缓存有关操作flush操作flush操作是指按照缓存中对象的属性变化来同步更新数据库。什么时候会执行fl原创 2020-10-21 15:06:12 · 101 阅读 · 0 评论