我遇到一种情况,我想将可重复的类字段标记为@embeddable,但是问题是-JPA是否允许多次重用一个类,使其可嵌入其他不同的类中?
例如我的可嵌入类如下所示:
@Embeddable
@Data
public class Audit{
private String name;
private Audit auditor;
private LocalDateTime creationDate;
}
是否可以将审核嵌入到多个不同的类中,例如:
@Entity
@Table(name = "BANK")
public class Bank{
@Id
private Long id;
@Column(name = "BANK_NAME")
private String bankName;
@Embedded
private Audit audit;
}
AND
@Entity
@Table(name = "CORPORATION")
public class Corporation{
@Id
private Long id;
@Column(name = "CORPORATION_NAME")
private String corporationName;
@Embedded
private Audit audit;
}
答案 0 :(得分:0)
从历史上讲,休眠称为这些组件。 JPA称它们为embeddables。无论哪种方式,概念都是相同的:价值的构成。
大多数情况下,可嵌入类型用于分组多个基本类型映射并在多个实体中重复使用。
Java代码示例:
@Data
@Entity(name = "Book")
public class Book {
@Id
@GeneratedValue
private Long id;
private String title;
private String author;
private Publisher publisher;
}
@Data
@Embeddable
public static class Publisher {
@Column(name = "publisher_name")
private String name;
@Column(name = "publisher_country")
private String country;
}
这是SQL,用于显示表的外观:
create table Book (
id bigint not null,
author varchar(255),
publisher_country varchar(255),
publisher_name varchar(255),
title varchar(255),
primary key (id)
)
更多详细信息可以在documentation中找到:)