Hibernate Return integer value

后端 未结 3 1777
感动是毒
感动是毒 2020-12-19 09:24

I am new to hibernate . I want to pass 2 column values and want hibernate to return primary key of that table.

String queryString = \"select perId from Permi         


        
相关标签:
3条回答
  • 2020-12-19 10:02

    Use the uniqueResult() method in Query. see here for an example or read the api here.

    Here is an example. Replace the place holders as need to use them.

        sessionFactory = getHibernateTemplate().getSessionFactory();
        Session session = sessionFactory.getCurrentSession();
        Query query = session
                .createQuery("select value from table where ...");
        query.setParameters("param1", value1);
        result = (Type) query.uniqueResult();
    
    0 讨论(0)
  • 2020-12-19 10:17

    Here is another way using addScalar:

    Query query = session.createQuery("select value from table where param1 = :param1").addScalar("value", Type);
    query.setParameters("param1", value1);
    result = (Type) query.uniqueResult();
    

    Example of String:

    Query query = session.createQuery("select value from table where param1 = :param1").addScalar("value", StandardBasicTypes.STRING);
    query.setParameters("param1", value1);
    result = (String) query.uniqueResult();
    
    0 讨论(0)
  • 2020-12-19 10:21

    You could do something like:

     String sql = "select count(*) from table where ...";
     BigDecimal count = (BigDecimal) hibernateTemplate.execute(
       new HibernateCallback() { 
        public Object doInHibernate(Session session) throws HibernateException {
         SQLQuery query = session.createSQLQuery(sql);
         return (BigDecimal) query.uniqueResult();
        }});
     return count;
    
    0 讨论(0)
提交回复
热议问题