Sai*_*ita 5 java hibernate spring-boot
我有一个带有 lob 字段的持久实体,该字段会被急切地获取,因此我配置了hibernate-enhance-maven-plugin并使其变得懒惰:
@Lob
@Column(name = "MY_FIELD")
@Basic(fetch = FetchType.LAZY)
private byte[] lazyField;
现在我在一个相当简单的测试中得到了LazyInitializationException:
myJpaRepo.findAll().get(0).getLazyField()
无法执行请求的延迟初始化 [MyEntity.lazyField] - 没有会话且设置不允许在会话外部加载
我使用 Spring Boot,没有做任何具体的配置 hibernate。本次测试使用h2数据库。
MyRepo 使用@Transactional 进行注释。
如果我也注释执行方法,则不会抛出异常:
@Transactional
public void test(){
    myJpaRepo.findAll().get(0).getLazyField()
}
每次有人尝试获取惰性字段时,我是否都需要将其注释为事务性的,或者我可以采取其他措施来避免这种情况?
| 归档时间: | 
 | 
| 查看次数: | 5773 次 | 
| 最近记录: |