Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring转换服务延迟加载_Java_Spring_Hibernate_Converter - Fatal编程技术网

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
如果我不想立即获取它,还有其他选择吗?