gpt4 book ai didi

java - 插入具有关系的 Hibernate 实体

转载 作者:行者123 更新时间:2023-12-02 07:57:03 24 4
gpt4 key购买 nike

假设我有这些类(class):

public class Loan {
@Id
private Long id;

@ManyToOne
@JoinColumn(name = "lender_id")
private User lender;
}

public class User {

@Id
private Long id;

@Column
private String userName;

@OneToMany
private List<Loan> loans;
}

现在,假设我有用户(贷方)ID,并且在 DAO 层中,我想根据贷方的 id 创建一个 Loan

我意识到我可以执行以下操作:

User u = userDao.getUserById(1234L);
loanDao.createLoan(u, "someLoan");

但我想知道是否可以在不预加载用户记录的情况下完成此操作?

最佳答案

没有一个好的方法可以做到这一点,部分原因是它从根本上会导致错误的 ORM 代码。作为程序员,您负责管理实体的内存状态并保持它们正确。如果您创建一个新的贷款并说它属于一个用户,并且一个用户有一个贷款集合,那么您有责任将该贷款添加到该用户! (一旦涉及到缓存,就会产生真正的后果。)

您正在使用 ORM,您需要根据对象而不是数据库来思考。在外键列中添加数字并不重要,设置对象模型的正确内存中表示对您来说才是重要的。数据库是hibernate的问题。

关于java - 插入具有关系的 Hibernate 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9476890/

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