是否存在 Jpa/Hibernate 注释来将字段标记为数据库默认生成的?

问题描述 投票:0回答:1

假设我们有一个在数据库中默认生成的值

uuid UUID    DEFAULT     uuid_generate_v4()

如何标记用于检索值的后续选择的字段?

我想避免明确调用

entityManager.refresh()
, 我用 Hibernate 注释标记了该列
@Generated(event = { INSERT, UPDATE })
但这使得该字段不可写。在这种情况下可能没问题,但可能有些字段我想在插入时生成为默认值,然后能够更新它们,这个注释似乎限制了这一点。

还有其他我不知道的注释吗?或者使用带有默认字段的 JPA/Hibernate 的常用方法是什么? 另外,JPA注释会更好。

在我看来这是一个常见的场景,但我找不到太多相关信息。

我尝试了不同的组合,但它们并不像我想象的那么灵活。我还以与

@Generated
相同的方式实现了自己的注释,但我不想使用自定义注释,因为我可能不知道副作用

java hibernate jpa
1个回答
0
投票

我看到两种可能性:

  • 您知道某些属性是数据库生成的,因此您在插入操作后将它们标记为“脏”,希望持久层在返回真实对象之前执行读取操作。

  • 另一种可能性是在插入后立即执行读取,让您为接下来可能发生的任何属性检索做好准备。

© www.soinside.com 2019 - 2024. All rights reserved.