仅在hibernate中不存在时才保存子节点

时间:2016-11-30 11:58:58

标签: mysql hibernate jpa spring-boot

我有一个父类,比如父母。它的其中一个属性是另一个类,比如Child。我想保存它们

Parent {
   int id;
   Child child;
}

Child {
  int id;
}
  1. 如果DB(mysql)中不存在父级和子级,则应插入它们。
  2. 如果孩子已经存在,那么不应该将其插入到DB中。
  3. 在这两种情况下,父级应该在DB中保存子级ID。

    我想用Spring Boot在hibernate中做这个。我是这个堆栈的新手。

1 个答案:

答案 0 :(得分:0)

您可以使用hibernate查询数据库,其余的需求可以通过编写以下逻辑来实现。

1)您需要在DAO层中创建一个函数,该函数将使用select语句(Hibernate native / HQL)检查DB中是否存在父p1和子c1。
如果它们不存在,那么您可以使用休眠在数据库中插入数据(p1 c1)。

2)在DAO层创建一个函数,检查子记录c1是否已存在。
选择查询可以使用它。如果它不存在则必须插入记录(p1 c1)。