Hibernate,使用createNativeQuery方法时出错

时间:2015-08-28 23:13:59

标签: java sql hibernate

我正在尝试在hibernate中执行查询我正在使用StringBuffer进行查询。我在createNativeQuery(...)上收到错误。当我将鼠标悬停在方法上时,它会显示

  

EntityManager类型中的createNativeQuery(String,Class)方法不适用于参数(StringBuffer,Class)。

我尝试将方法更改为createNamedQuery(..)createQuery(..),但它不起作用。有什么建议?以下是我的代码

    EntityManager em = getEntityManager();
    logger.info("In getTrafficProfileByCosClass2Allocations className :- " +  cosClassAllocation );
    Query query = em.createNativeQuery(queryByCos2Allocation, TrafficProfile.class);
    query.setParameter(1, direction);
    query.setParameter(2, cosClassAllocation.getCos1());
    query.setParameter(3, cosClassAllocation.getCos2());
    return  (TrafficProfile) query.getResultList();

1 个答案:

答案 0 :(得分:0)

createNativeQuery方法需要String作为第一个参数,可以从StringBuffer轻松创建。

假设queryByCos2AllocationStringBuffer,请更改此项:

Query query = em.createNativeQuery(queryByCos2Allocation, TrafficProfile.class);

对此:

Query query = em.createNativeQuery(queryByCos2Allocation.toString(), TrafficProfile.class);