gpt4 book ai didi

java - JPA 仅使用其 ID 保存 "new"实体并引用现有实体?

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

假设您有一辆带有一系列轮胎的汽车。

@Entity
public class Car {
private Long id;
@OneToMany(mappedBy = "car")
private Set<Tire> tires = new HashSet<>();
}

@Entity
public class Tire {
private Long id;
...
}

现在,如果您想添加一辆新汽车并添加现有轮胎,您可以获取整个现有轮胎实体以填充汽车集。

是否可以简单地拥有一些 Tire ID 并保存 Car 而无需先将整个 Tire 实体提取到内存中?如果它只是一个单一的轮胎实例而不是一个轮胎组,有没有办法只用一个轮胎 ID 来保存它?使用 JPA 和 Criteria API,或者 JPQL。

最佳答案

您可以通过EntityManager.getReference 使用一个id 来加载一个代理“代理”对象。 .除非您访问对象的任何属性,否则它不会发出任何数据库查询。

如果您访问一个属性,延迟加载机制将启动并加载一个实际的对象。 following question演示了代理对象的结构。有助于获得更好的图片

关于java - JPA 仅使用其 ID 保存 "new"实体并引用现有实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29153023/

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