实体在保存JPA for postgres时不使用指定的序列

时间:2017-11-07 05:56:46

标签: java postgresql hibernate jpa

我希望在postgres-9.5中保存我的实体而不是默认值(orderId_seq)时使用自定义序列(hibernate_sequence)。

我的实体是:

 @Entity
@Table(name="orders")
public class Order {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "orderId_generator")
    @SequenceGenerator(name="orderId_generator", sequenceName = "orderId_seq")
    @Column(updatable = false, nullable = false)
    private Long orderId;

    @Column(columnDefinition = "uuid",nullable = false)
    @Type(type="pg-uuid")
    private UUID userId;

    private String comments;

    private String assignedTo;

    @Enumerated(EnumType.STRING)
    @Column(nullable = false)
    private OrderStatus status;

    @Column(nullable = false, updatable = false, insertable = false, 
     columnDefinition = "TIMESTAMP with time zone DEFAULT CURRENT_TIMESTAMP")
    private Timestamp orderedDate;

  //getters and setters

当我将此实体保存到数据库时。它会为orderId生成一些随机数,而不是使用orderId_seq

当我在保存之前在调试模式下检查订单实体时,它是null但是在保存后它创建了一些随机数,甚至没有使用hibernate_sequence

当我在hibernate中使用show_sql=true选项时,它甚至在控制台中显示以下语句:

Hibernate: 
    select
        nextval ('orderId_seq')

如何解决此问题?

0 个答案:

没有答案