[英]Hibernate: EmbeddedId with auto increment
假設我有一個帶有自動遞增 ID 的簡單實體 Hibernate。
@Entity
@Table(name = "product")
public class Product {
@Id
@GeneratedValue(strategy = IDENTITY)
private Long id;
private String name;
}
是否可以將id
聲明為類型安全變量? 我可以像這樣應用@EmbeddedId
。
@Entity
@Table(name = "product")
public class Product {
@EmbeddedId
private ProductId id;
private String name;
@Embeddable
public static class ProductId implements Serializable {
@GeneratedValue(strategy = IDENTITY)
private Long id;
public Long getId() {
return id;
}
}
}
它適用於客戶端生成的 ID,但不適用於數據庫生成的 ID。
有沒有人解決過類似的問題? 有哪些可能的方法?
首先,您需要使用 @Embeddable 注釋 ProductId class,如下所示:
@Embeddable
public static class ProductId implements Serializable {
private Long id;
private String name;
}
而且,當您保存實體時,您還需要創建一個具有唯一參數(在您的例子中是“名稱”字段)的 ProductId 實例。
有關更多信息,我建議您在 這里查看
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.