hibernate学习:级联查询

一:看例子

二:知识点

org.hibernate.TransientObjectException: object references an unsaved transient instance -

save the transient instance before flushing: com.hibernate.model.UserGroup

User u = new User();

u.setName("liuyanliang");

UserGroup g = new UserGroup();

g.setName("haha");

u.setGroup(g);

Session session = factory.getCurrentSession();

session.beginTransaction();

session.save(u);

session.getTransaction().commit();

默认情况下,save user的时候,不会自动关联user跟group的关系

需要在映射关系中加上级联操作

@ManyToOne(cascade = CascadeType.ALL)

private UserGroup group;

默认不产生任何级联

CascadeType.ALL

CascadeType.MERGE

CascadeType.PERSISTENCE

CascadeType.REFRESH

CascadeType.REMOVE

时间: 2024-11-05 02:59:41

hibernate学习:级联查询的相关文章

【java】itoo项目实战之大数据查询之使用 new map 优化hibernate之级联查询

在我的上一篇博客<[java]itoo项目实战之hibernate 懒加载优化性能>中,我曾提到过学生数据有2万条,查询数据十分的慢,这是让人很受不了的事情,看着页面进度条一直转着圈圈,那种着急的感觉真的没法形容.最开始考虑着使用lazy 来优化,因为前台框架的原因,lazy 优化并没有起到什么左右,后来就想着有select new map 优化.我先来画画关于查询学生的级联树 这个树的意思就是查询学生的时候它的深度是4级. 在没有优化之前,使用的是hibernate的hql 语句:From

Hibernate学习实现查询

[原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

hibernate学习系列-----(4)hibernate基本查询上篇:HQL基本查询

紧接着上一篇,今天继续hibernate的学习总结,来聊一聊hibernate的基本查询方法,先说说HQL(hibernate Query Language):它是官方推荐的查询语言.在开始写代码之前,看看需要做哪些准备工作吧,首先,在我们的学生类中新增一个属性"clazz",其实不加也可以,接着,我们需要重写Student.java类中的toString()方法,代码如下: /** * 重写toString方法 */ @Override public String toString(

hibernate学习(查询)

数据查询是hibernate的一个亮点,hibernate为程序猿提供了多种的查询方式,分为以下三种: 1.hibernate语言查询,也就是我们今天需要说的hql查询,这种查询是完全面向对象的方式来查询,将查询语句封装为对象来进行操作.符合面向对象的思维来维护数据库. 2.hibernate标准化查询:(criteria query)将查询语句封装成对象进行操作. 3.原声sql查询:直接使用标准sql语言来进行查询. hql查询所有 在学习hql查询之前,我先插入一些记录到userinfo表

Hibernate学习(七)———— hibernate中查询方式详解

序言 之前对hibernate中的查询总是搞混淆,不明白里面具体有哪些东西.就是因为缺少总结.在看这篇文章之前,你应该知道的是数据库的一些查询操作,多表查询等 --WH 一.hibernate中的5种检索方式 1.1.导航对象图检索方式 根据已经加载的对象导航到其他对象 例如:在前面的各种映射关系中,实体类包含对其他类对象的引用. Dept d = (Dept) session.get(Dept.class,2); d.getStaffSet().size(); //d对象关联Staff集合,h

Hibernate学习一:Hibernate注解CascadeType

http://zy19982004.iteye.com/blog/1721846 ———————————————————————————————————————————————————————— Hibernate学习一:Hibernate注解CascadeType 博客分类: Hibernate hibernate 一.概念 现有一场景:一个管理员可以管理多个网吧,一个网吧可以被多个管理员管理.从中抽象出一个多对多的例子user-bar. 主控方user:多对多里面里面会有第三张表user_b

Hibernate学习笔记之关联关系

??关联关系是面向对象分析.面向对象设计最重要的知识,Hibernate完全可以理解这种关联关系,如果映射得当,Hibernate的关联映射将可以大大简化持久层数据的访问.关联关系大致有如下两类: 单向关系:只需单向访问关联端. 双向关系:关联的两端可以互相访问 注:双向关系没有N-1,因为双向关系1-N和N-1是完全相同的. 注意:无论单向关系,还是双向关系,是针对面向对象中的类的调用,与底层数据库关系有所差异,不要搞混了. 专业名词通俗解释: 持久化操作:将数据CRUD(增加(Create)

hibernate学习之持久化对象

Hibernate对其持久化对象实现了缓存管理,来提高系统性能,Hibernate支持两级缓存管理,一级缓存 是由Session提供的,因此它只存在于Session的生命周期中,是Session所内置的,不能被卸载. Hibernate的二级缓存是由SessionFactory提供的,他作为一个可插入的组件使用的,默认是不支持的,应用必须明确配置二级缓存才能使用. Session缓存的作用: 降低数据库的访问频率 保证缓存中的对象与数据库中的相关记录保持同步持久化对象的状态: 临时状态(Tran

Spring Data学习笔记-查询方法

Spring Data支持类似Hibernate的查询语句,也可以写原生SQL语句,下面记录典型的例子. /**  * 1. Repository 是一个空接口. 即是一个标记接口  * 2. 若我们定义的接口继承了 Repository, 则该接口会被 IOC 容器识别为一个 Repository Bean.  * 纳入到 IOC 容器中. 进而可以在该接口中定义满足一定规范的方法.   *   * 3. 实际上, 也可以通过 @RepositoryDefinition 注解来替代继承 Rep