我想通过休眠搜索并获取表中的字段,这些字段等于搜索参数的值,不像它如何进行搜索
我有一个我搜索的字段
@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
替换为您的类名