1
我們必須在那裏由觸發器生成的ID表 -JPA - 主鍵前綴
ID =年+月+序列
我通過JPA映射表,我想在我的代碼中也使用相同的PK代。我嘗試了以下選項:
@Id
@SequenceGenerator(name = "assetSeq", sequenceName = "ASSET_SEQ")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "assetSeq")
@Transient
private long id;
,並試圖改變二傳手
public void setId(long id) {
String finalId=getIdPrefix()+id;
this.id = Long.parseLong(finalId);
}
private String getIdPrefix() {
DateFormat df = new SimpleDateFormat("YYYYMM");
Date today = Calendar.getInstance().getTime();
return df.format(today);
}
,但他們的工作不。我只想在數據庫中插入新記錄,並且不希望稍後使用該id。我使用Hibernate作爲JPA
如果您使用的是序列,爲什麼不用觸發器生成值?這樣,你可以確保所有的客戶端將始終使用序列中生成的ID ... –
好主意,這將是一個更好的方法。 –
這會很好,但是如果我將Id設置爲transient,它仍然在插入語句中使用和Id - 這是我的第一種方法 – HamoriZ