我已經和實體兩個字段的ID和因此代碼的代碼......JPA:基於自動遞增的ID
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Integer id;
@Basic
@Column(name = "code", nullable = false)
private String code;
我想什麼做的是,產生該代碼基於自動遞增的ID(使用Mysql作爲數據庫)。
有沒有一種方法不使用表來生成代碼列的鍵。 即
- ID = 1級的代碼是M-000-1
- ID = 2碼是M-000-2等。
我已成功地做到這一點的唯一方法是使用下面的腳本。我不太確定的是正確的方法。
getEntityManager().persist(myEntity);
getEntityManager().flush();
myEntity.setCode(myEntity.getCode()+myEntity.getId());
getEntityManager().merge(myEntity);
在此先感謝! Dimitri
這種感覺不是一種很好的方法。當你進行合併時會發生什麼?然後你將在DB和持久層中有不同的ID .. – Marthin
由於ID是主鍵,它會在持續時間內生成一次;之後,它不會改變。你能否提供關於你的合併案例的更多細節? –
我的歉意,我誤解了原來的問題(我認爲DB中的id是代碼)。我現在同意你的解決方案。抱歉佔用你的時間。 – Marthin