Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
在Spring Boot中通过JPA/Hibernate创建DB触发器_Hibernate_Spring Boot_Jpa_Spring Data Jpa_Spring Data - Fatal编程技术网

在Spring Boot中通过JPA/Hibernate创建DB触发器

在Spring Boot中通过JPA/Hibernate创建DB触发器,hibernate,spring-boot,jpa,spring-data-jpa,spring-data,Hibernate,Spring Boot,Jpa,Spring Data Jpa,Spring Data,正如标题所说,当数据添加到主表中时,我希望创建触发器以在其他表中创建记录。例如,当用户注册时,我希望用户朋友中的记录具有一些默认值 最初,我想在服务层中这样处理 repositoryA.save(entityA); repositoryB.save(entityA); 但是这个方法会创建两个不同的db会话,我希望将会话/调用的数量保持在最小。还希望避免使用本机SQL或直接调整数据库。当表之间存在关系时,可以在一次保存操作中保存数据。 另请参见如果此代码位于带有@Transactional的单一

正如标题所说,当数据添加到主表中时,我希望创建触发器以在其他表中创建记录。例如,当用户注册时,我希望用户朋友中的记录具有一些默认值

最初,我想在服务层中这样处理

repositoryA.save(entityA);
repositoryB.save(entityA);

但是这个方法会创建两个不同的db会话,我希望将会话/调用的数量保持在最小。还希望避免使用本机SQL或直接调整数据库。

当表之间存在关系时,可以在一次保存操作中保存数据。
另请参见

如果此代码位于带有
@Transactional
的单一服务方法中,则它是一个单一会话。如果您想要默认值,那么在JPA中进行适当的映射,并在java code.Wow中填充默认值。这对我来说是一个很大的启示。在我的例子中,映射/关系由孩子拥有。我试图避免瀑布,但我会重新考虑。这+使用@Transactional可能会解决我的问题。