【发布时间】:2018-05-21 11:55:01
【问题描述】:
为什么我总是得到一个实体 ID 的负值?是否与increment 金额值有关?例如,当我使用时
create sequence message_sequence start 1 increment 1;
我总是得到负值(-38、-44、-45)。但万一我放了
create sequence message_sequence start 1 increment 50;
一切都很好 (52, 102)。为什么会有这么奇怪的行为? 这是一个实体:
@Entity
@Table(name = "messages")
public class Message {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "message_sequence")
@SequenceGenerator(name = "message_sequence", sequenceName = "message_sequence")
private long id;
private String text;
public void setText(String text) {
this.text = text;
}
public String getText() {
return text;
}
}
节目入口点:
EntityManagerFactory emf = JPAUtility.getEntityManagerFactory();
EntityManager entityManager = emf.createEntityManager();
entityManager.getTransaction().begin();
Message m = new Message();
m.setText("Hello World");
etityManager.persist(m);
entityManager.getTransaction().commit();
entityManager.close();
【问题讨论】:
-
select nextval('message_sequence');产生阳性结果。请详细说明 - 我相信没有人能够像上面那样复制它 -
我已经更新了我的问题
-
我也有同样的问题。 ...
标签: java postgresql jpa entity sequences