我的JPA实体有一个UUID属性,它在mysql中存储为char(36)。当我查询数据时,我收到的是66323735-3039-6262-2d31-3764392d3466
而不是f27509bb-17d9-4f37-b336-8603f2d34394
。当我启用Hibernate日志时,我可以看到
org.hibernate.type.descriptor.sql.BasicExtractor - extracted value ([col_1_0_] : [BINARY]) - [66323735-3039-6262-2d31-3764392d3466]
提取的值是[BINARY]
,而不是像其他属性一样的[VARCHAR]
。
有什么线索能解释为什么会这样吗?
还有,
1.我试过在mysql上运行hib生成的查询,结果是正确的。
1.其他列值(包括UUID)将正确返回。
1.我使用基于实体投影的接口来检索有限的数据,而不是整个实体。
编辑:我刚刚添加了trim(colName)
,现在它返回了正确的UUID值。但仍然不确定手头的问题。
1条答案
按热度按时间k2arahey1#
对hib6执行此操作。它将生成字符类型(对于mysql char(36))。