【发布时间】:2014-02-04 18:25:58
【问题描述】:
我正在处理一些继承的代码,但我不习惯实体框架。我试图弄清楚为什么以前的程序员会按照他们的方式编写代码,有时会混合和匹配不同的数据查询方式。
Deal d = _em.find(Deal.class, dealid);
List<DealOptions> dos = d.getDealOptions();
for(DealOptions o : dos) {
if(o.price == "100") {
//found the 1 item i wanted
}
}
然后有时我会看到:
Query q = _em.createQuery("select count(o.id) from DealOptions o where o.price = 100 and o.deal.dealid = :dealid");
//set parameters, get results then check result and do whatver
我了解这两段代码的作用,并且我了解在给定大型数据集的情况下,第二种方法更有效。但是,鉴于只有几条记录,有什么理由不进行查询而不是让实体进行连接并循环您的记录集?
【问题讨论】: