java – 使用Kotlin的Hibernate:@ManyToOne(fetch = FetchType.
发布时间:2020-12-15 02:20:18 所属栏目:Java 来源:网络整理
导读:我正在使用Hibernate和Kotlin,我在@ManyToOne关系上遇到FetchType.LAZY问题.考虑以下: @ManyToOne(fetch = FetchType.LAZY)open var event: Event? 问题是当使用FetchType.LAZY时,获取的Event将是类Event _ $$_ jvst _…并且带有JavaassistLazyInitializer.
|
我正在使用Hibernate和Kotlin,我在@ManyToOne关系上遇到FetchType.LAZY问题.考虑以下:
@ManyToOne(fetch = FetchType.LAZY) open var event: Event? 问题是当使用FetchType.LAZY时,获取的Event将是类Event _ $$_ jvst _…并且带有JavaassistLazyInitializer.但事件永远不会被初始化,一切都将为null或为空. >删除FetchType.LAZY后,一切正常. 我的猜测是Hibernate无法轻易代理这些默认的kotlin getter.有办法解决吗? 解决方法
您可以使用此静态方法来对您的实体进行deproxy
/**
* Utility method that tries to properly initialize the Hibernate CGLIB
* proxy.
* @param <T>
* @param maybeProxy -- the possible Hibernate generated proxy
* @param baseClass -- the resulting class to be cast to.
* @return the object of a class <T>
* @throws ClassCastException
*/
public static <T> T deproxy(Object maybeProxy,Class<T> baseClass) throws ClassCastException {
if (maybeProxy instanceof HibernateProxy) {
return baseClass.cast(((HibernateProxy) maybeProxy).getHibernateLazyInitializer().getImplementation());
}
return baseClass.cast(maybeProxy);
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |








