假設我已經定義了以下實體:實體兩個ID
@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?我應該使用 long field id還是String字段代碼?或者我可以同時使用長字段ID和字符串字段代碼?
問題#2。
如果我想使用方法.merge(user)
,在這種情況下記錄會被更新嗎?
情況#1: - ID等於DB_ID,代碼不等於LOGIN
例#2: - 編號不等於DB_ID,碼等於LOGIN
例#3: - idequals DB_ID和碼等於LOGIN
或任何其他條件?
這些ids是獨立的嗎?如果是這樣,就沒有辦法做到這一點,一個實體必須只有一個ID(可能由多個字段組成)。在你的情況下,'DB_ID'可能是實際的id,'LOGIN'列可能只有唯一的約束,並且必須在查詢中使用。 – Thomas