gpt4 book ai didi

java - 创建新的 NamedQuery 或构建新的 List 以返回字段值?

转载 作者:行者123 更新时间:2023-11-30 11:52:42 25 4
gpt4 key购买 nike

一般来说,编写一个选择字段的新 NamedQuery 是否更好,

@NamedQuery(name="getEntityField",
query="select e.field from Entity e where <condition>")

还是应该从 Entity...中选择 e 然后构建一个新列表?

List<Entity> entities = query.getResultList();
List<Object> fields = new ArrayList<Object>();
for (Entity e : entities) {
fields.add( e.getField() );
}

如果其中一种模式更好,为什么?

最佳答案

当您使用 NamedQuery 执行此操作时,数据库只需将包含该字段内容的列表发送回应用程序,而不是完整的实体(表的所有列)。

另一方面,如果实体已经在您的 ORM 框架的缓存中,那么要获取实体,它甚至根本不需要访问数据库。

也可能是您的 ORM 框架足够智能,可以理解查询,因此它可以从缓存中执行查询,而不是转到数据库。

什么最有效取决于您的应用程序的情况和您使用的 ORM 框架。尝试这两种方法,让您的 ORM 框架记录它所做的事情,并查看日志以了解它所做的事情并确定哪种方法更适合您的特定应用程序。

关于java - 创建新的 NamedQuery 或构建新的 List 以返回字段值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6705215/

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