gpt4 book ai didi

Java Spring ManyToOne 如何加载唯一引用

转载 作者:行者123 更新时间:2023-12-02 00:56:19 25 4
gpt4 key购买 nike

我在 Spring 中保存了员工和“个人发展计划”的数据。可以说,员工是统治类(Class)。它看起来像这样:

@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) 但这在获取时出现以下错误:

Type definition error: [simple type, class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0]->nl.kars.lms.model.pdp.PersonalDevelopmentPlan["employee"]->nl.kars.lms.model.Employee$HibernateProxy$AAwzPX4I["hibernateLazyInitializer"])

我做错了什么?

最佳答案

如果您只想要 ID,为什么不映射它而没有关系呢?

@Entity(name = "pdp")
@Table(name = "PDP")
public class PersonalDevelopmentPlan implements Serializable {

@Id
@GeneratedValue
@Column(name = "PDP_ID")
private int id;

@Column(name = "EMPLOYEE_ID")
private Long employeeId;

// etc..
}

关于Java Spring ManyToOne 如何加载唯一引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61350919/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com