gpt4 book ai didi

java - 为什么 NetBeans Java 调试器永远无法到达此代码?

转载 作者:行者123 更新时间:2023-12-01 15:35:33 26 4
gpt4 key购买 nike

我正在尝试使用 NetBeans 调试 Java 中的方法。

该方法是:

    public Integer getNumberOfClamps(Locations paLocation) {
Integer ret = -1;
List list = new ArrayList();

String removeme = "ABC";

if (paLocation == null) {
return ret;
}

try {
IO io = new IO(this.getSchemaName());
Session session = io.getSession();

String sql = "select count(*) from assets a join assettypes at on (at.id = a.assettype_id) ";
sql += "where a.currentlocation_id = " + paLocation.getId() + " and at.clamp = 1 and at.active = 1;";
list = session.createQuery(sql).list();

// for some reason, list is empty yet MySQL reports 40 records
// and the following two lines are never reached!
ret = list.size();
removeme = "WHAT???";

} catch (Exception ex) {
ret = -1; // explicitly set return
} finally {
return ret;
}
}

在方法的中间,您将看到 list = session.createQuery(sql).list();

由于某种原因,即使手动运行 SQL 时,我也得到 40 个结果,这会返回一个空列表。

但奇怪的是,一旦调用 .list() ,它就会跳转到 finally block ,而永远不会到达其余部分!因此,对于测试来说,“removeme”应该等于 WHAT???,但调试器将其报告为仍然 ABC

什么给出了?

最佳答案

您使用了错误的方法。 “createQuery”需要 HQL 语法。将方法更改为“createSQLQuery”

关于java - 为什么 NetBeans Java 调试器永远无法到达此代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8917515/

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