Java Spring转换服务延迟加载
我有一个转换器,可以将域对象转换为数据传输对象。我的域对象有一个延迟加载的集合。如果我没有使用转换服务将Java Spring转换服务延迟加载,java,spring,hibernate,converter,Java,Spring,Hibernate,Converter,我有一个转换器,可以将域对象转换为数据传输对象。我的域对象有一个延迟加载的集合。如果我没有使用转换服务将@Transactional放在控制器方法上,我会得到org.hibernate.LazyInitializationException 我也不能将@Transactional放在转换器中的方法或类上,因为它会导致 Caused by: java.lang.IllegalArgumentException: Unable to the determine sourceType <S>
@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.
原因:java.lang.IllegalArgumentException:无法确定转换器之间转换的sourceType和targetType;声明这些泛型类型。
所以我想知道我需要什么样的选项来解决这个问题或者更好的设计方案?首先,你必须传递一个完全内部化的对象 将您的收藏标记为
FetchType.EAGER
或者在您的服务本身中,在检索时
hibernate.initialize(parent.getChilds())
使用
hibernate.initialize(parent.getChilds())
抛出org.hibernate.hibernateeexception:集合未与任何会话关联
@Hank这意味着会话不存在,请尝试使用第一个选项FetchType.EAGER
如果我不想立即获取它,还有其他选择吗?