java - ID 必须存在于容器中或作为生成的列,缺少 id : id

标签 java web-applications vaadin

知道为什么我会收到此错误,我已经尝试了所有命名约定(小写/大写)

我正在使用 Vaadin,这是我的代码片段:

    public class Usercontainer extends BeanItemContainer<Users> implements Serializable{
    public static final Object[] NATURAL_COL_ORDER = new Object[] {"id", "empCode"};

    public static final String[] COL_HEADERS_ENGLISH = new String[] {"User Id", "Emp code"};

    public Usercontainer() throws IllegalArgumentException {
        super(Users.class);
    }

    public static Usercontainer createTestData(){
        Usercontainer users = null;     
        try
        {
            users = new Usercontainer();
            for(int i=0; i<10;i++){
                Users user = new Users();
                user.setId(i*10);
                user.setEmpcode("C00"+i);
                users.addItem(user);
            }
        }
        catch(Exception e){System.out.println("Error :"+e.getMessage());}       
        return users;       
    }
}
<小时/>
@Entity
@Table(name="_user")
public class Users {
    //private String name;
    public int id;
    public String empcode;

        @Id
    public int getId() {
        return id;
    }

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


    public String getEmpcode() {
        return empcode;
    }
    public void setEmpcode(String empcode) {
        this.empcode = empcode;
    }


}
<小时/>
    public class UserTable extends Table {


    public UserTable(App1Application app){
        setSizeFull();
        setContainerDataSource(app.getDataSource());
        setVisibleColumns(Usercontainer.NATURAL_COL_ORDER);
        setColumnHeaders(Usercontainer.COL_HEADERS_ENGLISH);
        this.setColumnReorderingAllowed(true);
        setSelectable(true);
        setImmediate(true);
        addListener((Property.ValueChangeListener)app);
        setNullSelectionAllowed(false);


    }
}

最佳答案

如果您在 NATURAL_COL_ORDER 中使用 "empCode",那么您应该在实体类中使用 getEmpCode() getter 方法(而不是getEmpcode() )恕我直言。

关于java - ID 必须存在于容器中或作为生成的列,缺少 id : id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13638491/

相关文章:

jQuery 函数在浏览器上运行,但不在 iPad 上

testing - 在 HTTPS 中在线测试表单提交的网页

java - Vaadin 在表格中添加网格

java - 在 vaadin 中强制用户注销。如何显示消息以强制注销用户

java - org.springframework.web.servlet.PageNotFound - 未找到具有 URI 的 HTTP 请求的映射

java - 这是否考虑了夏令时?

testing - selenium:使用 xpath 定位器的自定义定位器

java - Vaadin 按钮单击不会立即执行

java - 升级 android studio 破坏了我的 flutter build (macOS)

java - 在EJB模块中的Restful服务中创建Session