0

我的数据库中已经导入了 3 行(通过类路径中的 import.sql),主键为 id=1、id=2、id=3。当我尝试插入新数据(通过 javax.faces)时,我连续 3 次收到 ConstraintViolationException,然后在第 4 次尝试时,插入新行,自动生成的 id=4。是否有可能避免这 3 个错误并在第一次尝试时插入数据,其中 id 从表中的最后一个 id 开始?

这是我的实体声明:

@Entity
@Table(name = "book")
public class Book {

   @Id
   @GeneratedValue
   @Column(name = "id")
   private long id;
}

先感谢您。

4

1 回答 1

0

谢谢你,克罗科迪尔科。通过添加策略解决它:

@GeneratedValue(strategy=GenerationType.SEQUENCE)

并在 import.sql 脚本中的每个表插入后添加此行:

SELECT setval([sequencename], max(id)) FROM [tablename];
于 2019-01-05T17:48:40.317 回答