gpt4 book ai didi

java - 如何在JPA中保存外键实体

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:06:16 26 4
gpt4 key购买 nike

我有 2 个表 customer 和 customerhistory。 customhistory 具有引用客户的 customerId 的外键 customerId。在 JPA 生成的实体中,我在 customerhistory 类中有一个客户对象,而我只想在 consumerhistory 表中保存 customerId

我得到了正确的 customerId,但是当我想保存属性 customerId 时,我只有 customer 对象,但在自动生成的 consumerhistory 实体类中没有 customerId

@Entity
public class Customerhistory implements Serializable {
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int primarykeyId;

//bi-directional many-to-one association to Customer
@ManyToOne
@JoinColumn(name="CustomerId")
private Customer customer;

如上所示,我在实体 customerHistory 中没有 customerId。如何保存?

最佳答案

使用 getReference调用 entityManager 以使用 id 加载客户对象,然后将其设置到客户历史记录中。在大多数情况下,此调用将返回仅嵌入 id 的代理,除非调用客户的其他一些方法,否则不会加载客户属性。

Customer customer = entityManager.getReference(Customer.class, cutomerId);

CustomerHistory newCustomerHistory = new CustomerHistory();
newCustomerHistory.setCustomer(customer);
entityManager.persist(newCustomerHistory);

关于java - 如何在JPA中保存外键实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16572207/

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