После мониторинга поведения ADF с использованием EJB JPA мы заметили, что каждые 1 час и 10 минут обновляется ровно итератор, что вызывает исключение нулевого указателя в функции getcurrentrow (DCIteratorBinding).но как мы можем избежать обновления итератора (ps: мы попробовали тайм-аут сеанса).
если я использую эту функцию из sessionbean, она будет отлично работать с таблицей и формой в моем представлении JSFF
/** <code>select o from Person o</code> */
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public List<Person> getPersonFindAll() {
return em.createNamedQuery("Person.findAll",
Person.class).getResultList();
} /** <code>select o from Person o</code> */
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public List<Person> getPersonFindAll() {
return em.createNamedQuery("Person.findAll",
Person.class).getResultList();
}
, но если я использую эту функцию без таблицы в моем представлении JSFF, она вызовет ее снова через 1 час 10 минут, что приведет к потере измененной и несохраненной работы, которую пользователь сделал
public Person getPersonById() {
Person person = new Person();
ADFContext adfCtx = ADFContext.getCurrent();
Map pageFlowScope = adfCtx.getPageFlowScope();
Object idObj = pageFlowScope.get("id");
System.out.println(" getPersonById !!!!!!!!!!!!!!!! id = "+idObj);
String id = (String) idObj;
person = em.find(Person.class, id);
return person;
}