我可以在modelpojo类中使用UUID作为id字段的数据类型吗?

问题描述 投票:1回答:1

我正试图在我的项目中使用hibernate搜索来实现搜索功能,这是在spring boot中。

我使用了hibernate搜索注解,如 @Indexed, @Field.

当我使用id字段的数据类型为Long时,就会进行搜索并返回结果列表,但在我的项目中,UUID被用作id字段的数据类型,这也是主键,在UUID的情况下,结果是一个空列表。

@Id
@GeneratedValue
private UUID id; 

我如何使用UUID作为id字段的数据类型来执行搜索操作?

java spring-boot hibernate full-text-search hibernate-search
1个回答
0
投票

请使用以下代码

@Id
@Type(type = "uuid-char") // add column type
@GeneratedValue
@Column(name = "id")

您需要添加 @Type 如果您使用uuid作为数据类型,则ID列的数据类型为

希望对你有帮助 谢谢


0
投票

是的,你可以使用 UUID 作为文档ID,这样就可以正常工作了。

如果你没有得到任何结果。

  • 检查你使用的是Hibernate Search (5.11+) 和Hibernate ORM (5.4+)的最新版本。
  • 检查你在改变ID的类型后是否重新索引了数据。
  • 重新索引时,检查你的日志是否有索引失败,并在这里报告。
  • 用一个非常简单的查询进行测试,例如 qb.all().createQuery(). 如果你用该查询得到结果,问题出在你的初始查询上,而不是你的标识符。

你可以应用 @sridhar-karuppusamy的建议。但只有当你希望数据库类型是 VARCHAR 而不是 VARBINARY. 而这与Hibernate搜索无关。

© www.soinside.com 2019 - 2024. All rights reserved.