복붙노트

[SPRING] Hibernate 반환 정수 값

SPRING

Hibernate 반환 정수 값

나는 새로운 동면. 2 열 값을 전달하고 최대 절전 모드로 해당 테이블의 기본 키를 반환하려고합니다.

String queryString = "select perId from Permission where document.docId=1 and user.id=2";
return getHibernateTemplate().find(queryString);

그러나이 메서드는 List를 반환합니다. 어떻게 int 값을 반환 할 수 있습니다.

해결법

  1. ==============================

    1.Query에서 uniqueResult () 메소드를 사용하십시오. 예제를 보거나 여기 API를 읽으십시오.

    Query에서 uniqueResult () 메소드를 사용하십시오. 예제를 보거나 여기 API를 읽으십시오.

    다음은 그 예입니다. 필요에 따라 장소 홀더를 사용하여 교체하십시오.

        sessionFactory = getHibernateTemplate().getSessionFactory();
        Session session = sessionFactory.getCurrentSession();
        Query query = session
                .createQuery("select value from table where ...");
        query.setParameters("param1", value1);
        result = (Type) query.uniqueResult();
    
  2. ==============================

    2.당신은 다음과 같이 할 수 있습니다 :

    당신은 다음과 같이 할 수 있습니다 :

     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;
    
  3. ==============================

    3.addScalar를 사용하는 또 다른 방법은 다음과 같습니다.

    addScalar를 사용하는 또 다른 방법은 다음과 같습니다.

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

    문자열의 예 :

    Query query = session.createQuery("select value from table where param1 = :param1").addScalar("value", StandardBasicTypes.STRING);
    query.setParameters("param1", value1);
    result = (String) query.uniqueResult();
    
  4. from https://stackoverflow.com/questions/7858696/hibernate-return-integer-value by cc-by-sa and MIT license