【问题标题】:PostgreSQL DAO.java method to get single int valuePostgreSQL DAO.java 获取单个 int 值的方法
【发布时间】:2015-12-23 08:35:10
【问题描述】:

这是我正在使用的方法:

  public int getId(String proyectName)
    {

      int idproyect=0;



        try
        {
            Session session= hibernateUtil.getSessionFactory().openSession();  
            String hql = "Select idproyect from proyect where name= :proyectName";
             Query query = session
                        .createQuery(hql);
             query.setParameter("proyectName", proyectName);
             idproyect= (Integer)query.uniqueResult();
        }
        catch(Exception e)
        {


        }
        return idproyect;
    }

无论变量是否被注入到方法中,我得到的结果都是 0,它与 idproyect 默认值匹配。 我检查了我的日志并且正在执行选择,但无论如何结果仍然是 0。 我认为这与查询转换为整数唯一值有关。 这个问题困扰了我大约 2 天,但直到今天我都忽略了,因为我需要解决它才能继续我的项目。

我认为它不相关,但我使用 Hibernate 来持久化类。

祝福每一个人,圣诞快乐。

【问题讨论】:

  • 为什么你的异常处理程序是空的?在此处添加 e.printStackTrace() 并将结果添加到您的问题中。
  • 事实如此,但我仍然没有收到任何错误。

标签: java hibernate select dao


【解决方案1】:

你试试这个以获得单个 int 值

  String hql = "Select idproyect from proyect where name= :proyectName";
  Query query2 = entitymanager.createNativeQuery(hql).setParameter("proyectName", proyectName);
    BigInteger obj = (BigInteger) query2.getSingleResult();
    System.out.println("%%%%%%%" + obj);
    System.out.println(obj);
    long id = Long.valueOf(obj.toString()));
    System.out.println(id);

【讨论】:

  • 我检查了日志并得到了这个:java.lang.IllegalStateException: No data type for node: org.hibernate.hql.internal.ast.tree.IdentNode
猜你喜欢
  • 2015-03-11
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
  • 2010-10-31
  • 2010-11-21
  • 2018-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多