【问题标题】:JPA, Map entity Person which contains class of type NameJPA,映射实体人,其中包含名称类型的类
【发布时间】: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 |简 |母狗

【问题讨论】:

    标签: jpa orm entity


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-08
      • 2020-08-27
      • 2011-07-13
      • 1970-01-01
      • 2021-05-25
      相关资源
      最近更新 更多