我想通过 Hibernate 搜索进行搜索并获取表中的字段,这些字段等于搜索参数的值,这与它的搜索方式不同
我有一个要搜索的字段
@Field(name = "field", analyzer = @Analyzer(definition = "whitespaceAnalyzer"))
private String field;
我通过创建此查询来搜索它
queryBuilder.keyword().onField("field").matching("value").createQuery()
但它通过类似运算符搜索不等于 我知道如果我写
@Field(name = "field", analyzer = Analyze.NO)
它会起作用,但我想让 @Field
注释以这种方式并通过等于运算符搜索字段,在我的情况下我该怎么做。
最佳答案
您可以使用
javax.persistence.criteria.CriteriaBuilder
CriteriaBuilder criteriaBuilder = entityDAO.getCriteriaBuilder();
CriteriaQuery<?> criteriaQuery = criteriaBuilder.createQuery(Field_className.class);
Root<Field_className> entity = criteriaQuery.from(Field_className.class);
criteriaQuery.where(criteriaBuilder.equal(entity.get("field"),identifier));
Field_className = (Field_className)entityDAO.createQuery(criteriaQuery).getSingleResult();
请注意将 Field_className
替换为您的类名
关于java - 我在通过 Hibernate Search 从数据库获取准确值时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58297850/