休眠映射列

时间:2018-08-29 14:26:09

标签: hibernate spring-data-jpa

我有这张桌子

create table person(
  name varchar(250);
  age integer;
  zipcode integer;
  address varchar(250)
);

我可以在我的实体中这样映射吗:

public class Address {
  private Integer zipCode;
private String address;
}

public class Person{
  private String name;
  private Integer age;
  private Address address;
}

是否没有创建新的地址表?

tks

2 个答案:

答案 0 :(得分:1)

是的,我们可以在实体内部映射实体而无需创建新表。

我们可以创建Person表,并在Person内部创建表Address表的字段列。

1)地址类嵌入在Person类中。

@javax.persistence.Embeddable
public class Address {
  private Integer zipCode;
private String address;
}

2)人员分类。

 public class Person{
  private String name;
  private Integer age;
  @Embedded // this annotation is optional
 private Address address;
}

注意:添加创建表所需的所有JPA批注。

答案 1 :(得分:0)

您可以使用 @DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING,名称=“ TYPE”)

---添加

公共类人员扩展地址{ }

相关问题