【问题标题】:@GeneratedValue annotation@GeneratedValue 注释
【发布时间】:2011-09-02 20:53:54
【问题描述】:

我有一个实体,它有一个非键列,我已在我的数据库中设置为自动生成。

我不能使用@GeneratedValue,因为据我所知,它仅适用于关键字段。

在这种情况下,如何指示非键列是自动生成的?

【问题讨论】:

    标签: java jpa annotations jpa-2.0


    【解决方案1】:

    如果您不想让您的 JPA 提供程序在对象创建时为您生成密钥,但只想确保它在数据库创建它时保持更新,并且正在使用 Hibernate:您可以使用 @org.hibernate.annotations.Generated 注释:

    The annotated property is generated by the database.
    

    根据this answer to a similar question,似乎没有一种简单的方法可以让您的 JPA 为您生成价值。

    【讨论】:

    • 谢谢汤姆。我刚刚实现了它并让它运行了:-)
    【解决方案2】:

    我遇到了完全相同的问题,并使用@PrePersist 注释解决了它。

    在您操作字段的方法上使用它。

    警告:每次持久化实体时都会调用此函数,因此不要忘记测试该值是否已初始化。

    希望对您有所帮助。我对其他方法感兴趣!

    【讨论】:

      猜你喜欢
      • 2016-05-05
      • 2018-04-29
      • 1970-01-01
      • 1970-01-01
      • 2018-03-19
      • 2013-05-17
      • 2016-07-21
      • 1970-01-01
      • 2019-03-08
      相关资源
      最近更新 更多