JPA如何保存OneToMany对象图
How JPA saves OneToMany Object graph
当Many端的实体已经存在于数据库中时,JPA如何保存OneToMany对象图。它是否在 'Many' 端查询 table 实体以找到主键,以便它可以插入 'One' 端的实体?
例如
员工 ---* 项目
有一个网页,您需要提供员工详细信息,然后一个一个地添加项目。说出页面上提供的员工详细信息以及提供和添加的 2 个项目详细信息,并保存此对象图。现在,当提供第二个员工详细信息并提供与数据库中已有的项目详细信息相同的项目详细信息并保存此图时,在这种情况下,JPA 实现是否会查询 'Many' 侧 table 与所有Project 中 where 子句中的字段以查看实体是否已经存在?如果是,则获取它并向员工提供 ID,而不是再次将项目插入数据库。
would JPA implementation in this case query 'Many' side of table with all the fields from Project in where clause to see if entity is already present?
没有。标识实体的是它的 ID。没有其他的。顺便说一句,如果这样做,您将不再有 OneToMany 关联,因为同一个项目将链接到两个员工。
当Many端的实体已经存在于数据库中时,JPA如何保存OneToMany对象图。它是否在 'Many' 端查询 table 实体以找到主键,以便它可以插入 'One' 端的实体?
例如 员工 ---* 项目
有一个网页,您需要提供员工详细信息,然后一个一个地添加项目。说出页面上提供的员工详细信息以及提供和添加的 2 个项目详细信息,并保存此对象图。现在,当提供第二个员工详细信息并提供与数据库中已有的项目详细信息相同的项目详细信息并保存此图时,在这种情况下,JPA 实现是否会查询 'Many' 侧 table 与所有Project 中 where 子句中的字段以查看实体是否已经存在?如果是,则获取它并向员工提供 ID,而不是再次将项目插入数据库。
would JPA implementation in this case query 'Many' side of table with all the fields from Project in where clause to see if entity is already present?
没有。标识实体的是它的 ID。没有其他的。顺便说一句,如果这样做,您将不再有 OneToMany 关联,因为同一个项目将链接到两个员工。