Java 忽略使用GenericGenerator的Hibernate GeneratedValue
此字段“auftragsummer”始终保持为空,即使它用@GeneratedValue注释:Java 忽略使用GenericGenerator的Hibernate GeneratedValue,java,hibernate,db2,Java,Hibernate,Db2,此字段“auftragsummer”始终保持为空,即使它用@GeneratedValue注释: @Entity public class Auftrag implements Serializable { @Id @GeneratedValue private int id; @Pattern(regexp = AUFTRAGSNUMMER_REGEXP, message = "{validator.auftragsnummer}") @Length(min =
@Entity
public class Auftrag implements Serializable
{
@Id
@GeneratedValue
private int id;
@Pattern(regexp = AUFTRAGSNUMMER_REGEXP, message = "{validator.auftragsnummer}")
@Length(min = 20, max = 20)
@GenericGenerator(name = "sequence_auftragsnummer", strategy = "de.software.AuftragsnummerGenerator")
@GeneratedValue(generator = "sequence_auftragsnummer")
@Column(unique = true, nullable = false)
private String auftragsnummer;
}
我使用getHibernateTemplate().persist(t)
存储它。引用的生成器类实现了org.hibernate.id.IdentifierGenerator
。
我不知道为什么它被忽视了
环境:
- Hibernate 5.0.1
- 春季4.2.1
- 爪哇7
- DB210
@Id
字段上的@GeneratedValue
如果您的订单号不依赖于实体的主键,那么最简单的解决方案是使用@PrePersist
,例如
@PrePersist
public void onCreate() {
auftragsnummer = ...;
}
谢谢,我会试试的!它可以工作,但由于遗留代码,它还不能切换到它-但我们肯定应该。把你的答案标记为正确。