带有存储库保存方法更新ID的Spring-DATA-JDBC更新



呼叫 crudrepository save((对于不是新事物的实体sql:更新卡设置id =?,customer_id =?... id =?

这会提出异常无法更新身份列'ID'

ID由数据库生成

使用的版本:1.0.6.Release&1.0.9.Release

db:mssql

为什么更新语句试图更新ID列,因为它是主要键?

实体:

import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;
@Table("card")
public class Card {
    @Id
    private Long id;
    @Column("customer_id")
    private String customerId;
...

存储库:

public interface CardRepository extends CrudRepository<Card, String> {
}

这听起来像https://jira.spring.io/browse/browse/datajdbc-262,该版本是1.1.M1,该版本的当前版本是1.1.RC1

切换到该版本应该解决问题。

注意:我已经看到您仅使用尚未完全支持的MS-SQLServer提及的例外。

似乎您没有为ID设置ID生成策略。添加此并尝试是否有效。

@GeneratedValue(strategy = GenerationType.AUTO) 

最新更新