【发布时间】:2011-09-02 20:53:54
【问题描述】:
我有一个实体,它有一个非键列,我已在我的数据库中设置为自动生成。
我不能使用@GeneratedValue,因为据我所知,它仅适用于关键字段。
在这种情况下,如何指示非键列是自动生成的?
【问题讨论】:
标签: java jpa annotations jpa-2.0
我有一个实体,它有一个非键列,我已在我的数据库中设置为自动生成。
我不能使用@GeneratedValue,因为据我所知,它仅适用于关键字段。
在这种情况下,如何指示非键列是自动生成的?
【问题讨论】:
标签: java jpa annotations jpa-2.0
如果您不想让您的 JPA 提供程序在对象创建时为您生成密钥,但只想确保它在数据库创建它时保持更新,并且正在使用 Hibernate:您可以使用 @org.hibernate.annotations.Generated 注释:
The annotated property is generated by the database.
根据this answer to a similar question,似乎没有一种简单的方法可以让您的 JPA 为您生成价值。
【讨论】:
我遇到了完全相同的问题,并使用@PrePersist 注释解决了它。
在您操作字段的方法上使用它。
警告:每次持久化实体时都会调用此函数,因此不要忘记测试该值是否已初始化。
希望对您有所帮助。我对其他方法感兴趣!
【讨论】: