首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Hiberante知识点梳理

来启动 10. load和get get查询查询一级缓存然后二级缓存然后数据数据库,直接返回实体对象,如果查询不到返回null load如果一级缓存查询不到对象会返回一个代理对象,然后等到真正使用这个对象的时候才去查询二级和数据库...但它不会级联删除 delete: 级联删除, 但不具备级联保存和更新 all-delete-orphan: 在解除父子关系,自动删除不属于父对象的子对象, 也支持级联删除级联保存更新. all: 级联删除..., 级联更新,但解除父子关系不会自动删除子对象. delete-orphan:删除所有和当前对象解除关联关系的对象 15. fetch 抓取策略,在配置文件的Set标签配置 join : 左外链接...Hiberante和Mybatis的区别 Hibernate属于全自动ORM映射工具,使用Hibernate查询关联对象或者关联集合对象,可以根据对象关系模型直接获取,所以它是全自动的。...而Mybatis在查询关联对象或关联集合对象,需要手动编写sql来完成,所以,称之为半自动ORM映射工具。

1.4K00

SSH框架之Hibernate第三篇

-- lazy: 关联数据查询(多表查询) 是否使用延迟加载 :true:使用 默认值 false:不使用--> <set name="linkmans" inverse="true...保存角色<em>级联</em>保存用户. 1.3.7 <em>级联</em><em>删除</em>操作(不会用-避免去<em>使用</em>) 用的默认<em>删除</em> <em>删除</em>用户有<em>级联</em><em>时</em>,会<em>删除</em>角色....<em>删除</em>角色有<em>级联</em><em>时</em>,会<em>删除</em>用户. 1.3.8 多对多其他相关操作(掌握) 给用户选择角色 @Test /** * 给1号用户选择1号和2号角色 */...常用的值 : true : <em>使用</em>延迟加载,默认值. false : 不<em>使用</em>延迟加载. <em>查询</em>客户的同时,立马发送<em>sql</em><em>查询</em>联系人....常用的值: false : 不<em>使用</em>延迟加载(记住) <em>查询</em>联系人的时候,立马发送<em>sql</em><em>查询</em>客户. 对象导航<em>查询</em>底层用的全是延迟加载机制.

67430

系统学习javaweb-10-Hibernate的配置与api操作

(id)) session.load(Entity.class, id); 主键查询 (支持懒加载) 【HQL查询】 HQL、SQL查询区别: SQL: (结构化查询语句)查询的是表以及字段...,查询的是对象及对象属性;区分大小写 【Criteria查询】 完全面向对象的查询 【本地SQL查询】 复杂的查询使用原生sql查询 (缺点: 不能跨数据库平台) 2.3 测试类...【cascade级联操作属性】 none 不级联操作, 默认值 save-update 级联保存或更新 delete 级联删除 save-update,delete...级联保存、更新、删除 all 同上。...load: 默认使用懒加载,当用到数据的时候才向数据库查询 在真正使用数据的时候才向数据库发送查询sql;调用集合的size()/isEmpty()方法,只是统计,不真正查询数据 【解决

92120

hibernate笔记加强版「建议收藏」

但在hibernate中无法编写sql代码(自己主动生成),所以就导致假设这个项目对sql语句优化查询效率要求特别高的话,就不适合使用hibernate框架了). 2、 假设数据量特别大。...取值范围: save-update:表示当对学生表进行操作保存或更新,也对班级进行保存或更新(推荐使用) delete:表示仅仅当删除学生假设涉及到了班级,那么将班级也一起删除 (不推荐使用,当删除学生时会将此班级也删除...假设涉及到了Course(课程)是否运行级联 取值:save-update:表示仅仅当进行保存或更新级联操作(这里推荐使用save-update,假设用下面两种,当删除学生时会将课程一起删除) delete...(学生)是否运行级联 取值:save-update:表示仅仅当进行保存或更新级联操作(这里推荐使用save-update,假设用下面两种,当删除课程时会将此课程的学生一起删除,假设用此中方式,必须先解除关系后再删除...subselect: 子查询 表示生成子查询查询sql语句进行查询(推荐使用)。

85820

走进JavaWeb技术世界13:Hibernate入门经典与注解式开发

如果程序能够自动生成SQL语句就好了....那么Hibernate就实现了这个功能! 简单来说:我们使用Hibernate框架就不用我们写很多繁琐的SQL语句,从而简化我们的开发!...QBC查询: query by criteria 完全面向对象的查询 从上面的HQL查询,我们就可以发现:HQL查询是需要SQL的基础的,因为还是要写少部分的SQL代码....QBC查询就是完全的面向对象查询...(); System.out.println(list); 本地SQL查询 有的时候,如果SQL是非常复杂的,我们不能靠HQL查询来实现功能的话,我们就需要使用原生的SQL来进行复杂查询了!...接着我们测试级联删除操作。...这里写图片描述 可在HibernateAnnotationTest单元测试类中编写如下方法进行测试: public class HibernateAnnotationTest { // 测试多对多级联删除

1.8K00

走进JavaWeb技术世界13:Hibernate入门经典与注解式开发

如果程序能够自动生成SQL语句就好了....那么Hibernate就实现了这个功能! 简单来说:我们使用Hibernate框架就不用我们写很多繁琐的SQL语句,从而简化我们的开发!...QBC查询: query by criteria 完全面向对象的查询 从上面的HQL查询,我们就可以发现:HQL查询是需要SQL的基础的,因为还是要写少部分的SQL代码....QBC查询就是完全的面向对象查询...(); System.out.println(list); 本地SQL查询 有的时候,如果SQL是非常复杂的,我们不能靠HQL查询来实现功能的话,我们就需要使用原生的SQL来进行复杂查询了!...接着我们测试级联删除操作。...这里写图片描述 可在HibernateAnnotationTest单元测试类中编写如下方法进行测试: public class HibernateAnnotationTest { // 测试多对多级联删除

1.8K10

Hibernate总结以及在面试中的一些问题.

查询Hibernate使用查询,一般使用Hql查询语句。...3.cascade属性 级联操作:指当主控方执行某项操作,是否要对被关联方也执行相同的操作。 cascade属性的作用是描述关联对象进行操作级联特性。...Cascade 是直接对集合中每个元素执行相应的处理 执行的时机不同     Inverse是在执行SQL语句之前判断是否要执行该SQL语句     Cascade则在主控方发生操作用来判断是否要进行级联操作...特别是删除,一定要慎重。 操作建议: 一般对many-to-one和many-to-many不设置级联,这要看业务逻辑的需要;对one-to-one和one-to-many设置级联。...**更新时间戳区域,记录数据最后更新时间,在使用二级缓存,比较缓存时间t1 与更新时间 t2 , 如果 t2 > t1 丢弃原来缓存数据,重新查询缓存 查询缓存 有人称查询缓存 为hibernate

1.6K120

hibernate的关联与级联

级联查询,普通删除 pom.xml org.springframework.data...return list; } 我们发现在查询role的时候,实际上hibernate自动帮我们查询了当前role下面的所有admin信息,并且封装到了set里面,也就是数据已经包装好了。...信息,所以关联数据hiberante默认使用懒加载机制,所谓的懒加载就是我们需要使用这个数据他 才去查询,你不使用,H就不查询,但是必须建立在session不关闭的情况下, @OneToMany...需要手动开启 @ManyToOne(fetch=FetchType.LAZY) 多对多 hibernate多对多当中,我们常常希望只删除一方已及对应的关系,但不想删除另一方 表user和表role多对多...role` (`roleId`) ON DELETE NO ACTION ON UPDATE NO ACTION) 解决方案:在数据库里更改user_role表结构,就是添加约束,就添加roleId的删除进行级联操作

1.3K10

Spring 全家桶之 Spring Data JPA(五)

如下,摒弃饿SQL执行出现报错,因为role在执行往中间表执行insert操作表中已经存在了user插入的数据,所以出现了主键冲突的报错 因此需要user和role一方放弃维护权,修改Role实体类中关联关系...(){ User one = userDao.findOne(2L); userDao.delete(one); } 执行的SQL如下图 查看数据库表,三张表中关联数据已被删除...多表查询 对象导航查询查询一个对象的同时,通过此对象查询他的关联对象 使用Chapter 04 中的 one2many项目,在test包中新建ObjectQueryTest测试类 @RunWith...对象导航查询默认使用延迟加载的形式查询,调用getOne方法不会立即发送查询,而是在使用关联对象的时候才会执行,如果将延迟加载改为立即加载,需要修改配置 fetch配置关联对象的加载方式 FetchType.LAZY...,查询结果为集合或者列表,默认使用延迟加载 从多方查询一方,默认使用立即加载 Spring Data JPA 完结

2K20

Hibernate【inverse和cascade属性】知识要点

发现Hibernate只执行了三条SQL语句。...这里写图片描述 如果我们在dept中设置了级联保存,那么Hibernate就会知道:保存dept的数据,发现dept了外键,也把dept外键的对象保存在数据库之中 <set name="set...这里写图片描述 ---- <em>级联</em><em>删除</em> <em>级联</em><em>删除</em>,这个对于我们来说风险太大了,如果<em>删除</em>了某些数据,会把另外有关联的数据也<em>删除</em>…在实际中我们一般不<em>使用</em>!...NULL 在<em>查询</em>数据<em>时</em> 有无控制权对<em>查询</em>数据没有任何影响 在解除关联关系<em>时</em> 有控制权--->可以解除关联关系 没有控制权--->不能解除关联关系,不会生成update语句,也不会报错 在<em>删除</em>数据<em>时</em>对关联关系的影响...<em>级联</em>保存、更新、<em>删除</em> 我们可能<em>使用</em>到的往往是:save-update这个值,因为<em>级联</em><em>删除</em>的风险太大了!

1.2K40
领券