我在 WLS 10.3.5 上运行 EclipseLink。
我正在尝试使用 @NamedNativeQuery 注释,但我尝试的所有 SQL 都会导致“内部异常:java.sql.SQLException:SQL 字符串不是查询
”异常。
即使是一个简单的 SELECT * FROM TABLE
也会导致该错误,其中 TABLE 是包含实体映射到的表。
注释是:
@NamedNativeQuery(name = AnnouncementDeliveryLog.FIND_NORMALIZED_RECIPIENTS_FOR_ANNOUNCEMENT, query = "SELECT * FROM ANNOUNCEMENT_DELIVERY_LOG", resultClass = AnnouncementDeliveryLog.class)
正在执行查询:
em.createNativeQuery(AnnouncementDeliveryLog.FIND_NORMALIZED_RECIPIENTS_FOR_ANNOUNCEMENT).getResultList();
我找不到从系统获取更多有用信息的好方法,因此我们将不胜感激。
最佳答案
使用了错误的方法。方法createNativeQuery将 native SQL 字符串作为参数。在给定的代码中,参数似乎是 native 查询的名称。方法createNamedQuery应该使用,它以 native 查询的名称作为参数。
关于jpa - EclipseLink "SQL string is not Query",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15027975/