2 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
為了避免重復(fù)(重復(fù))數(shù)據(jù),我們必須確保有一個(gè)唯一的鍵,并且將由@Id 注釋。在此示例中,將其命名為 self 不是唯一的,這就是結(jié)果顯示重復(fù)數(shù)據(jù)的原因。eventDateTime作為唯一字段是更好的選擇。
public class Event {
private String name;
private String description;
@Id
private Date eventDateTime;
//getter and setter code
}
或者,我們可以使用name和eventDateTime定義一個(gè)復(fù)合唯一鍵。
public class CompositeKey implements Serializable {
private String name;
private Date eventDateTime;
}
然后,使用 @IdClass(CopositeKey.class) 和名稱和eventDateTime字段使用 @Id注釋事件類
@IdClass(CopositeKey.class)
public class Event {
@Id
private String name;
private String description;
@Id
private Date eventDateTime;
//getter and setter code
}

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
您的name
-column 是實(shí)體 ( @Id
) 的標(biāo)識(shí)符,但您的 sample-data 包含data
兩次 String。
標(biāo)識(shí)符必須是唯一的,如果您手動(dòng)分配它們(即不使用生成的標(biāo)識(shí)符),則應(yīng)用程序有責(zé)任保持它們的唯一性。
如果不是奇怪的行為可能會(huì)發(fā)生。
因此,您應(yīng)該修復(fù)您的示例數(shù)據(jù)或使用另一列(帶有生成的值)作為實(shí)體的標(biāo)識(shí)符。
添加回答
舉報(bào)