【发布时间】:2013-04-10 04:12:54
【问题描述】:
我是 stackoverflow 和 JPA 的新手,所以我会尽力解释这一点。
在一个实体中,我想通过给出 int 值来设置外键,但我也想通过给出一个对象来设置它。这里有一些代码可以更好地解释它。
@Entity
public class Thread implements Serializable {
@ManyToOne
@JoinColumn(name = "accountId", referencedColumnName = "id", nullable = false)
public Account getAccount() {
return account;
}
@Column(name = "accountId")
@Basic
public int getAccountId() {
return accountId;
}
}
我尝试了几种方法,但上面的代码是我想要实现的最佳示例。我知道在这两种方法中的任何一种中设置 insert = false 和 update = false 都会使这段代码在编译和运行时都能正常工作。但我希望能够通过使用 Account 对象和设置实际的 int accountId 来插入 accountId。
这是因为有时,在我的服务器中,我只有 accountId,有时我有 Account 对象。
我也明白最好的解决方案可能是在创建线程和设置 accountId 时使用 account.getId()。但是在我的服务器中能够只使用该对象在逻辑上会很好。
提前致谢!
【问题讨论】:
-
我只会使用对象而忘记使用 ID。如果您尝试超优化您的应用程序,请使用会话缓存并尝试
em.getReference()以防止数据库命中。
标签: java jpa foreign-keys entity hibernate-onetomany