是否有OpenEntityManagerInViewInterceptor
CLI 应用程序的类似物?
我正在尝试CrudRepository
在 CLI 应用程序中使用 Spring 和由 Hibernate 4 支持的 JPA 数据源。
我的main
方法创建了一个包含此方法的类的实例,并使用context.getBeanFactory().autowireBean(object);
.
用于获取数据的服务具有用 注释的方法@Transactional
。这些方法调用CrudRepository
的方法。
org.hibernate.LazyInitializationException
但是当我尝试在 CLI 应用程序中管理相关实体时收到。
是否有任何解决方法可以使 CLI 应用程序中的延迟加载在Web 应用程序@Transactional
等方法之外工作?OpenEntityManagerInViewInterceptor
查看以下代码段:
public class test {
@Autowired
public UserService userService;
public static void main(String[] args) {
test test = new test();
//injecting dependencies into test
test.run();
}
private void run() {
User user = userService.findById(42);
System.out.println(user.getLogin()); //User was fetched successfully
Address address = new Address("London");
user.addAddress(address);//Exception in thread "main" java.lang.RuntimeException: org.hibernate.LazyInitializationException: failed to lazily initialize a collection
}
}