如何解决有没有一种方法可以在Hibernate中使用共享可嵌入对象?
我遇到一种情况,我想将可重复的类字段标记为@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;
}
解决方法
从历史上讲,休眠称为这些组件。 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中找到:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。