我有一个关于在hibernate中查询的问题。如果有一种方法可以在没有明确指定原因的情况下进行搜索?
所以我的意思是:假设我有一个包含10列的搜索表单,这些列绑定到我的dto字段。因此,用户可以填充其中一些,并将其余部分留空。现在我想只搜索指定(填充)的字段并将空值留下(它们无关紧要)。
所以查询将是这样的:
select e
from entity e
where e.entity = e.searchedCriteriaEntityGivenInDTO
或者通过jpg的一个更好的例子:我想拥有所有样本实体而不指定“where number,where name,where firstanme”,但是通过“dtoFields”在我的dto之上。如上所述,应该忽略空值。
提前多多感谢。
[编辑]:感谢Dragon我有一个很好的解决方案,但我还有一个问题:我有2行,我可以搜索一下吗?我的查询应该如下:
select e
from example e,
where (e.entity = example) OR (e.entity = example2);
我试着把
session.createCriteria(MyEntity.class).add(Example.create(myEntityExample))
进入OR-Predicate,但它似乎不起作用。
有什么建议吗?