【问题标题】:Is it safe to check JDO queries with isEmpty()? Whats the "right" way?使用 isEmpty() 检查 JDO 查询是否安全?什么是“正确”的方式?
【发布时间】:2012-02-23 00:37:29
【问题描述】:

根据文档here(在“唯一结果”下)和here,JDO“默认”查询结果将返回一个列表,如果它们为空,则“唯一”指定查询返回 null。

那么我可以安全地使用.isEmpty() 来检查我是否获得了正常查询的行吗?同样,对于那些标记为“唯一”的查询,我应该只使用== null吗?

我测试过,一个空的结果确实返回了一个带有.size()0 的列表。因此,似乎 NullPointerException 的唯一危险在于“唯一”查询。

我还应该采取哪些其他预防措施(如果有)?我只用这两种支票就可以接受我的基础吗?几乎在寻找一些最佳实践建议,以及任何潜在的陷阱。我对 Java 和 JDO/ORM 持久性都非常陌生。

谢谢

【问题讨论】:

    标签: java nullpointerexception jdo datanucleus


    【解决方案1】:

    对吗? List 是一个 List 并且具有 Java 契约 (API)。 JDO 不会改变这一点。 JDO 规范(和 DN 文档)还定义了查询的结果形式 http://www.datanucleus.org/products/accessplatform_3_0/jdo/jdoql_result.html

    【讨论】:

    • 是的,我意识到文档中概述了返回类型,我在我的问题中引用了它。如果我不清楚,我深表歉意:我相信你本质上是在说,“是的,这涵盖了你的基础。”所以谢谢你的澄清。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 2014-06-23
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    相关资源
    最近更新 更多