Hibernate Id序列在具有两列序列的实体中导致null


  1. 我在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;
  1. 这是我的pojo。

  2. 我的orderId问题,如果我调用我的CRUD存储库保存,它将创建具有这些序列起始值的新记录,

  3. 而返回对象orderId的结果为null,但它在我的表中。

  4. 我已经检查了pojo和列映射,一切都很好,但我不知道哪里出了问题。

  5. 另一个id序列正在返回,没有任何问题,但当到达orderId时,结果总是为null。

  6. 请帮我解决这个问题,感谢他们。

我认为@GeneratedValue不起作用,除非@Id列也存在。

你可以试试这个:

@Generated(GenerationTime.INSERT)
private Integer orderId;

然后确保您的Postgres列被定义为SERIAL类型,这将自动创建一个名为tablename_order_id_seq的序列来用于它。

最新更新