将按钮添加到vaadin JPA容器表

将按钮添加到vaadin JPA容器表,vaadin,Vaadin,我需要为表格的每一行添加按钮。表的容器数据源是JPA容器。怎么做?我成功地为数据源不是JPA容器的表添加了按钮。我就是这么做的: testable.addContainerProperty("button", Button.class, null); Button btt = new Button("test"); Item newrow = testable.addItem("first"); newrow.getItemProperty("button").setValue(btt); 但

我需要为表格的每一行添加按钮。表的容器数据源是JPA容器。怎么做?我成功地为数据源不是JPA容器的表添加了按钮。我就是这么做的:

testable.addContainerProperty("button", Button.class, null);
Button btt = new Button("test");
Item newrow = testable.addItem("first");
newrow.getItemProperty("button").setValue(btt);
但是如果我声明可测试的数据源:testable.setContainerDataSourcejpa_test;
它不起作用。有人能帮我吗?首先,创建示例类:

public class ExampleBean {
    private Integer id;
    private Button button;

    public ExampleBean() {
        button = new Button("Test") {
            {
                addClickListener(new ClickListener() {
                    @Override
                    public void buttonClick(ClickEvent event) {
                        // code here
                    }
                });
            }
        }
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }

    public void setButton(Button button) {
        this.id = id;
    }

    public Button getButton() {
        return button;
    }

    // ToString, Equals and/or HashCode methods if necessary
}
第二,创建容器:

private BeanItemContainer<ExampleBean> exampleBeanItemContainer = new BeanItemContainer<ExampleBean>(ExampleBean.class);
最后,设置表格标题和表格标题可见性:

table.setVisibleColumns(new Object[] { "id", "button" });
table.setColumnHeaders(new String[] { "ID", "Button" });

首先,创建示例类:

public class ExampleBean {
    private Integer id;
    private Button button;

    public ExampleBean() {
        button = new Button("Test") {
            {
                addClickListener(new ClickListener() {
                    @Override
                    public void buttonClick(ClickEvent event) {
                        // code here
                    }
                });
            }
        }
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }

    public void setButton(Button button) {
        this.id = id;
    }

    public Button getButton() {
        return button;
    }

    // ToString, Equals and/or HashCode methods if necessary
}
第二,创建容器:

private BeanItemContainer<ExampleBean> exampleBeanItemContainer = new BeanItemContainer<ExampleBean>(ExampleBean.class);
最后,设置表格标题和表格标题可见性:

table.setVisibleColumns(new Object[] { "id", "button" });
table.setColumnHeaders(new String[] { "ID", "Button" });

是否尝试使用addGeneratedColumn?是否尝试使用addGeneratedColumn?JPA容器与BeanItemContainer完全不同JPA容器与BeanItemContainer完全不同