Hibernate Id Sequence结果为null

时间:2016-09-07 14:05:08

标签: java postgresql hibernate jpa

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

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

  4. 返回对象时,
  5. orderId导致null,但它在我的表中。

  6. 我已经检查了pojo和列映射,一切都很好,但我没有得到它出错的地方。

  7. 另一个id序列返回时没有任何问题,但在转到orderId时,结果始终为null。

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

1 个答案:

答案 0 :(得分:0)

除非还提供@Id列,否则我认为@GeneratedValue无效。

您可以尝试以下方法:

@Generated(GenerationTime.INSERT)
private Integer orderId;

,然后确保将Postgres列定义为SERIAL类型,这将自动创建一个名为tablename_order_id_seq的序列以供使用。