JPA,映射实体人,其中包含名称类型的类
Posted
技术标签:
【中文标题】JPA,映射实体人,其中包含名称类型的类【英文标题】:JPA, Map entity Person which contains class of type Name 【发布时间】:2020-04-01 10:51:50 【问题描述】:我有一个由名称属性组成的实体 Person
@Entity
public class Person
// ...
//@Transient
private Name name;
// ...
我不想将“名称”存储在额外的表中...我将名称标记为瞬态,因此它不会存储在基础数据库中。
我想要的是将属性“name”映射到数据库中的“first_name”和“last_name”列。
例如我可以创建一个像new Person(new Name("John","Doe"));
这样的人
如何实现基础表包含两个附加列 first_name 和 last_name 并且内容是我从 name 属性获得的字符串的映射?
基于人员实体的表格应如下所示
id|名字|姓氏 1 |约翰 |能源部 2 |简 |母狗
【问题讨论】:
【参考方案1】:您可以使用嵌入式:
@Embeddable
public class Name
private String firstName;
private String lastName;
// getters and setters
然后像这样使用它。
@Entity
public class Person
// ...
private Name name;
// ...
在 Hibernate 文档中阅读有关可嵌入的更多信息:https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#embeddables
【讨论】:
以上是关于JPA,映射实体人,其中包含名称类型的类的主要内容,如果未能解决你的问题,请参考以下文章