JPA,包含 class 类型 Name 的 Map 实体 Person
JPA, Map entity Person which contains class of type Name
我有一个包含名称属性的实体 Person
@Entity
public class Person {
// ...
//@Transient
private Name name;
// ...
}
我不想将 "name" 存储在额外的 table 中...我将名称标记为瞬态,因此它不会存储在基础数据库中。
我想要的是将属性 "name" 映射到数据库中的列 "first_name" 和 "last_name"。
例如我可以创造一个像new Person(new Name("John","Doe"));
这样的人
如何实现底层 table 包含两个附加列 first_name 和 last_name 并且内容是我从 name 属性中获取的字符串的映射?
table,基于人的实体应该是这样的
id|first_name|last_name
1 |约翰 |母鹿
2 |简|母鹿
您可以使用嵌入式:
@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
我有一个包含名称属性的实体 Person
@Entity
public class Person {
// ...
//@Transient
private Name name;
// ...
}
我不想将 "name" 存储在额外的 table 中...我将名称标记为瞬态,因此它不会存储在基础数据库中。
我想要的是将属性 "name" 映射到数据库中的列 "first_name" 和 "last_name"。
例如我可以创造一个像new Person(new Name("John","Doe"));
如何实现底层 table 包含两个附加列 first_name 和 last_name 并且内容是我从 name 属性中获取的字符串的映射?
table,基于人的实体应该是这样的
id|first_name|last_name 1 |约翰 |母鹿 2 |简|母鹿
您可以使用嵌入式:
@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