> @Persist(PersistenceConstants.FLASH) makes nullifies Person in Persons page (listing page), thereby breaking it...
This sounds like bad design if your ListPersons page is referencing an object persisted by your EditPerson page. It sounds like the flash persistance should instead be on your ListPersons page and that your EditPerson page should initialize and return an instance of ListPersons (instead of returning ListPersons.class). Something like this: public class ListPersons { @Property @Persist(PersistenceConstants.FLASH) private Person lastEditedPerson; @Property private List<Person> persons; public void init(Person lastEditedPerson) { this.lastEditedPerson = lastEditedPerson; } ... } public class EditPerson { @Property private Person person; @InjectPage private ListPersons listPersons; private Long personId; @Inject private Session session; public void onActivate(EventContext context) { if (context.getCount() > 0) { personId = context.get(Long.class, 0); } } void setupRender() throws Exception { if (personId != null) { person = session.get(Person.class, personId); } else { person = new Person(); } } @CommitAfter Object onSuccess() { session.saveOrUpdate(person); listPersons.init(person); return listPersons; } public void onPassivate() { if (person.getId() != null) { return person.getId(); } } }