Java Hibernate:将单个表的属性分组到一个子类中
我想做:Java Hibernate:将单个表的属性分组到一个子类中,java,hibernate,relational-database,Java,Hibernate,Relational Database,我想做: create table user ( id bigint primary key auto_increment, firstname varchar(128), lastname varchar(128), street varchar(128), zipcode mediumint, city varchar(128) ) 然后: @Entity public class User { @Id @Generated
create table user (
id bigint primary key auto_increment,
firstname varchar(128),
lastname varchar(128),
street varchar(128),
zipcode mediumint,
city varchar(128)
)
然后:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String firstname;
private String lastname;
private Address address; // Here I want an Address rather than street, zip, and city directly inside User
...
}
以及:
(这是一个例子)
用Hibernate怎么做@奥涅?问题似乎很简单,因为我在这里找不到解决方案,所以它一定很明显。您可以使用@OneToOne注释通过一对一的关系关联实体
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Address address;
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
public Address getAddress()
{
return address;
}
}
参考:
首先,用
@embeddeble
注释您的地址
类:
@Embeddable
public class Address {
/*class definition here*/
...
}
然后以以下方式更新用户类:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String firstname;
private String lastname;
@Embedded
private Address address;
...
}
就这样。如果您想要更复杂的示例,请查看。只需注意模型类定义,只要使用JPA处理数据库,使用Spring Boot与不使用Spring Boot都没有区别。看看可嵌入类型:谢谢,它看起来很棒。我会接受它,当我可以测试它,因为一些工作需要做之前。
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String firstname;
private String lastname;
@Embedded
private Address address;
...
}