标签:
数据库中存在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
hibernate加载策略设置为lazy时,可以在使用的时候加载相应的数据,但会绑定一个类,在转换json时,需要将此类屏蔽。在类级别上添加如下注解:
@JsonIgnoreProperties(value={"handler","hibernateLazyInitializer"})
记jpa、json问题之:handler and unable to find...by id ..
标签:
原文地址:http://my.oschina.net/QoO/blog/365621