我正在尝试在“ SQL Server 2012”中的表中插入一行。以下是我的域类:
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator ="Contact_Sequence")
@SequenceGenerator(name = "Contact_Sequence")
private Long id;
我遇到以下错误:
原因:com.microsoft.sqlserver.jdbc.SQLServerException:当IDENTITY_INSERT设置为OFF时,无法为表CONTACTS中的标识列插入显式值。
在com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:258) 在com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1535)
如果我将其更改为@GeneratedValue(strategy = GenerationType.IDENTITY)
,那么它将正常工作。
如何使用GenerationType.SEQUENCE?
答案 0 :(得分:0)
问题是您没有为@SequenceGenerator提供sequenceName属性。
尝试将@GeneratedValue和@SequenceGenerator注释更改为:
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "Contact_Generator")
@SequenceGenerator(name="Contact_Generator", sequenceName = "Contact_Sequence")