为了账号安全,请及时绑定邮箱和手机立即绑定

为什么jpa单向一对多关联thymeleaf还是会堆栈溢出?

为什么jpa单向一对多关联thymeleaf还是会堆栈溢出?

繁华开满天机 2019-05-22 16:18:33
user类中有个tag类的set集合;只从user类维护关系,一对多@OneToMany@JoinTable(name="shuo_tag",inverseJoinColumns=@JoinColumn(name="tag_id"),joinColumns=@JoinColumn(name="shuo_id"))privateSettags;Tag类中没有维护关系然后我再html中[[${user}]]这样获取user就会出现以下这种错误java.lang.StackOverflowError:nullatjava.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1012)~[na:1.8.0_151]atjava.util.concurrent.ConcurrentHashMap.putIfAbsent(ConcurrentHashMap.java:1535)~[na:1.8.0_151]atjava.lang.ClassLoader.getClassLoadingLock(ClassLoader.java:463)~[na:1.8.0_151]atjava.lang.ClassLoader.loadClass(ClassLoader.java:404)~[na:1.8.0_151]atjava.lang.ClassLoader.loadClass(ClassLoader.java:411)~[na:1.8.0_151]atsun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)~[na:1.8.0_151]atjava.lang.ClassLoader.loadClass(ClassLoader.java:357)~[na:1.8.0_151]atorg.thymeleaf.util.JavaScriptUtils.printObject(JavaScriptUtils.java:365)~[thymeleaf-2.1.6.RELEASE.jar:2.1.6.RELEASE]atorg.thymeleaf.util.JavaScriptUtils.print(JavaScriptUtils.java:184)~[thymeleaf-2.1.6.RELEASE.jar:2.1.6.RELEASE]atorg.thymeleaf.util.JavaScriptUtils.printArray(JavaScriptUtils.java:227)~[thymeleaf-2.1.6.RELEASE.jar:2.1.6.RELEASE]
查看完整描述

2 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

@OneToMany有一个属性叫fetch,默认是LAZY:
@Target({METHOD,FIELD})
@Retention(RUNTIME)
public@interfaceOneToMany{
/**(Optional)Whethertheassociationshouldbelazilyloadedor
*mustbeeagerlyfetched.TheEAGERstrategyisarequirementon
*thepersistenceproviderruntimethattheassociatedentities
*mustbeeagerlyfetched.TheLAZYstrategyisahinttothe
*persistenceproviderruntime.
*/
FetchTypefetch()defaultLAZY;
}
所以你要直接用,需要修改为立即加载,可以这么修改:
@OneToMany(fetch=FetchType.EAGER)
                            
查看完整回答
反对 回复 2019-05-22
?
holdtom

TA贡献1805条经验 获得超10个赞

这是thymeleaf2的bug,升级到thymeleaf3可以解决此bug;
thymeleaf2的时候是自己处理的json;thymeleaf3使用的jackson,jackson可以通过使用@JsonIgnoreProperties和@JsonIgnore注解解决两个类互相引用的问题
                            
查看完整回答
反对 回复 2019-05-22
  • 2 回答
  • 0 关注
  • 721 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信