我在MySQL中有一个varbinary(36)字段,用于存储UUID。然后我点击MySQL工作台中的字段,我可以看到字段的文本值为“4479633f-a7e5-4ea9-945c-589263022634”。我在我的代码中使用JPA,当我在JPA中执行SELECT U FROM USER时,它将值变为“66653565373765302D663832312D313165332D613361632D303830303230306339613636”,这是该值的十六进制等效值。如何让JPA返回字段的Text值。
以下是我在代码中对该字段的定义:
@Id
@Column(name = "COUNTRY_ID")
private String countryId;
答案 0 :(得分:2)
UUID type is better stored as BINARY(16),根据Hibernate Types,您可以同时使用二进制或字符表示。
@Column(columnDefinition = "BINARY(16)")
private UUID uuid;
对于String表示,您需要一个CHAR(32)列
@Column(columnDefinition = "CHAR(32)")
private String uuidHex;