记jpa、json问题之:handler and unable to find...by id ..

  1. 数据库中存在ID为1的user用户信息,但系统查不到,通过查看打印的sql语句,发现有state表的引用,生成的sql语句类似:select ....from user u inner join state s on u.state=s.id where u.id=1,其中user表的state字段是空的,故而无法查找到数据。

    举个例子:user表中有一条记录

    id user_name password state_id
    1 zhangsan 123456 3

    state表有以下记录

    id state_title
    1 正常?
    2 禁用?
    4 过期

    根据可以找到id为1的user,但无法找到id为3的state,但异常信息是查找不到id为1的user,是因为查询时 ,spring data jpa会根据class信息,自动查找关联表的数据,where条件是user的id

  2. hibernate加载策略设置为lazy时,可以在使用的时候加载相应的数据,但会绑定一个类,在转换json时,需要将此类屏蔽。在类级别上添加如下注解:

@JsonIgnoreProperties(value={"handler","hibernateLazyInitializer"})


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。