延迟初始化异常,FetchType.EAGER

时间:2014-09-18 19:44:41

标签: java hibernate dozer

我有一个经典例外LazyInitializationException,但我将我的实体和地图作为带注释的字段FetchType.EAGER

1)我将UserDaoImpl标记为@Transactionalpropagation = Propagation.MANDATORY

2)我有实体User,它有一个地图字段

 @CollectionOfElements(fetch = FetchType.EAGER)
 @JoinTable(name ="SOME_TABLE_NAME", joinColumns =  
            @JoinColumn(name="SOME_COLUMN_NAME"))
 @MapKey(columns = @Column(name="SERVICE"))
 private Map<String, Integer> propertyName

3)UserService,其方法与UserDao相同,但标记为@Transactional。在那里,我使用UserDaoImpl执行方法,因此我可以从UserDAO获得UserModel,然后我想将其转换为UserDTO并返回。

当我在UserService中调试此应用程序时,我得到userModel,该地图已正确初始化。要进行此转换,我使用Dozzer映射。这是一个问题,因为我在这个地图上得到了延迟初始化异常(它在将它传递给dozzer方法之前已经初始化)。

为什么我可以获得FetchType.EAGER的延迟初始化异常?

0 个答案:

没有答案