[英]I have a problem in getting exact value from database by Hibernate Search
I want to search by Hibernate search and get fields of the table which fields equals to value of search parameter not like how it does search我想通过 Hibernate 搜索来搜索并获取表的字段,哪些字段等于搜索参数的值,而不是它的搜索方式
I have a field which I search我有一个要搜索的字段
@Field(name = "field", analyzer = @Analyzer(definition = "whitespaceAnalyzer"))
private String field;
and I search it by creating this query我通过创建这个查询来搜索它
queryBuilder.keyword().onField("field").matching("value").createQuery()
But it searches by like operator not equal I know that if I write但它通过like operator not equal搜索我知道如果我写
@Field(name = "field", analyzer = Analyze.NO)
It will work but I want to let @Field
annotation in this way and search field by equal operator How can I do it in my case.它会起作用,但我想以这种方式让
@Field
注释并通过相等运算符搜索字段在我的情况下我该怎么做。
You can make use of你可以利用
javax.persistence.criteria.CriteriaBuilder
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();
Please note replace Field_className
with your className请注意将
Field_className
替换为您的类名
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.