- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如,我有 2 节课。第一个
@Entity
@Table(name = "employee")
public class Employee implements Serializable{
@ManyToOne
@JoinColumn(name = "office_address_id")
private Address address;
//setters and getters
}
第二个:
@Entity
@Table(name = "address")
public class Address implements Serializable{
@OneToMany(mappedBy = "address")
private List<Employee> employeeList;
//setters and getters
}
因此,如果我想从数据库中读取Employee
,我会读取address
字段。 Address
具有带有 LazyInitializingException 的 employeeList
。 但我不想知道employeeList
。我只想知道employee.getAddress()
。我想发送 JSON 对象 Employee
。但在客户端,由于 LazyInitializingException ,我无法加载资源:服务器响应状态为 500(内部服务器错误)
。
我可以使用:
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="persistenceUnitName" value="myPersistenceUnit"/>
<property name="packagesToScan" value="com.itechart.model"/>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
<property name="showSql" value="false"/>
<property name="generateDdl" value="true"/>
</bean>
</property>
<!-- USE--!>
<property name="jpaProperties">
<props>
<prop key="hibernate.enable_lazy_load_no_trans">true</prop>
</props>
</property>
<!-- END USE--!>
<property name="persistenceProvider">
<bean class="org.hibernate.jpa.HibernatePersistenceProvider"></bean>
</property>
</bean>
最佳答案
您的 JSON
映射器可能会在 hibernate
session 关闭后访问 Address.employeeList
。这就是它发送 LazyInitializingException
的原因。
您可以尝试以下任一解决方案来解决该问题。
1 ) 从 JSON
映射中排除 employeeList
在Jackson
中,我们可以添加@JsonIgnore
@JsonIgnore
public List<Employee> getEmployeeList() {
}
2 ) 在将 employeeList
发送到 JSON
映射器之前初始化它。
您可以通过调用employeeList.size()
方法来实现
3)您可以将 fetchType 更改为 eager,如下所示
@OneToMany(mappedBy = "address", fetch = FetchType.EAGER)
private List<Employee> employeeList;
关于java - Hibernate LazyInitializingException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26502944/
例如,我有 2 节课。第一个 @Entity @Table(name = "employee") public class Employee implements Serializable{
我是一名优秀的程序员,十分优秀!