如何处理jpa中的关系

时间:2018-01-30 19:14:31

标签: jpa spring-boot spring-data spring-data-jpa

我使用弹簧启动2和弹簧数据

在一对多的关系中,当我们想要在休息架构中删除关系时,应该是什么样的好方法

儿童和父母继续存在......只有关系必须被删除

@DeleteMapping(value="/{id}/child/{childId}")
public void deleteChildRelation(@PathVariable("id") Integer id, @PathVariable("childId") Integer childId){
    service.deleteChildRelation(id, childId);
}

我们可以获得父母,删除孩子并保存

或使用查询注释并执行类似

的操作
@Query("update Child c set c.parent=null where c.id=:id ")
void deleteChildRelation(@Param("id") Long id);

1 个答案:

答案 0 :(得分:1)

第一种方法是JPA的方法。它速度较慢,但​​保持一致的会话采用乐观锁定,它还会更新JPA二级缓存。如果这对你有用,你应该使用它。

如果你只是希望关系消失,第二种方法更快更简单,因为它只进行一次数据库。