您好,我正在尝试使用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

09-12 05:49