Я пытался реализовать функцию сортировки простых чисел dataTable.Sorting работает. Но когда я удаляю, обновляю элементы dataTable, в dataTable ничего не происходит (ничего не меняется). То есть, dataTable не очищается и не обновляется. Но при удалении базы данных происходит обновление без каких-либо проблем. Когда я выхожу из системы и перехожу, новый список (dataTable) в порядке.
employeeView.jsf:
<p:dataTable id="employees" value="#{employeeList.employees}"
var="employee" emptyMessage="No Employees found" rows="10"
paginator="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15" rowIndexVar="rowIndex">
<p:column sortBy="#{employee.firstName}">
<f:facet name="header">
<h:outputText value="First Name" />
</f:facet>
<h:outputText value="#{employee.firstName}">
</h:outputText>
</p:column>
<p:column sortBy="#{employee.lastName}">
<f:facet name="header">
<h:outputText value="Last Name" />
</f:facet>
<h:outputText value="#{employee.lastName}" />
</p:column>
</p:dataTable>
EmployeeList.java:
@Component("employeeList")
@SessionScoped
@Repository
public class EmployeeList implements Serializable {
private static final long serialVersionUID = -2417394435764260084L;
public static HibernateTemplate hibernateTemplate;
private List<Employee> employees = new ArrayList<Employee>();
@Autowired
public void setSessionFactory(SessionFactory sessionFactory)
{
this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}
public List<Employee> getEmployees() {
if(employees.isEmpty()){
employees.addAll(empList());
}
return employees;
}
@SuppressWarnings("unchecked")
public List<Employee> empList() {
try
{
List <Employee> result = hibernateTemplate.find("from Employee");
return result;
}
finally {
//close the session and user-supplied JDBC connection
}
}
}
Я пробовал с @ RequestScope, @ ViewScope и т. Д. Но безрезультатно. Где я ошибся?
Primefaces-3.0.M3 с JSF2 и Google Cloud SQL