【发布时间】:2019-12-05 18:45:25
【问题描述】:
作为我的问题的序言,我正在学校从事一个以前在过去几个学期进行过的项目。所以在设计和开发中做出的选择是我不能 100% 确定的,所以我不能评论为什么事情是这样设置的背后的原因。我还查看了有关 Apache-Cayenne 标签的所有问题,但找不到可以解决此问题的内容。如果我弄错了,请告诉我,我很乐意检查一下。
本质上,我们有一个包含过多列的表,我只希望加载其中的一些列(否则会查询太多不必要的数据,并且加载页面需要更长的时间)。
作为保持其通用性的示例,假设我有一个包含 10 列的对象的表。我只想要 3 列。所以在我的代码中我会有这个:
public List<objectToQuery> getSpecificColumns() {
ObjectContext context = getNewContext();
SQLTemplate select = new SQLTemplate(objectToQuery.class, "select column1, column2, column3 from table");
List<objectToQuery> results = context.performQuery(select);
return results;
}
当我运行它时,它会工作并返回适当数量的行。但是,当我尝试与数据交互和检索数据时,它将在包含所有列的每一行上运行单独的查询。
例如,如果在获得结果的页面上,我会:
object.getColumn1();
它将对所有列的对象运行查询...为什么会发生这种情况,有什么方法可以完成我想要做的事情吗?
非常感谢, -R
【问题讨论】:
标签: apache-cayenne