我有一个转换器,可以将域对象转换为数据传输对象。我的域对象有一个懒惰加载的集合。如果我没有使用转换服务在控制器方法上放置@Transactional
,我会得到org.hibernate.LazyInitializationException
。
我也无法将@Transactional
放在转换器中的方法或类上,因为它会导致
Caused by: java.lang.IllegalArgumentException: Unable to the determine sourceType <S> and targetType <T> which your Converter<S, T> converts between; declare these generic types.
所以我想知道我有什么选择来解决这个或更好的设计方案?
答案 0 :(得分:0)
首先,你必须传递一个完全内化的对象。
将您的收藏标记为FetchType.EAGER
。
或者在您的服务中,在检索时,
hibernate.initialize(parent.getChilds())