我在通过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替换为您的类名

最新更新