随笔分类 - JPA
摘要:当JPA获取数据库数据连接时,如果连接数超过最大连接数的配置,系统就会报错: 和: 连接数的配置: 如果不配置的话,默认都是10. 我们使用entitymanager进行查询和其他操作时,调用这个方法org.springframework.orm.jpa.SharedEntityManagerCre
阅读全文
摘要:当我们使用entityManager.createQuery(query)时,我们发现entityManager的注入对象如下: 也就是它:org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean@40383b24的一个代理
阅读全文
摘要:通常给实体添加audit审计字段是一种常用的重构方法,如下: 实体类的定义 测试代码: 我们主要关注更新update时生成的sql: 可以看到默认是把表中的所有字段都进行了更新。 如果一个表中字段数很多,就会影响更新效率。 所以通常我们需要在实体上添加@DynamicInsert 和@Dynamic
阅读全文
摘要:在使用JPA的仓储repository进行查询时,经常用到findAllbyId的方法: repository.findAllbyId() 但如果像下面的代码,当list的size量太大的话,就会报栈溢出的的错误:java.lang.StackOverflowError 报错信息如下: 原因就是在拼
阅读全文
摘要:在使用criteria api进行查询时 criteriaBuilder只提供了一个部分标准的sql函数,但当我们需要使用oracle特有的行转列函数wm_concat或 mysql特有的行转列函数group_concat时,就只能自己封装了, criteriaBuilder提供了一个封装函数的方法
阅读全文
摘要:@ManyToOne配置延迟加载,如果是关联主键列, 延迟加载是正常的。 但如果关联的Address的是sid而不是id的话,就延时加载就有问题。如下代码: 这时的解决方案,需要了解PersistentAttributeInterceptable的机制。 参考: https://blog.csdn.
阅读全文
摘要:jpa-spec github: https://github.com/wenhao/jpa-spec 使用这个框架可以简化我们拼条件的复杂度,如下代码: 这是一个分页+排序的查询。 但如果我们使用的是数据库特定的函数,这个框架提供的方法就不够用了,需要我们扩展: 我们使用的是oracle数据库,它
阅读全文
摘要:当Repository接口继承了JpaSpecificationExecutor后,我们就可以使用如下接口进行分页查询: 结合jpa-spec可以很容易构造出Specification: jpa-spec github地址:https://github.com/wenhao/jpa-spec 单表查
阅读全文
摘要:当我们使用spring boot创建项目时,系统默认使用的是如下parent。 可能不同时期版本不同,而spring boot的一大优势就是starter依赖,比如我们使用jpa就可以直接引用: 配置好数据库后,就可以使用jpa开发了,我们不用管版本的问题,但是当我们遇到OneToOne 共享主键的
阅读全文
摘要:在使用hibernate时,报错 java.lang.StackOverflowError: null 把当前线程的栈打满了 查了一下原因,应该是出现在实体的toString方法上,如果存在关联属性(1对多等),不能加入到toString方法中,否则出现,你打印我,我打印你,一直打下去。 虽然我的代
阅读全文
浙公网安备 33010602011771号