我刚刚将我的应用程序从 Spring Boot 1.3.3 迁移到 2.0.0.RELEASE 并做了大部分更改以使我的项目启动并运行。
但是,当我调用任何存储库的 save() 选项时,我遇到了一个问题。相同的结构和 DO 在 1.3.3 中运行良好。
每当我去保存(在任何存储库中)时,我都会收到以下错误:
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute statement
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert explicit value for identity column in table 'POLICY' when IDENTITY_INSERT is set to OFF.
Run Code Online (Sandbox Code Playgroud)
我的 PolicyDO 的 id 设置如下:
private @Id @GeneratedValue(strategy=GenerationType.AUTO,generator="policyId_seq) @SequenceGenerator(name="policyId_seq",sequenceName="POLICYID_SEQ",allocationSize=1) Long id;
Run Code Online (Sandbox Code Playgroud)
这是我的存储库的快照:
public interface PolicyRepository extends CrudRepository<PolicyDO, Long> { PolicyDO findByPolicyNum(String policyNum); PolicyDO findByProposalNum(String proposalNum); }
Run Code Online (Sandbox Code Playgroud)
我一直在谷歌搜索过去 2 个小时,但找不到通过配置或注释设置 IDENTITY_INSERT 的方法。任何人都可以帮助解决这个问题?我什至尝试将所有 …