在实体中使用枚举时进行查询的问题

新手上路,请多包涵

我在问题实体中有以下内容:

 @NamedQuery(name = "Question.allApproved",
    query = "SELECT q FROM Question q WHERE q.status = 'APPROVED'")

@Enumerated(EnumType.STRING)
private Status status;

// usual accessors

我收到此异常:

异常描述:编译查询 [Question.countApproved: SELECT COUNT(q) FROM Question q WHERE q.status = 'APPROVED' ] 时出错,第 1 行,第 47 列:无效的枚举相等表达式,无法将 [myCompnay.application.Status] 类型的枚举值与非枚举值进行比较类型 [java.lang.String] 。在 org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:501)

我该如何解决?

原文由 LuckyLuke 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 594
1 个回答

我认为你应该使用你的(完全合格的) Status 枚举而不是文字值,所以像这样:(假设你的 Status 枚举在 com.myexample package)

 @NamedQuery(name = "Question.allApproved",
            query = "SELECT q
                     FROM Question q
                     WHERE q.status = com.myexample.Status.APPROVED").

原文由 Piotr Nowicki 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题