【发布时间】:2016-03-13 10:19:58
【问题描述】:
我在 SPring MVC + JPA + SQL Server 上构建了一个小型应用程序。由于某些原因,我不得不在我的应用程序中进行一些实体更改,并且我不得不手动将一些数据从旧数据库迁移到新数据库(具有不同的架构)。在我迁移所有数据后,我遇到了这样的错误:
13:47:26.191 [http-nio-8080-exec-1] 错误 o.h.e.jdbc.spi.SqlExceptionHelper - 违反主键约束“PK__GLJourna__3213E83F741BD595”。无法在对象“dbo.GLEntry”中插入重复键。重复键值为 (34903)。
这是我的实体:
@Entity
public class GLJournalEntry {
@Id @GeneratedValue
private Long id;
private BigDecimal amount;
private Date creationDate;
@OneToOne
@JoinColumn(name = "glAccount_id", nullable = false)
private GLAccount glAccount;
private String notes;
@Enumerated(EnumType.STRING)
private ProductType productTyep;
private Date entryDate;
@Column(nullable = false)
private long transactionID;
@Enumerated(EnumType.STRING)
private EntryType type;
}
我的猜测是我收到此错误消息是因为默认 ID 注释 @Id @GeneratedValue。
我该如何解决?如何以自动从数据库获取最新 ID 的方式生成 ID?
【问题讨论】: