当我尝试获取懒惰的初始化实体时,我在IDE中看到以下异常消息(我无法找到它在代理实体中的存储位置,因此无法为该异常提供整个堆栈跟踪):
Method threw 'org.hibernate.LazyInitializationException' exception. Cannot evaluate com.epam.spring.core.domain.UserAccount_$$_jvste6b_4.toString()
Run Code Online (Sandbox Code Playgroud)
这是我尝试访问要使用的惰性初始化实体的字段后得到的堆栈跟踪:
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:165)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:286)
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:185)
at com.epam.spring.core.domain.UserAccount_$$_jvstfc9_4.getMoney(UserAccount_$$_jvstfc9_4.java)
at com.epam.spring.core.web.rest.controller.BookingController.refill(BookingController.java:128)
Run Code Online (Sandbox Code Playgroud)
我正在使用Spring Data,已配置JpaTransactionManager,数据库是MySql,ORM提供程序是Hibernate4。注释@EnableTransactionManagement处于启用状态,@ Transactional随处可见,但无济于事。
这是一个关系:
@Entity
public class User extends DomainObject implements Serializable {
..
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "user_fk")
private UserAccount userAccount;
..
@Entity
public class UserAccount extends DomainObject {
..
@OneToOne(mappedBy = "userAccount")
private User user;
..
Run Code Online (Sandbox Code Playgroud)
..一个配置:
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource(); …Run Code Online (Sandbox Code Playgroud) mysql hibernate lazy-loading spring-transactions spring-data
这是我的 DTO:
public class TagVolumeDTO {
private Long id;
private Long idTag;
//...
}
public class TagTDO {
private Long id;
private Long amount;
//...
}
Run Code Online (Sandbox Code Playgroud)
这是我的实体:
public class TagVolume {
private Long id;
private Tag tag;
//...
}
public class Tag {
private Long id;
private Long amount;
//...
}
Run Code Online (Sandbox Code Playgroud)
我想配置我的 ModelMapper 将 Tag#id 映射到 TagVolumeDTO#idTag。那可能吗?