我希望在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')
如何解决此问题?