gpt4 book ai didi

java - 实体列表上的 Hibernate 过滤器,但只检索其中一个属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:18:19 25 4
gpt4 key购买 nike

如果我有一个名为 Foo 的实体,看起来有点像这样:

@Entity
public final class Foo {
private int id;
private String name;
...
}

我想检索 ID 大于 10 的 Foo 对象的名称。如果我已经有了 Foo 对象的集合,我可以这样做:

List<Foo> foos = ...
Query filter = session.createFilter(foos, "where id > :id");
filter.setInteger("id", 10);
List filteredFoos = filter.list();

有没有一种方法可以创建上述过滤器,以便我检索字符串列表(即 Foo 名称)而不是我必须像这样手动过滤掉的 Foos 列表:

for (Foo foo : filteredFoos) {
String name = foo.getName();
...
}

最佳答案

List filteredFoos = session.createFilter(foos, "where id > :id")
.setInteger("id", 10).list();
List filteredFooNames = session.createFilter(filteredFoos, "select name").list();

或者试试这个。我不确定这是否有效,但前者肯定有效。

List filteredFooNames = session.createFilter(foos, "select name where id > :id")
.setInteger("id", 10).list();

关于java - 实体列表上的 Hibernate 过滤器,但只检索其中一个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3983795/

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