您好,我正在尝试使用springboot构建mysql数据库,对于一个表,我需要ID和日期的组合主键。我的目标是通过日期进行版本控制。
@AllArgsConstructor
@Data
@NoArgsConstructor
@Entity
public class Document {
@EmbeddedId
private docKey docKey;
}
是可嵌入的正确工具吗?
@Embeddable
public class docKey implements Serializable {
private String uId;
private Date entryDate;
}
最佳答案
Hibernate指定@NaturalId
这就像一个代理密钥
如果实体具有以@NaturalId
注释的字段,则可以通过主键和naturalId进行标识
因此,您可以将Id定义为String并将包含Id和Date的可嵌入类定义为@NaturalId
在这种情况下,您将可以按ID,按Date,按ID和date进行搜索
这是@NaturalId
的文档:
https://docs.jboss.org/hibernate/orm/5.0/mappingGuide/en-US/html/ch07.html