我试图在休眠状态下执行查询,我在查询中使用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();
最佳答案
createNativeQuery
方法需要一个String
作为第一个参数,可以轻松地从StringBuffer
创建它。
假设queryByCos2Allocation
是StringBuffer
,请更改以下内容:
Query query = em.createNativeQuery(queryByCos2Allocation, TrafficProfile.class);
对此:
Query query = em.createNativeQuery(queryByCos2Allocation.toString(), TrafficProfile.class);