Hibernate - 在 postgres 中带有触发器的 saveAndFlush

Posted

技术标签:

【中文标题】Hibernate - 在 postgres 中带有触发器的 saveAndFlush【英文标题】:Hibernate - saveAndFlush with trigger in postgres 【发布时间】:2021-05-29 11:56:36 【问题描述】:

我正在使用 SpringBoot、Hibernate 和 Postgres 在 Postgres DB 中,我在 INSERT 触发器之前有,它根据此表中的其他条目向某些列插入一些值。

我想在保存此实体后在我的应用中获取这些值,修改它们并使用修改后的值更新此实体

我能够在 saveAndFlush 方法结果中获取它们,但是在修改并再次保存它们之后,它们不会存储在 DB 中(好像我没有进行任何修改一样)。下面是代码

ExampleEntity initiallySavedEntity = entityRepository.saveAndFlush(exampleEntity);
initiallySavedEntity.setPropertyPopulatedByTrigger("blablabla");
entityRepository.save(initiallySavedEntity);

【问题讨论】:

【参考方案1】:

@Generated 注释是您在这种情况下要查找的:https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#mapping-generated-Generated

【讨论】:

以上是关于Hibernate - 在 postgres 中带有触发器的 saveAndFlush的主要内容,如果未能解决你的问题,请参考以下文章

列名中带有大写字母的 Postgres 查询

Hibernate中带有命名查询的可选参数?

grails 2.4.0 中带有 hibernate:3.6.10.15 插件的错误

无法使用 Hibernate 访问 Postgres 数据库

如何在 postgres 中设置锁定超时 - Hibernate

Spring Boot + Hibernate + Postgres - 不创建表