Hibernate 简单JPQL查询在OpenJPA中不起作用

Hibernate 简单JPQL查询在OpenJPA中不起作用,hibernate,jpa,openjpa,Hibernate,Jpa,Openjpa,当我使用hibernate作为JPA提供程序时,下面的查询工作得非常好,但它不适用于OpenJPA: entityManager.createQuery( "select ord from Order ord " + "where symbol = :symbol") .setParameter("symbol", symbol) .getResultList(); 返回的错误是 java.lang.IllegalArgumentExceptio

当我使用hibernate作为JPA提供程序时,下面的查询工作得非常好,但它不适用于OpenJPA:

entityManager.createQuery(
        "select ord from Order ord " +
        "where symbol = :symbol")
    .setParameter("symbol", symbol)
    .getResultList();
返回的错误是

java.lang.IllegalArgumentException: Invalid unbound variable "symbol" in query

我在查询中是否犯了OpenJPA不喜欢的错误?

我相信您希望将“where symbol=:symbol”更改为:

或者,使用位置参数:

"where ord.symbol = ?1"

  .setParameter(1, symbol)
希望有帮助

"where ord.symbol = ?1"

  .setParameter(1, symbol)