[英]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.