Java 如何使用spring数据保存实体的子实体
我正在尝试使用Spring引导和Spring数据执行一项任务。 我有两个实体组织和位置 1.组织Java 如何使用spring数据保存实体的子实体,java,spring-boot,spring-data,Java,Spring Boot,Spring Data,我正在尝试使用Spring引导和Spring数据执行一项任务。 我有两个实体组织和位置 1.组织 public class Organization { private Long id; private String name; private Location location; } public class Location { private Double lattitude; private Double longitude; } 我的数据库表
public class Organization {
private Long id;
private String name;
private Location location;
}
public class Location {
private Double lattitude;
private Double longitude;
}
我的数据库表如下所示:
CREATE TABLE organization (
id int primary key,
organization_name varchar(255),
organization_location_lat double,
organization_location_long double
)
现在我使用spring数据在数据库中持久化这个实体。在正常情况下,只要调用save(Organization org)方法就可以持久化数据,但我不确定如何将组织数据与位置一起存储。
有人能帮我吗?实体有一个标识。嵌入对象没有自己的标识,只能使用拥有的实体进行查询 您的组织是
@实体
应用程序应该是@可嵌入的
(因为没有id,它是组织
表的一部分)
但是,根据您的表格,如果位置只是组织的一部分,并且没有自己的生命周期(仅存在于组织内部),我认为这不是您的情况。如果位置在组织之外有生命周期
它应该是实体(然后应该是位置
和实体的id),并且您需要组织
和位置
之间的关系,这取决于您使用的情况,例如一对一或多对一,并使用sascade类型作为位置
public class Organization {
@Id
private Long id;
@Column
private String name;
@Embedded
private Location location;
}
@Embeddable
public class Location {
private Double lattitude;
private Double longitude;
}
请参见示例谢谢您的快速回复!!在我的案例中,位置是组织的一部分,它不会有自己的独立存在,但它也将是少数其他实体的一部分,如汽车、个人等。因此我假设@Embeddeble也适用于所有这些情况?是的,它适用。我写了关于@entity for location的文章,就像在普通情况下一样:)我们从beggining开始,几个月后,我们开始分离实体,现在,我们有很多位置数据重复。很少有其他实体,如汽车、人等-考虑用location创建基类并从中扩展,如果你能接受的话