jpa - JPA,映射实体人,其中包含名称类型的类
问题描述
我有一个由名称属性组成的实体 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|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
推荐阅读
- sql - SQL Server script to backup tables
- c# - 未触发数据网格上复选框的未选中事件
- c++ - 我没有得到一个数字作为输出,而是一个表情符号
- html - 为什么我的代码没有在我的网页上呈现表格列表?
- c# - 是否可以包装类型以仅在 C# 中的表达式中使用?
- markdown - Sapper/Svelte:如何添加降价文件?
- google-analytics-api - 为什么我不断收到“配额组 'AnalyticsDefaultGroup' 超出配额并限制 'USER-100s'”错误?
- r - 如何将 SPSS 文件读入 R 以解决多项选择问题?
- c# - 如何获得用户的输入并提供反馈
- bash - 在循环期间访问 KV 对中的值