Postgresql Spring Data @GeneratedValue不带@Id返回空值 &g



我在春季启动项目工作,我想映射一个属性与序列(使用我的序列)列在我的表,这列不是ID。我找到了这个解决方案:

@Column(name = "DEMANDE_NUMBER", insertable = false, updatable = false, columnDefinition = "serial")
private Integer demandeNumber;

(因为@GeneratedValue保持null并且不使用序列)

此解决方案工作良好,字段在我的DB中持久化,值使用序列,但当我使用存储库保存后获得我的对象时,demandennumber为null

Demande savedDemande= demandeRepository.save(demandeToSave);
//demandeObj .getDemandeNumber() return null

有什么建议可以解决这个问题吗?

谢谢。

根据这个答案如何使用非ID字段的序列生成器?

我在我的属性

上添加了以下注释
@Generated(GenerationTime.INSERT)
@Column(name = "column_name", columnDefinition = "serial", updatable = false)

你应该从hibernate而不是javax.persistence中导入包。

import org.hibernate.annotations.Generated;
import org.hibernate.annotations.GenerationTime;
我希望这可以帮助其他人在未来。注意,此解决方案适用于使用postgresql的spring数据。