
Hibernate
文章平均质量分 67
云原生AI百宝箱
行万里路,此处相逢,共话云原生A之道。偶逗趣事,明月清风,与君同坐。已出版《Kubernetes:云原生与容器编排实战》,将出版《A大模型原理与场景应用》
展开
-
聊聊Hibernate和Mybatis的区别
1、开发对比 开发速度 Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。 个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernate 与Mybatis都是流行的持久层开发框架, 但Hibernate开发社区相对多热闹些,支持的工具也多,更新也快,当前最高版本4.1.8。...原创 2017-06-27 10:00:45 · 12662 阅读 · 0 评论 -
save, saveOrUpdate, persist, merge 区别
save()方法:应该避免在事务之外调用save()方法,否则关联实体(例如employee和address是一对一关系,相互关联)将不会被保存从而导致不一致。很容易忘记在最后调用flush()方法,因为不会有任务的异常或者警告抛出。 hibernate save()方法会立即返回id,原因很可能是调用save()的同时这个实体对象已经被写入数据库(立即执行sql语句insert into)...转载 2018-07-16 19:00:42 · 5877 阅读 · 0 评论 -
Hibernate不调用update却自动更新
问题现象:TInfCustomer cus = (TInfCustomer) this.baseDao.getOne(helper);cus.setXXXcus .setXXX不调用update也写入数据库问题原因:hibernate在每个session里都会做些处理,比如把查询过的对象缓存起来什么,这个时候这些,hibernate会记录session生命周期内所有缓存对象的操作过程,最后...转载 2018-06-05 11:22:23 · 7415 阅读 · 0 评论 -
Spring:7种事务传播行为
7种事务传播行为所谓事务传播行为就是多个事务方法相互调用时,事务如何在这些方法间传播。Spring支持以下7种事务传播行为。 传播行为含义PROPAGATION_REQUIRED(XML文件中为REQUIRED)表示当前方法必须在一个具有事务的上下文中运行,如有客户端有事务在进行,那么被调用端将在该事务中运行,否则的话重新开启一个事务。(如果被调用端发生异常,那么调用端和被调用端事务都将回滚)PR...原创 2018-04-23 08:55:44 · 6424 阅读 · 0 评论 -
Hibernate的事务的隔离性
事务的特性:原子性:指处于同一个事务中的多条语句是不可分割的。一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。隔离性:指多线程环境下,一个线程中的事务不能被其他线程中的事务打扰持久性:事务一旦提交,就应该被永久保存起来。如果不考虑事务的隔离性,会出现以下问题:脏读:指一个线程中的事务读取到了另外一个线程中未提交的数据。不可重复读(虚读):指一个线程中的事务读取到了另外一个线程中提...原创 2018-04-11 17:30:09 · 13358 阅读 · 0 评论 -
JPA 关系映射(OneToOne、OneToMany、ManyToMany)
单向 OneToOne单向一对一是关联关系映射中最简单的一种,简单地说就是可以从关联的一方去查询另一方,却不能反向查询。@OneToOne注解只用于关系的发出端,同时定义一个接收端类型的字段属性;单向的一对一关系在数据库中是以外键的形式被映射的,其中关系的发出端存储一个指向关系的接收端的一个外键。缺省情况下这个外键的字段名称,是以它指向的表的名称加下划线“_”加“ID”组成的。当然我们也可以根据我...原创 2018-03-07 08:11:18 · 28714 阅读 · 0 评论 -
JPA注解:根据实体生成数据表和字段的注释(正向工程)
1.JPA常见注解请移步:http://blog.youkuaiyun.com/fly910905/article/details/78140411 2.JPA注解:表注释@org.hibernate.annotations.Table(appliesTo = "TableName",comment="表注释")/* * Hibernate,原创 2017-12-14 08:42:38 · 29190 阅读 · 2 评论 -
JPA实体的常用注解
1 、 @Entity(name="EntityName")必须 ,name 为可选 , 对应数据库中一的个表2 、 @Table(name="",catalog="",schema="")可选 , 通常和 @Entity 配合使用 , 只能标注在实体的 class 定义处 , 表示实体对应的数据库表的信息name: 可选 , 表示表转载 2017-09-30 10:48:36 · 2573 阅读 · 0 评论 -
Hibernate的核心接口
Hibernate5个核心的接口:1,Configuration接口:配置Hibernate,根据其启动Hibernate,创建SessionFactory对象;2,SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建session对象,SessionFactory是 线程安全的,意味着它的同一个实例可以被应用的多个线程共享,是重量级二级缓存;3原创 2017-09-22 10:46:42 · 570 阅读 · 0 评论 -
HQL的使用
导读HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式. 它有如下功能:在查询语句中设定各种查询条件;支持投影查询, 即仅检索出对象的部分属性;支持分页查询;支持连接查询;支持分组查询, 允许使用 HAVING 和 GROUP BY原创 2017-09-22 10:45:29 · 2409 阅读 · 0 评论 -
Hibernate:悲观锁和乐观锁
业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的 “锁” ,即给我们选定的目标数据上锁,使其无法被其他程序修改。Hibe转载 2017-09-23 15:05:45 · 441 阅读 · 0 评论 -
Hibernate的一级缓存
1.1 Hibernate的一级缓存:l 什么是缓存:缓存将数据库/硬盘上文件中数据,放入到缓存中(就是内存中一块空间).当再次使用的使用,可以直接从内存中获取. l 缓存的好处:提升程序运行的效率.缓存技术是Hibernate的一个优化的手段. l Hibernate分成两个基本的缓存:一级缓存:Session级别的缓存.一级缓存与session的生命周期一致.自原创 2017-09-22 20:27:48 · 586 阅读 · 0 评论 -
Hibernate的三种状态及相互转化
Hibernate的持久化类状态持久化类:就是一个实体类 与 数据库表建立了映射.Hibernate为了方便管理持久化类,将持久化类分成了三种状态.瞬时态 transient:(临时态)持久态 persistent脱管态 detached:(离线态)移除态 removed(以前Hibernate文档中定义的三种状态中没有移除态),如下图所示,就以前的Hibernate文档中移除态被视为是瞬...原创 2017-09-22 19:26:31 · 886 阅读 · 0 评论 -
EntityManager常用API
JPA实体状态分析实体状态详解瞬时状态:实际上就是new了一个普通的JavaBean对象。托管状态:1.当1.瞬时对象调用了管理器的persist()后,即可将一般的JavaBean做为了持久Bean,该Bean的任何属性改动都会牵涉到数据库记录的改动原创 2017-11-22 10:44:44 · 21476 阅读 · 6 评论