gpt4 book ai didi

java - 我可以通过 DTO/Entity 而不是通过单个字段在 hibernate 中查询吗

转载 作者:行者123 更新时间:2023-11-30 07:57:17 24 4
gpt4 key购买 nike

我有一个关于 hibernate 中查询的问题。是否有一种方法可以在不明确指定原因的情况下进行搜索?

所以我的意思是:假设我有一个搜索表单,其中有 10 列绑定(bind)到我的 dto 字段。因此,用户可以填充其中的一些,并将其余的保留为空。现在我只想按指定(填充)的字段进行搜索并留下空值(它们并不重要)。

因此查询将如下所示:

select e 
from entity e
where e.entity = e.searchedCriteriaEntityGivenInDTO
或者通过 jpg 提供一个更好的示例:我希望拥有所有示例实体,而不指定“where number、where name、where firstanme”,而是通过“where dtoFields”在我的 dto 上。如前所述,应忽略空值。

提前非常感谢。

sample

[编辑]:感谢 Dragon,我有一个很好的解决方案,但我还有一个问题:我有 2 行,我可以搜索吗?我的查询应如下所示:

select e 
from example e,
where (e.entity = example) OR (e.entity = example2);

我试图把

session.createCriteria(MyEntity.class).add(Example.create(myEntityExample))

到 OR 谓词中,但似乎不起作用。

有什么建议吗?

最佳答案

不,您不能使用 DTO 来做到这一点,但您可以使用 prototype (example)它的实体实例:

MyEntity myEntityExample = new MyEntity();
myEntityExample.setNumber(12);
myEntityExample.setName("AA");
myEntityExample.setFirstName("BB");
List<MyEntity> results = session.createCriteria(MyEntity.class)
.add(Example.create(myEntityExample))
.list();

关于java - 我可以通过 DTO/Entity 而不是通过单个字段在 hibernate 中查询吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32501358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com