- 我在postgresql数据库中有一个表,有两个id序列
@JsonProperty("id")
@Column(name = "id", nullable = false,unique=true)
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY,generator = "order_seq_gen")
@SequenceGenerator(name = "order_seq_gen", 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。
请帮我解决这个问题,感谢他们。
我认为@GeneratedValue不起作用,除非@Id列也存在。
你可以试试这个:
@Generated(GenerationTime.INSERT)
private Integer orderId;
然后确保您的Postgres列被定义为SERIAL类型,这将自动创建一个名为tablename_order_id_seq的序列来用于它。