我正在使用JPA的EclipseLink實現,並且遇到了問題。Java JPA(EclipseLink)如何在保持實際實體之前接收下一個GeneratedValue?
這裏是我的實體類:
@Entity @Table(name = "attendances") public class Attendance implements Serializable {
private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "id") private Short id;....
在我的MySQL表(即底層數據存儲)我有auto_increment
標誌也設置。
如何在持久化實體之前獲取自動生成的值(id
字段)?因此,如果表中有3個實體(id IN (1, 2, 3)
),我希望得到4作爲下一個自動生成的值。
我唯一的解決方法是:
- 獲取實體的ID與最大
id
領域。
這就是我能做的嗎?
爲什麼你想這樣做? –
@Nizet我有一個用於創建出席的對話框,我希望用戶知道即將創建的出席ID。這不是100%所需要的,據說是有幫助的。 –
@JB Nizet:的確是一個非常有效的問題。 –