Java JPA不返回UUID“;“文本”;二进制字段的值

Java JPA不返回UUID“;“文本”;二进制字段的值,java,mysql,hibernate,jpa,uuid,Java,Mysql,Hibernate,Jpa,Uuid,我在MySQL中有一个字段,名为varbinary(36),它存储UUID。然后点击MySQL workbench中的字段,可以看到字段的文本值为“4479633f-a7e5-4ea9-945c-589263022634”。我在代码中使用JPA,当我在JPA中从用户选择U时,它将值转换为“666535653765302D663832312D31313165332D6133632D303303230306339613636”,这是该值的十六进制等效值。我应该怎么做才能让JPA返回字段的文本值 以下

我在MySQL中有一个字段,名为varbinary(36),它存储UUID。然后点击MySQL workbench中的字段,可以看到字段的文本值为“4479633f-a7e5-4ea9-945c-589263022634”。我在代码中使用JPA,当我在JPA中从用户选择U时,它将值转换为“666535653765302D663832312D31313165332D6133632D303303230306339613636”,这是该值的十六进制等效值。我应该怎么做才能让JPA返回字段的文本值

以下是我在代码中对文件的定义:

@Id
@Column(name = "COUNTRY_ID")
private String countryId; 
A,并且根据您的需要,您可以使用二进制或字符表示

@Column(columnDefinition = "BINARY(16)")
private UUID uuid;
对于字符串表示,您需要一个CHAR(32)列


我正在使用@Column(columnDefinition=“CHAR(32)”和@Column(columnDefinition=“CHAR(64)”,但不起作用。我仍然得到了该值的十六进制等价值。您必须在MySQL中设置CHAR(32)列定义。此注释适用于hbmddl,如果不使用Hibernate生成模式,则必须手动更改数据库。在数据库中设置它,它应该可以工作。@列是由JPA定义的,不是hibernate专有的。对,但我的回答并不意味着相反。Hibernate类型是在场景后面进行实际映射的类型,我可以使用@Column(columnDefinition=“VARCHAR(200)”)私有UUID UUID;在mysql中将UUID存储为字符串而不是二进制?
@Column(columnDefinition = "CHAR(32)")
private String uuidHex;