Vaadin & Lombok - 网格组件不会对我的 bean 应用更改?
Vaadin & Lombok - Grid component does not apply changes to my beans?
我是 Vaadin 的新手。我喜欢使用 Grid 组件来编辑 bean 列表。当我在单元格中编辑值时,更改不会应用于我的 bean。那么我在这里缺少什么?
@Override
protected void init(VaadinRequest request) {
...
VerticalLayout layout = new VerticalLayout();
PersonDAO personDAO = (PersonDAO) context.getBean("personDAO");
List<Person> personList = personDAO.getPerson();
BeanItemContainer<Person> ds =
new BeanItemContainer<Person>(Person.class, personList);
Grid grid = new Grid("Person",ds);
grid.setEditorEnabled(true);
setContent(layout);
}
当我减少 equals 和 hashcode 方法以仅使用 "id" 它适用于 Vaadin 和 Lombok。
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(of={"id"}) // this is the trick
public class Person {
public Person() {}
public Person(int id, String name) {
this.id = id;
this.name = name;
}
private int id;
private String name;
}
我是 Vaadin 的新手。我喜欢使用 Grid 组件来编辑 bean 列表。当我在单元格中编辑值时,更改不会应用于我的 bean。那么我在这里缺少什么?
@Override
protected void init(VaadinRequest request) {
...
VerticalLayout layout = new VerticalLayout();
PersonDAO personDAO = (PersonDAO) context.getBean("personDAO");
List<Person> personList = personDAO.getPerson();
BeanItemContainer<Person> ds =
new BeanItemContainer<Person>(Person.class, personList);
Grid grid = new Grid("Person",ds);
grid.setEditorEnabled(true);
setContent(layout);
}
当我减少 equals 和 hashcode 方法以仅使用 "id" 它适用于 Vaadin 和 Lombok。
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(of={"id"}) // this is the trick
public class Person {
public Person() {}
public Person(int id, String name) {
this.id = id;
this.name = name;
}
private int id;
private String name;
}