此字段“auftragsnummer”始终保持为null,即使它使用@GeneratedValue进行注释:
@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
。
我不知道为什么会被忽略。
环境:
答案 0 :(得分:1)
JPA仅在@GeneratedValue
字段上强制要求@Id
。
如果您的订单号不依赖于实体的主键,那么最简单的解决方案就是使用@PrePersist
,例如
@PrePersist
public void onCreate() {
auftragsnummer = ...;
}