最近做一个实验,用到springboot +jpa 用来操作mysql 读写分离,遇到一个问题,我在
使用dao 对象
public interface PersonRepository extends JpaRepository<Person, Long> {
}
中 person = personRepository.getOne(id); 的使用,出现
在返回对象中 增加一个 handler = org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer@xxxx 属性,debug 发现 SingleTableEntityPersister 添加动态代理增加的,
导致 fasterxml.jackson 反序列失败;解决有几种方法:
一种在 对象比如person 类头部 中增加属性
@JsonIgnoreProperties(value={"hibernateLazyInitializer"})
2: 在方法调用的时候,使用 personRepository.findOne() 可以避免使用此问题
具体为什么 这样做,在返回对象增加个 JavassistLazyInitializer,增加要给懒加载机制。