当前位置:  开发笔记 > 编程语言 > 正文

Java Hibernate和SQL Server中UUID的不同表示

如何解决《JavaHibernate和SQLServer中UUID的不同表示》经验,为你挑选了1个好方法。

我正在尝试UUID使用Hibernate将POJO中的列映射到SQL Server表列.

注释应用如下:

@Id
@GeneratedValue
@Column(name = "Id", columnDefinition = "uniqueidentifier") 
public UUID getId(){ ... }

但是,似乎Java Hibernate映射和SQL服务器之间存在一些字节序问题.

例如,在我的Java应用程序中,我将id表示为:

4375CF8E-DEF5-43F6-92F3-074D34A4CE35
ADE3DAF8-A62B-4CE2-9D8C-B4E4A54E3DA1

而在SQL Server中,这些表示为:

8ECF7543-F5DE-F643-92F3-074D34A4CE35
F8DAE3AD-2BA6-E24C-9D8C-B4E4A54E3DA1

有没有办法在双方都有相同的代表?

请注意,uniqueidentifier它仅用于uniqueidentifier在SQL Server中具有类型ID而不是类型binary; 当存在同样的问题uniqueidentifier,从注释移除(可观察到该问题通过转换binaryuniqueidentifier).



1> Markus Ratze..:

您需要指定@Type(type = "uuid-char"),另请参阅JPA/hibernate中映射UUID的问题.

或者,您可以String在Java中使用id作为id 的字段,并保留uniqueidentifier在SQL Server中.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有