java - Hibernate,使用createNativeQuery方法时出现错误

标签 java sql hibernate

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

The method createNativeQuery(String, Class) in the type EntityManager is not applicable for the arguments (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 创建。

假设 queryByCos2AllocationStringBuffer,请更改此:

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

对此:

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

关于java - Hibernate,使用createNativeQuery方法时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32281065/

相关文章:

java - 将 .HBM 模型转换为带注释的 pojo

java - 如何获取从客户端位置到服务器的正确时间

java - gradle 构建期间 Aviary-SDK 错误 (Android)

java - 在java webapp中使用现有的sqlite数据库

sql - Crystal Reports 中 WHERE 子句的等效项

java - Hibernate 中的 c3p0 死锁

java - 在 readline() 调用之后,Java 的 BufferedReader 是否在其内部缓冲区中留下字节?

mysql - 在其间添加具有默认值的行

sql - 如何根据 SQL Server 2008 中的特定参数返回所需的手动值

java - 如何安全地强制提交 Spring - hibernate 事务