在我的RCP-Application中,我有一个TableViewer,它绑定到一个WritableList的人员:
input = new WritableList(ModelProvider.INSTANCE.getPersons(), Person.class);
ViewerSupport.bind(viewer, input, BeanProperties.values(new String[] { "firstName", "lastName", "married" }));
如果我在getPersons()中创建人员,那么我的tableviewer中的一切工作正常。我可以修改一个条目,修改后,新值将在表格中标注 getPersons():
persons = new ArrayList<Person>();
persons.add(new Person("Rainer", "Zufall", "male", true));
persons.add(new Person("Reiner", "Babbel", "male", true));
persons.add(new Person("Marie", "Dortmund", "female", false));
return persons;
但是如果将从EntityManager返回这些人员,则虽然将设置Person对象中的字段,但未在表格中标记修改的条目。 getPersons():
factory = persistenceProvider.createEntityManagerFactory(PERSISTENCE_UNIT_NAME,map);
entityManager = factory.createEntityManager();
Query q = entityManager.createQuery("select p from Person p");
List<Person> persons = q.getResultList();
entityManager.close();
return persons;