gpt4 book ai didi

java - JPQL createQuery 与实体对象循环

转载 作者:行者123 更新时间:2023-12-02 06:19:19 25 4
gpt4 key购买 nike

我正在处理一些继承的代码,但我不习惯 Entity Framework 工作。我试图弄清楚为什么以前的程序员会按照他们的方式编码,有时会混合和匹配不同的数据查询方式。

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

我明白这两段代码的作用,并且我明白,给定一个大数据集,第二种方法更有效。但是,如果只有几条记录,是否有任何理由不执行查询而不是让实体对记录集进行联接和循环?

最佳答案

无论记录数量有多少,都不使用第一种方法的一些原因:

  • 更详细

  • 意图不太明确,因为更加困惑

  • 性能更差,可能从第一个实体开始就开始下降

  • 每添加一个实体,第一种方法的性能就会比第二种方法降低更多

  • 这是出乎意料的 - 大多数有经验的开发人员都不会这样做 - 因此其他开发人员需要更多的认知努力才能理解。他们会假设您这样做是出于令人信服的原因,并且会寻找该原因但找不到原因。

关于java - JPQL createQuery 与实体对象循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21151755/

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