Vaadin树与JPAContainer

时间:2013-10-20 15:03:54

标签: tree vaadin

我在使用JPAContainer时遇到问题。 设置数据源和树后:

jpaContainer.setParentProperty("parent");
tree = new Tree(null, jpaContainer);
tree.setImmediate(true);
tree.setSizeFull();
tree.setItemCaptionMode(ItemCaptionMode.PROPERTY);
tree.setItemCaptionPropertyId("description");

我尝试添加一个实体:

jpaContainer.addEntity(entity);

此操作会触发以下错误:

Caused by: java.lang.AbstractMethodError:
com.vaadin.addon.jpacontainer.JPAContainer.getContainerFilters()Ljava/util/Collection;
at com.vaadin.ui.Tree.containerItemSetChange(Tree.java:942)

抛出错误的代码行(属于Tree.containerItemSetChange方法)如下:

boolean hasFilters = !((Filterable) getContainerDataSource())
                        .getContainerFilters().isEmpty();

JPAContainer没有getContainerFilters()方法,而是使用getFilters()方法。

我正在使用vaadin 7.1.7

这是一个错误?或者是我的错误??

提前谢谢你:)

1 个答案:

答案 0 :(得分:0)

固定!

当您使用maven命令构建具有最新版本的vaadin(例如7.1.7)的新项目时,您在pom中具有依赖项:

<dependency>
<groupId>com.vaadin.addon</groupId>
<artifactId>jpacontainer-addon</artifactId>
<version>LATEST</version>
</dependency>

此依赖项下载与vaadin 7.1.x不兼容的jpaContainer 3.0.0-SNAPSHOT。 我们需要用这个代替依赖:

<dependency>
<groupId>com.vaadin.addon</groupId>
<artifactId>jpacontainer</artifactId>
<version>3.1.0</version>
</dependency>

感谢Raffael的支持