我在Eclipse中编译了我的项目。它是一个带有JPA实体的Java EE项目。
如果@NamedQuery
注释中包含IN
子句,则会发现此错误。
这可能是对Java EE库的错误依赖吗?
答案 0 :(得分:2)
解析器不理解:name
语法。相反,它期望(:name1, :name2, ...)
。
你可以试着忽略这个问题;但我认为当JDBC替换参数时,生成的查询将失败,因为JDBC在替换参数时不支持列表(参见https://stackoverflow.com/questions/13254133/jdbc-prepared-statement-how-to-set-a-list)
答案 1 :(得分:1)
这些错误是由Dali(Eclipse JPA工具插件)产生的。 Dali JPQL解析器无法解析连接的字符串。您可以通过Preferences:
禁用Dali JPQL解析器窗口>偏好> Java持久性> JPA>错误/警告>查询&发电机> JPQL查询无效或不完整
您可以在此处找到有关Dali的更多信息:https://eclipse.org/webtools/dali/
答案 2 :(得分:0)
这里有同样的问题,我使用的是eclipse neon JEE版本和eclipselink 2.6。我的问题是我的persistence.xml有JPA 1.0架构,我的项目facetes配置为JPA版本1.0。纠正两者之后,我的问题就消失了。希望这有助于某人。
旁注:很久以前的原始bug with Dali was fixed。因此,如果您仍然遇到此问题,则可能是配置有问题。