我有一个Vaadin应用程序,我正在尝试将Spring Data Neo4j 4合并到其中。在我的Vaadin应用程序中,我使用JPAContainer访问某些MySQL数据库,而JPAContainer依赖于javax.persistence jar来访问它。当我合并SDN 4时,我已经能够成功地将Node和关系实体保存到我的远程Neo4j服务器中,但是我的JPAContainer失败了。这是我收到的错误:
[EL Info]:2015-08-12 08:57:44.44 - ServerSession(1000914620) - EclipseLink,版本:Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd
[EL Info]:connection:2015-08-12 08:57:46.984 - ServerSession(1000914620) - file:/Users/jlam/Downloads/johnson-master/Sprint02d/target/Sprint02d-1.0-SNAPSHOT / WEB-INF / classes / _Basil_v1_PersistenceUnit登录成功
2015年8月12日上午8:58:01 com.vaadin.server.DefaultErrorHandler doDefault
重度: java.lang.NoSuchMethodError:javax.persistence.EntityManager.getCriteriaBuilder()Ljavax / persistence / criteria / CriteriaBuilder; 在com.vaadin.addon.jpacontainer.provider.LocalEntityProvider.createFilteredQuery(LocalEntityProvider.java:379) 在com.vaadin.addon.jpacontainer.provider.CachingSupport.getIds(CachingSupport.java:477) 在com.vaadin.addon.jpacontainer.provider.CachingSupport $ FilterCacheEntry.getAllIds(CachingSupport.java:408) 在com.vaadin.addon.jpacontainer.provider.CachingSupport.getAllEntityIdentifiers(CachingSupport.java:750) 在com.vaadin.addon.jpacontainer.provider.CachingMutableLocalEntityProvider.getAllEntityIdentifiers(CachingMutableLocalEntityProvider.java:106)
它说我成功连接到MySQL数据库。我已经检查了我的JPAContainers的大小,它与我的数据库的大小相匹配。我相信问题是SDN 4还带有一些其他版本的javax.persistence依赖项,在这个版本中,CriteriaBuilder方法不存在。 JPAContainer变得困惑,并且正在使用SDN 4 javax.persistence依赖项,而不是我的依赖项文件夹中列出的javax.persistence-2.1.0.jar。
当我删除我的SDN 4依赖项时,一切正常。关于我的理论是否正确或如何克服这个问题的任何想法?谢谢!
答案 0 :(得分:0)
你是对的,javax.persistence
依赖关系不应该包含在SDN 4中。
如果您正在使用快照(4.0.0.BUILD-SNAPSHOT),它已被删除 - 请一试。否则,下一个版本将不具有此依赖性。