【问题标题】:Null pointer in hibernate result unable to get long value休眠结果中的空指针无法获得长值
【发布时间】:2016-03-20 18:32:11
【问题描述】:

在 Hibernate 结果查询中检索实体的主键或 Id 时出现空指针异常。主键值只是一个长值。我的实体类:

@Entity
@Table(name="sample")
public class ccy{

@Id
@column(name = "S_ID")
private long id;

2nd varibale and so on

当我编写休眠查询来检索它导致空指针异常时,我的选择查询是:

 long ID = 0;
 String HQL = "select c.id from ccy c where c.name='sowndhar' ";
 Query query = session.createQuery(HQL);
 ID = (Long)query.uniqueResult(); //getting NullPointerException in this    line
 return ID;

请问有什么建议吗?任何帮助将不胜感激

【问题讨论】:

  • 堆栈跟踪是什么?
  • 显然查询必须为空。所以你可能想检查你的会话是否有问题。或者(因为我不知道休眠):可能是你首先必须执行你的查询吗?您创建查询似乎有点可疑;然后立即尝试访问其结果。此外: ccy 对于一个班级来说是一个非常糟糕的名字。应该以大写开头;和:不要缩写。存在可供阅读的代码;而这样的缩写并不能说明太多。
  • 分享您创建会话和开始事务的完整代码。我怀疑你的会话有问题。另一点我注意到您期望从没有 where 子句的查询中获得唯一结果。如果您的代码有效并且有多个记录,那么它会给您 org.hibernate.NonUniqueResultException 错误。同样如前所述,您的命名约定非常混乱。
  • 为什么select id from sample 应该返回一个 Long,我猜它返回一个 Long 列表,或者你的数据库中只有 1 个条目?
  • 我认为在 HQL 中使用“sample”不起作用,因为“sample”是表名,但 HQL 需要实体/类名(在您的情况下为 ccy)

标签: java mysql hibernate nullpointerexception hql


【解决方案1】:

您的代码中有几个不好的 Java 做法。按照惯例,类名以大写字母开头。变量名以小写字母开头。常量使用全部大写。 Follow the naming conventions.

在下面的代码中,我更改了变量的类型,以便它允许 null 作为值。我还添加了一些您在请求唯一结果时肯定需要的错误处理。

顺便问一下,你确定你的session 变量不为空吗?你是怎么得到它的?

    Long id = null; // use the nullable Java type, not the primitive

    String HQL = "select c.id from Ccy c where c.name=:name";

    try {
        // always use parameter tokens in your query ... for security
        Query query = session.createQuery(HQL)
            .setParameter("name", name);

        id = (Long)query.uniqueResult(); 
    } catch (NonUniqueResultException e) {
        // what to do if there are multiple matches
    } catch (NoResultException e) {
        // what if there is no match
    }

    return id;

【讨论】:

  • session 我是从 sessionFactory 获取的
  • 确定不为空?
  • 是的,当我使用弹簧依赖注入注入 sessionFactory 时,它不会为空。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2016-10-24
  • 2011-06-30
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多