Klasa palio.connectors.hibernate.GenericHibernateDAO pozwala na łatwe tworzenie obiektów DAO (Data Access Object) przy użyciu Hibernate.
Skrócona definicja klasy:
public abstract class GenericHibernateDAO<T, ID extends Serializable> implements GenericDAO<T, ID> {
public T getById(ID id, boolean lock)
public T getById(ID id, boolean lock)
public List<T> getAll()
public List<T> getByExample(T exampleInstance, String... excludeProperty)
public T persist(T entity)
public boolean remove(T entity)
protected List<T> findByCriteria(Collection<Criterion> criterion)
protected List<T> findByCriteria(Collection<Criterion> criterion, String orderColumn, boolean ascOrder, Integer offset, Integer count)
protected Session getSession()
}
Aby stworzyć klasę DAO dla konkretnego obiektu należy stworzyć nową klasę dziedziczącą po klasie GenericHibernateDAO.
Przykładowa implementacja:
package palio.dao;
import palio.*;
import palio.model.*;
import palio.connectors.hibernate.*;
public class PUserDAO extends GenericHibernateDAO<PUser, Long> {
private static final String CONNECTOR_NAME = "connector_name"
public static PUserDAO getInstance() throws PalioException {
PUserDAO dao = new PUserDAO();
dao.setSession(Groovy.module("hibernate").getCurrentSession(CONNECTOR_NAME));
return dao;
}
}
Przykładowe użycie:
PUserDAO userDao = PUserDAO.getInstance()
List<PUser> pUsers = userDao.getAll()
for (pUser in pUsers) {
println "user: ${pUser.getLogin()}"
}