Vaadin和Spring Data Neo4j 4.0.0持久性问题

时间:2015-08-12 14:08:10

标签: vaadin spring-data-neo4j spring-data-neo4j-4 jpacontainer javax.persistence

我有一个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依赖项时,一切正常。关于我的理论是否正确或如何克服这个问题的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

你是对的,javax.persistence依赖关系不应该包含在SDN 4中。

如果您正在使用快照(4.0.0.BUILD-SNAPSHOT),它已被删除 - 请一试。否则,下一个版本将不具有此依赖性。