【问题标题】:Creating DB triggers through JPA / Hibernate in Spring Boot在 Spring Boot 中通过 JPA/Hibernate 创建 DB 触发器
【发布时间】:2020-02-29 14:11:08
【问题描述】:

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

一开始我想在服务层这样处理。

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

但是这种方法会创建两个不同的数据库会话,我希望将会话/调用的数量保持在最低限度。还想避免使用原生 SQL 或直接调整数据库。

【问题讨论】:

  • 如果此代码与@Transactional 在单个服务方法中,则它是单个会话。如果您想要默认值,请在 JPA 中进行适当的映射并在您的 java 代码中填写默认值。
  • 哇。这对我来说是一个很大的启示。

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


【解决方案1】:

当您在表之间建立关系时,您可以在一个保存操作中保存数据。 另见JPA Persist parent and child with one to many relationship

【讨论】:

  • 有趣。在我的情况下,映射/关系归孩子所有。我试图避免级联,但我会重新考虑。这个 + 使用 @Transactional 可能会解决我的问题。
猜你喜欢
  • 2017-08-11
  • 2019-06-12
  • 1970-01-01
  • 2021-09-15
  • 1970-01-01
  • 2014-08-14
  • 2015-08-07
  • 2017-02-15
相关资源
最近更新 更多