我正在尝试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
,从注释移除(可观察到该问题通过转换binary
是uniqueidentifier
).
您需要指定@Type(type = "uuid-char")
,另请参阅JPA/hibernate中映射UUID的问题.
或者,您可以String
在Java中使用id作为id 的字段,并保留uniqueidentifier
在SQL Server中.