使用spring boot 中的jpa 设置懒加载无效 5C

例如A表

     @OneToMany(mappedBy = "a", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    @JsonManagedReference
    private List<B> b = new ArrayList<>();

B表

     @ManyToOne(fetch = FetchType.LAZY)
    @JsonBackReference
    private A a;

这样findAll表A ,一样会把B的值加载出来. 请问一下有什么办法可以实现懒加载

0

1个回答

你这样肯定是无效的,findall默认是按照hibernate的懒加载模式,多对一是直接加载的,你可以使用entitygraph和namedgraph这个两个注解组合来实现指定加载。最好不要覆盖默认的查询方法,自己新写个

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SpringBoot2 JPA解决懒加载异常
jpa解决懒加载异常 在我上一遍博客上就行修改,博客:SpringBoot2 实现JPA分页和排序分页 实体类上改: @Entity @Table(name = &quot;employee&quot;) @JsonIgnoreProperties(value={&quot;hibernateLazyInitializer&quot;, &quot;department&quot;}) public class Employee { @...
SpringBoot jpa 使用懒加载时,报异常:session失效
报异常: could not initialize proxy - no Session 1、在方法上加@Transactional 注解,失败 2、在application.yml 文件加上jpa.properties.open-in-view: true 失败 3、在ResourceServerApplication.java 启动文件中加上: @Bean ...
Spring boot 解决hibernate懒加载失效
注:fastJson不可使用,此文档为jackson 懒加载失效是因为@ResponseBody JSON序列化默认走了例如user(用户表)的getRoles(角色表)所以懒加载失效 延时加载对象如果是集合只支持Set 关系死循环参考:https://www.baeldung.com/jackson-bidirectional-relationships-and-infinite-...
SpringBoot+Spring Data Jpa配置懒加载异常过滤器
在有@Configuration的类中加入如下配置: @Bean public FilterRegistrationBean registerOpenEntityManagerInViewFilterBean() { FilterRegistrationBean registrationBean = new FilterRegistrationBean(); OpenEntityM...
JPA 懒加载问题
今天在使用Jpa配置了实体一对多关系统后,用Junit调试发现有懒加载问,在网上查了资料后在web.xml中加了过滤器: Spring OpenEntityManagerInViewFilter org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter Spring Open...
Springboot2 jpa关联关系懒加载json序列化
实体类 student表: @manytoone的Many端 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import javax.persistence.*; import java.util.Date; @Entity @Table(name = &quot;students&quot;) // @JsonIgnoreP...
尝试解决JPA懒加载异常问题(wildfly)
之前在JPA/Hibernate+JSF+CDI的项目中老是遇到懒加载异常问题,解决办法要不就是修改查询语句,要不就是改为EAGER。 最近百度了很久之后终于想到了一个还不错的办法,使用JPA的拦截器,不过这个解决方案需要使用Hibernate实现的时候才可用。
Spring Boot JPA Entity Jackson序列化触发懒加载的解决方案
Spring Jpa这项技术在Spring 开发中经常用到。 今天在做项目用到了Entity的关联懒加载,但是在返回Json的时候,不管关联数据有没有被加载,都会触发数据序列化,而如果关联关系没有被加载,此时是一个HibernateProxy,并不是真实的数据,而导致了报错。 例如这个Topic Entity: @Entity @Table(name = &amp;quot;yms_topics&amp;quot;) @Gett...
springboot jpa 解决延迟加载问题
在springboot中,在application.properties的配置文件中新增spring.jpa.open-in-view=true方法失效,经过测试,有两种解决办法: 1、在application.properties的配置文件中新增spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true; 2、在测试的方法上添...
spring data jpa 懒加载的json序列号的解决方法
实例映射时,在ajax访问返回json字符串的时候,会出现子集无法序列号的错误,没有找到通过配置解决的方法,看别人有用Map转换一下的解决思路,照做如下,可以解决问题 Operator operator = operatorService.get(userId); Map map = new HashMap(); Operator o = new Op
spring中的懒加载与事务--排坑记录
案例描述本文主要描述了开发中常见的几个与spring懒加载和事务相关的案例,主要描述常见的使用场景,以及如何规避他们,给出具体的代码。 1. 在新的线程中,访问某个持久化对象的懒加载属性。 2. 在quartz定时任务中,访问某个持久化对象的懒加载属性。 3. 在dubbo,motan一类rpc框架中,远程调用时服务端session关闭的问题。上面三个案例,其实核心都是一个问题,就是牵扯到sp
hibernate JPA 使用懒加载时代理产生的问题 JavassistLazyInitializer
引用来自: http://stackoverflow.com/questions/16383742/hibernate-javassistlazyinitializer-problems-with-validation 问题描述: 当两个对象相互关联并使用懒加载时,从数据库中取出来使用时报错,查看对象所有字段的值为null;但通过get\setXXX()有能得到该对象的字段值。 ...
onetoone 懒加载问题解决
一对一懒加载。 Infomain.java  @OneToOne(cascade = CascadeType.ALL,fetch=FetchType.LAZY,optional = false) @PrimaryKeyJoinColumn txt.java 不做配置
JPA一对一关联的时候无法使用延迟加载问题解决
转载于:http://mshijie.javaeye.com/admin/blogs/440057   今天使用JPA(Hibernate)实现一个一对一关联的时候,发现无法使用延迟加载.Person关联一个Picture.在读取Person的时候,显示的记载了对于的Picture.读取10个Person发生了11次数据库查询.   最后查阅资料后,发现是自己对OneToO
SpringBoot-SpringData-懒加载
SpringBoot-SpringData-懒加载,博文地址:http://blog.csdn.net/ABAP_Brave/article/details/53035313
Spring Data JPA的懒加载问题
有些数据需要使用到,所以要解决懒加载.就用了最方便的方法,配置过滤器OpenSessionInViewFilter openSessionInViewFilter org.springframework.orm.hibernate5.support.OpenSessionInViewFilter openSessio
JPA的懒加载问题的解决
&amp;lt;filter&amp;gt; &amp;lt;filter-name&amp;gt;OpenEntityManager&amp;lt;/filter-name&amp;gt; &amp;lt;filter-class&amp;gt;org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter&amp;lt;/filter-class&amp;gt; &amp;l...
JPA 一对多延迟加载与关系维护
JPA一对多延迟加载(orders和orderdetails), 对于一次查询大量数据和多线程并发非常有帮助。 1. 一对多一般默认就是延迟加载, 在用到具体属性的时候才会执行SQL去抓取数据。 entity.getItems(); //不执行sql entity.getItems().getProperty(); // 具体使用的才会执行sql    1.1 多对一默认是关闭
Spring-data-jpa 集成Hibernate时延迟加载问题
@GetMapping("/teachers/{id}") @Timed public ResponseEntity<Teacher> getTeacher(@PathVariable Long id) { log.debug("REST request to get Teacher : {}", id); Teacher teacher = teac
解决JPA懒加载的办法
方案1:    1.1、在多的一方的类上加上@ToString()注解,重写toString方法    1.2、在代码中获取一的时候主动调用多的toString()方法:uopUser.getUserChannelRelationList().toString();方案2:    2.1、在代码中主动get多的一方的唯一主键:uopUser.getUserChannelRelationList()...
解决mybatis懒加载无效的问题
settings>setting name="lazyLoadingEnabled" value="true"/>setting name="aggressiveLazyLoading" value="false"/>//可以阻挡不相干的操作触发,实现懒加载settings>
关于SpringJpa中getOne方法遇到延迟加载报错no Session的问题
报错如下: org.hibernate.LazyInitializationException: could not initialize proxy - no Session ... 看到报错信息推测如下:遇到延迟加载,session关闭了,导致不能得到有效信息。 网上搜集了下资料,有关解释说,T getOne(ID id)依赖于EntityManager.getReference()执行实...
springboot + mybatis 一对多查询 + 懒加载
springboot + mybatis 一对多查询 + 懒加载 直接上图 父表 子表 parent相关代码 entity public class ParentMessage implements Serializable { private Integer id; private String valu...
[JavaEE - JPA] 性能优化: 4种触发懒加载的方式
在一个JPA应用中,可以通过懒加载来提高应用的性能。这一点毋庸置疑,但是懒加载不等于不加载,在某个时刻还是需要加载这些数据的,那么如何触发这个加载的行为才能够事半功倍呢?这里我想说一点题外话,面试的时候我也会考察被面试者对于JPA/Hibernate的看法,得到的答复通常都包含了对JPA/Hibernate的一些”鄙夷”,比如JPA/Hibernate性能太菜了,现在主流的持久层框架是MyBatis
jpa中的延迟加载问题
EntityManagerFactory factory=Persistence.createEntityManagerFactory(&quot;shenhua&quot;); EntityManager em=factory.createEntityManager(); Person p=em.find(Person.class,2 ); Person p1=em.getReferenc...
@JoinColumn 设置为可为空,不可行。|| 懒加载
最近重构项目想偷懒使用hibernate自动创建表 。 @ManyToOne场景中@JoinColumn 中可设置nullable 但是不管设置为true还是false,该字段均不可为空 后来想了一想确实有了外键关系,该字段是不可为空的。 但是业务需求:任务表关联结果表,但是任务不一定有结果, 这个时候需要级联查询不需要写sql时候【虽然级联每次用到用不到都会查询 lazy除外】 就
spring data jpa 懒加载异常处理记录
manytomany关系中,使用 fetch = FetchType.LAZY 来做懒加载,加快些性能。一直出错,原因是session被关闭,多方查找才解决,主要是保持session,需要事务。 web.xml<!--在页面开启session,解决懒加载异常的问题--> <filter> <filter-name>OpenEntityManagerInViewFilter<
spring-data-jpa如何在特定的时候获取lazy加载的数据
比如有两个实体A, B是多对多关系,并且相互指定默认使用lazy加载@Entity public class EntityA implements Serializable { ... @ManyToMany(fetch = FetchType.LAZY) private List&amp;lt;EntityB&amp;gt; entityBList = new ArrayList&amp;lt;...
SpringBoot Jpa使用时碰到的问题总结
1.Jpa的映射策略 在springboot使用jpa的话,会有这么一行配置: spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl 这是jpa的命名策略。查阅资料后,解释是这样的: SpringNamingStrat...
Spring Boot集成JPA的Column注解命名字段无效的问题
偶然发现,Spring Boot集成jpa编写实体类的时候,默认使用的命名策略是下划线分隔的字段命名。Spring Boot版本:1.5.4.release数据表:id int, userName varchar(50)那么如下的映射:@Data @Entity @Table(name="t_users") @NoArgsConstructor @AllArgsConstructor @Access
springboot实现个别bean懒加载
懒加载---就是我们在spring容器启动的是先不把所有的bean都加载到spring的容器中去,而是在当需要用的时候,才把这个对象实例化到容器中。@Lazy在需要懒加载的bean上加上@Lazy就可以了...
Mybatis 设置懒加载失效的问题
在配置懒加载按照官网上介绍写了好几次都没成功,后来百度查了,发现是“隐藏触发了懒加载” 配置文件 &amp;lt;settings&amp;gt; &amp;lt;!-- 打开延迟加载的开关 --&amp;gt; &amp;lt;setting name=&quot;lazyLoadingEnabled&quot; value=&quot;true&quot; /&amp;gt; &amp;lt;!-- 将积极加载改为消息加载即按需加载 -...
Spring Data JPA 设置字段默认值
在Column注解中写入以下两个属性,为什么自己查一下文档吧,即可实现字段默认值设置,并顺带解决save方法所生成的sql语句中自动填充字段为null的问题。默认值无法更新,所以如果想在代码里修改字段默认值,你需要重新建表。 @Column(insertable = false,columnDefinition = &quot;int default 1&quot;) private Intege...
关于@ManyToMany懒加载设置的问题
最近开发过程中使用注解@ManyToMany出现org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.martin.testproject.entity.SysPermission.roles, could not initialize proxy - no ...
spring boot JPA 注意的几个问题 (session提前关闭、关联集合属性延迟加载问题、多表查询问题等)
如图1所示,会议提前关闭问题 spring整合hibernate或者spring boot里使用jpa,本质都是hibernate的sesison操作数据库,默认sesison会提前关闭,报延迟加载..异常,要等到后台值返回到视图层之后,才关闭sesison才合理; spring boot里这样设置即可,延续session到返回视图层   2,多表关联时的延迟加载。 @ManyToM...
SpringBoot中JPA事务失效的问题
在SpringBoot中使用jpa,表是通过对应的实体直接建立,默认情况下,表的引擎engine=MyISAM性能更好,但不提供事务支持,如果需要使用事务,需要将JPA建表的默认引擎修改为:InNoDB,直接修改配置文件,如下: # application.xml spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoD...
Spring MVC返回hibernate对象序列化json报懒加载出错的问题
在懒加载的字段上加上JsonIgnore注解 例如 @JsonIgnore @OneToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY, mappedBy = "TCrawlerWin310") public Set<HadOdds> getHadOddses() { return this.
JPA主键策略(针对数据库自增字段重置后无效检查项)
JPA主键策略(针对数据库自增字段重置后无效检查项) JPA主键生成策略会影响数据库自增字段的重置
@ResponseBody 与Hibernate懒加载LAZY失效的问题
@ResponseBody将Object转为JSON 如果Object的关联属性用了LAZY加载; LAZY将会失效,将关联数据也查出。这个时候需要给转换MappingJackson2HttpMessageConverter  的 ObjectMapper注册Hibernate4Module。 第一步:  需要下载 jackson-datatype-hibernate4-2.23
springboot中jpa无法初始化
springboot项目中使用jpa时,项目单元测试时出现以下错误提示信息: 出现该错误的原因是spring的jpa的懒加载。 解决此问题: 在springboot的配置文件中加上:(第一种配置文件的格式是“yml”结尾) spring: jpa: open-in-view: true properties: ...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习boot boot学习 java