最近开发时候,遇到一些问题。由于两个项目在整合,在service和dao层调用get方法返回的对象,返回的是hibernate proxy对象而不是原始对象的值.导致在service使用反射赋值时候报错。
后续发现是@Inheritance(strategy = InheritanceType.SINGLE_TABLE)注解修饰的时候,就会出现get方法返回的是代理对象的问题。
这里写图片描述
解决方法
if (target instanceof HibernateProxy) {
HibernateProxy proxy = (HibernateProxy) target;
LazyInitializer li = proxy.getHibernateLazyInitializer();
return li.getImplementation();
}