【发布时间】:2020-08-04 15:14:55
【问题描述】:
我有员工的Spring和“个人发展计划”数据被持久化。可以说,员工是统治阶级。它看起来像这样:
@Entity(name = "employee")
@Table(name = "EMPLOYEE")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "EMPLOYEE_ID")
private int id;
// etc...
}
个人发展计划如下:
@Entity(name = "pdp")
@Table(name = "PDP")
public class PersonalDevelopmentPlan implements Serializable {
@Id
@GeneratedValue
@Column(name = "PDP_ID")
private int id;
@ManyToOne(optional = false)
@JoinColumn(name = "EMPLOYEE_ID")
private Employee employee;
// etc..
}
在数据库中,它存储为来自PDP -> Employee 的外键引用。
我希望能够加载数据库中的 PDP,只有员工 id,但我总是得到具有所有属性的整个 Employee 对象。我该怎么做?
我尝试了@ManyToOne(fetch = FetchType.Lazy),但这在获取时给了我以下错误:
类型定义错误:[简单类型,类 org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor];嵌套的 例外是 com.fasterxml.jackson.databind.exc.InvalidDefinitionException:否 为类找到序列化程序 org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor 并且没有 发现创建 BeanSerializer 的属性(为了避免异常, 禁用 SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过引用 链: java.util.ArrayList[0]->nl.kars.lms.model.pdp.PersonalDevelopmentPlan["employee"]->nl.kars.lms.model.Employee$HibernateProxy$AAwzPX4I["hibernateLazyInitializer"])
我做错了什么?
【问题讨论】:
-
你可以尝试在Employee类中实现Serializable接口吗?
标签: java spring hibernate many-to-many