public List executeNativeQuery(
     final String nnq,
     final Object[] params,
     final Class returnType,
     final int begin,
     final int max) {
   return dao.executeNativeQuery(nnq, params, returnType, begin, max);
 }
 public T save(T instance) {
   return dao.save(instance);
 }
 public void remove(Serializable id) throws CanotRemoveObjectException {
   dao.remove(id);
 }
 public List query(String jpql) {
   return dao.query(jpql, null);
 }
 public List query(String jpql, Object[] params) {
   return dao.query(jpql, params, 0, -1);
 }
 public Object[] executeProcedure(
     String callSQL, Object[] params, int[] outParamsType, boolean isOutParamAtEnd) {
   return dao.executeProcedure(callSQL, params, outParamsType, isOutParamAtEnd);
 }
 public Connection getConnection() {
   return dao.getConnection();
 }
 public T update(T instance) {
   return dao.update(instance);
 }
 public void flush() {
   dao.flush();
 }
 public Object getSingleResult(final String jpql, final Object[] params) {
   return dao.getSingleResult(jpql, params);
 }
 public int batchUpdate(final String jpql, final Object[] params) {
   return dao.batchUpdate(jpql, params);
 }
 public int executeNativeSQL(final String queryName) {
   return dao.executeNativeSQL(queryName);
 }
 public List executeNativeQuery(final String nnq, final Object[] params) {
   return dao.executeNativeQuery(nnq, params);
 }
 public T getBy(final String propertyName, final Object value) {
   return (T) dao.getBy(propertyName, value);
 }
 @Override
 public List<T> getByProperty(final String propertyName, final Object value) {
   return (List<T>) dao.getByProperty(propertyName, value);
 }
 public List executeNamedQuery(
     final String queryName, final Object[] params, final int begin, final int max) {
   return dao.executeNativeQuery(queryName, params, begin, max);
 }
 public T get(Serializable id) {
   return dao.get(id);
 }
 public Object[] executeProcedure(String callSQL, Object[] params, int[] outParamsType) {
   return dao.executeProcedure(callSQL, params, outParamsType);
 }
 public List query(final String queryStr, final Object[] params, final int begin, final int max) {
   return dao.query(queryStr, params, begin, max);
 }
 public List executeNativeNamedQuery(final String queryName) {
   return dao.executeNativeNamedQuery(queryName);
 }
 public List executeNativeNamedQuery(final String queryName, final Object[] params) {
   return dao.executeNativeNamedQuery(queryName, params);
 }