我在postgresql数据库中有一个表有两个id序列。
@JsonProperty(" ID&#34) @Column(name =" id",nullable = false,unique = true) @ID @GeneratedValue(strategy = GenerationType.IDENTITY,generator =" order_seq_gen") @SequenceGenerator(name =" order_seq_gen&#34 ;, sequenceName =" order_id_seq")
private Integer id;
@JsonProperty("state")
private String state;
@JsonProperty("order_id")
@Column(name="order_id", nullable=false, unique=true, insertable = false, updatable = true,
columnDefinition = "BIGINT DEFAULT nextval('order_idgen_seq')"
)
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "order_seq_gen")
@SequenceGenerator(name = "order_seq_gen", sequenceName ="order_idgen_seq")
private Integer orderId;
这是我的pojo。
我对orderId的问题,如果我调用我的CRUD存储库保存它是用这些序列起始值创建新记录,
orderId导致null,但它在我的表中。
我已经检查了pojo和列映射,一切都很好,但我没有得到它出错的地方。
另一个id序列返回时没有任何问题,但在转到orderId时,结果始终为null。
请帮我解决这个问题,感谢他们。
答案 0 :(得分:0)
除非还提供@Id列,否则我认为@GeneratedValue无效。
您可以尝试以下方法:
@Generated(GenerationTime.INSERT)
private Integer orderId;
,然后确保将Postgres列定义为SERIAL类型,这将自动创建一个名为tablename_order_id_seq的序列以供使用。