
Hibernate
文章平均质量分 80
azhegps
技术源于不断滴追求!
展开
-
Hibernate中@Embedded和@Embeddable注解的使用
在使用实体类生成对应的数据库表时,很多的时候都会遇到这种情况:在一个实体类中引用另外的实体类,一般遇上这种情况,我们使用@OneToOne、@OneToMany、@ManyToOne、@ManyToMany这4个注解比较多,除了这四个有没有别的使用情况,尤其是一个实体类要在多个不同的实体类中进行使用,而本身又不需要独立生成一个数据库表,这就是需要@Embedded、@Embeddable的时候了,...原创 2017-05-24 14:00:16 · 3929 阅读 · 2 评论 -
hibernate 一对多 取多方数据重复问题,FetchMode.JOIN、FetchMode.SELECT、FetchMode.SUBSELECT区别
问题描述:稿件附件表数据时出现多条重复数据。介绍:表:稿件实体Manuscripts (数据库表MANUSCRIPTS),稿件附件实体ManuscriptsAtt(表MANUSCRIPTS_ATT),稿件审核实体:ManuscriptsQuotes表关系:稿件与稿件附件 一对多;稿件与稿件审核一对多;代码:稿件实体 Manuscripts:@Entit...转载 2019-08-08 22:01:14 · 877 阅读 · 0 评论 -
hibernate ehcache的配置使用
一:基本介绍及使用1.EhCache是什么EhCache是Hibernate的二级缓存技术之一,可以把查询出来的数据存储在内存或者磁盘,节省下次同样查询语句再次查询数据库,大幅减轻数据库压力;2.EhCache的使用注意点当用Hibernate的方式修改表数据(save,update,delete等等),这时EhCache会自动把缓存中关于此表的所有缓存全部删除掉(这样...原创 2019-08-25 11:14:15 · 394 阅读 · 0 评论 -
Hibernate update 和 merge 、saveOrUpdate的区别
this.getSession().update(obj);this.getSession().merge(obj);this.getSession().saveOrUpdate(obj);1. update 和 merge的区别首先在执行更新操作的时候,两者都必须要有idupdate是直接执行update 语句,执行后状态为持久化状态而merge则不一样:1....原创 2019-08-25 11:14:17 · 679 阅读 · 0 评论 -
Hibernate解决n+1问题
观点:对于n+1问题的理解。 一般而言说n+1意思是,无论在一对多还是多对一当查询出n条数据之后,每条数据会关联的查询1次他的关联对象,这就叫做n+1。 但是我的理解是,本来所有信息可以一次性查询出来,也就是简单的连表查询,但是Hibernate会首先查询1次得到当前对象,然后当前对象里面的n个关联对象会再次访问数据库n次,这就是1+n问题。 他们二者之间表达的意思其实是一样的,...原创 2019-08-25 11:14:19 · 222 阅读 · 0 评论 -
hibernate延迟加载(get和load的区别)
在hibernate中我们知道如果要从数据库中得到一个对象,通常有两种方式,一种是通过session.get()方法,另一种就是通过session.load()方法,然后其实这两种方法在获得一个实体对象时是有区别的,在查询性能上两者是不同的。一.load加载方式当使用load方法来得到一个对象时,此时hibernate会使用延迟加载的机制来加载这个对象,即:当我们使用session.loa...原创 2016-08-18 15:54:15 · 824 阅读 · 0 评论 -
Hibernate框架基础——cascade属性
我们以部门和员工的关系为例讲解一对多关联关系映射时,删除部门时,如果部门有关联的员工且inverse属性为false,那么由于可以维护关联关系,它就会先把关联的员工的外键列设为null值,再删除自己。但是此刻希望删除部门时,就附带着把该部门下的所有员工都删掉,这时就需要引入cascade属性了。级联(cascade)当Hibernate持久化一个临时对象时,在默认情况下,它不会自动持久化所关...原创 2019-08-25 11:14:22 · 371 阅读 · 0 评论