gpt4 book ai didi

java - 具有两个 ID 的实体

转载 作者:行者123 更新时间:2023-11-29 03:46:53 25 4
gpt4 key购买 nike

假设我定义了以下实体:

@Entity   
class User{

@Id
@GeneratedValue
@Column(name = "DB_ID")
private long id;

@Id
@Column(name = "LOGIN", unique = true)
private String code;

//setters, getters
}

问题 #1。
当我使用 .find(User.class, someId) 方法时,我必须设置什么 ID?我应该使用长字段 ID 或字符串字段代码?或者我可以同时使用长字段 ID 和字符串字段代码吗?

问题 #2。
如果我想使用方法.merge(user),在这种情况下记录会被更新吗?
案例 #1:- id 等于 DB_ID,code 不等于 LOGIN
案例 #2:- id 不等于 DB_ID,code 等于 LOGIN
案例 #3:- 等于 DB_ID 和代码等于 LOGIN
或任何其他条件?

最佳答案

任何具有复合 id(多个 Id 字段)的类都必须定义自己的 IdClass(您还没有定义)。 IdClass 的实例是您随后传递给 EM.find 的内容。这很容易在 JPA 规范中找到

关于java - 具有两个 ID 的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10478743/

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