【问题标题】:Jpa Conversion failed string to uniqueidentifierJpa 将字符串转换为唯一标识符失败
【发布时间】:2018-11-24 08:10:01
【问题描述】:

Spring Boot:2.0.2

休眠核心:5.2.17

方言:SQLServer2012方言

尝试将 id 为生成的 GUID 的实体保存到 SQL Server 时 使用 JpaRepository save() 方法操作失败并显示以下消息:

SQL 错误:8169,SQLState:S0002

从字符串转换为转换失败 唯一标识符

HHH000327:执行加载命令时出错: org.hibernate.exception.SQLGrammarException:无法加载实体

com.microsoft.sqlserver.jdbc.SQLServerException:转换失败 从字符串转换为唯一标识符时

@Id
@GenericGenerator(name = "generator", strategy = "guid", parameters = {})
@GeneratedValue(generator = "generator" , strategy = GenerationType.AUTO)
@Column(name = "ActivityID" , columnDefinition="uniqueidentifier")
private String ActivityID;

问题的另一种描述:Conversion failed from a character string to uniqueidentifier

【问题讨论】:

    标签: sql-server hibernate spring-boot jpa


    【解决方案1】:

    好吧,经过一番挖掘,here 为我解决了这个问题:

    基本上把映射改成:

        private UUID id;
    
        @Id
        @GeneratedValue
        @Column( columnDefinition = "uuid", updatable = false )
        public UUID getId() {
            return id;
        }
    

    并且不要忘记向决定使用该 id 类型的 DBA 发送一封(不友好的)电子邮件-.-

    问候

    【讨论】:

      猜你喜欢
      • 2013-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      相关资源
      最近更新 更多