Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用spring数据保存实体的子实体_Java_Spring Boot_Spring Data - Fatal编程技术网

Java 如何使用spring数据保存实体的子实体

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; } 我的数据库表

我正在尝试使用Spring引导和Spring数据执行一项任务。 我有两个实体组织和位置

1.组织

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创建基类并从中扩展,如果你能接受的话