/** * 根据一个查询条件及其参数,还有开始查找的位置和查找的个数来查找任意类型的对象。 * * @param queryName * 命名查询的名字 * @param params * 查询条件中的参数的值。使用Object数组,要求顺序和查询条件中的参数位置一致。 * @param begin * 开始查询的位置 * @param max * 需要查询的对象的个数 * @return 一个任意对象的List对象,如果没有查到任何数据,返回一个空的List对象。 */ List executeNamedQuery(final String queryName, final Object[] params, final int begin, final int max);
/** * 根据一个查询条件及其参数,还有开始查找的位置和查找的个数来查找类型为T的对象。 * * @param query * 查询的条件,使用位置参数,对象名统一为obj,查询条件从where后开始。比如:obj.name = * ?1 and obj.properties = ?2 * @param params * 查询条件中的参数的值。使用Object数组,要求顺序和查询条件中的参数位置一致。 * @param begin * 开始查询的位置 * @param max * 需要查询的对象的个数 * @return 一个该类型对象的List对象,如果没有查到任何数据,返回一个空的List对象。 */ List<T> find(String query, Object[] params, int begin, int max);
/** * 根据一个查询条件及其参数,还有开始查找的位置和查找的个数来查找任意类型的对象。 * * @param query * 完整的查询语句,使用位置参数。比如:select user from User * user where user.name = ?1 and * user.properties = ?2 * @param params * 查询条件中的参数的值。使用Object数组,要求顺序和查询条件中的参数位置一致。 * @param begin * 开始查询的位置 * @param max * 需要查询的对象的个数 * @return 一个任意对象的List对象,如果没有查到任何数据,返回一个空的List对象。 */ List query(String query, Object[] params, int begin, int max);
public class GenericDAOImpl<T> extends JpaDaoSupport implements GenericDAO<T> {
private Class<T> clazz;
public GenericDAOImpl(Class<T> clazz) { this.clazz = clazz; }
/* * public void setClazz(Class<T> clazz) { this.clazz = clazz; } public * Class<T> getClazz() { return clazz; } */ public T get(Serializable id) { if (id == null) return null; return this.getJpaTemplate().find(clazz,id); }
public List<T> find(final String queryStr, final Object[] params, final int begin, final int max) { // TODO Auto-generated method stub List<T> ret = (List<T>) this.getJpaTemplate().execute( new JpaCallback() {
public Object doInJpa(EntityManager em) throws PersistenceException { // TODO Auto-generated method stub String clazzName = clazz.getName(); StringBuffer sb = new StringBuffer("select obj from "); sb.append(clazzName).append(" obj").append(" where ") .append(queryStr); Query query = em.createQuery(sb.toString()); int parameterIndex = 1; if (params != null && params.length > 0) { for (Object obj : params) { query.setParameter(parameterIndex++, obj); } } if (begin >= 0 && max > 0) { query.setFirstResult(begin); query.setMaxResults(max); } if (begin >= 0 && max > 0) { query.setFirstResult(begin); query.setMaxResults(max); } return query.getResultList(); } }); if (ret != null && ret.size() >= 0) { return ret; } else { return new ArrayList<T>(); } }
public List query(final String queryStr, final Object[] params, final int begin, final int max) { // TODO Auto-generated method stub List ret = (List) this.getJpaTemplate().execute(new JpaCallback() {
public Object doInJpa(EntityManager em) throws PersistenceException { // TODO Auto-generated method stub Query query = em.createQuery(queryStr); int parameterIndex = 1; if (params != null && params.length > 0) { for (Object obj : params) { query.setParameter(parameterIndex++, obj); } } if (begin >= 0 && max > 0) { query.setFirstResult(begin); query.setMaxResults(max); } /* * if (begin >= 0 && max > 0) { query.setFirstResult(begin); * query.setMaxResults(max); } */ return query.getResultList(); } }); if (ret != null && ret.size() >= 0) { return ret; } else { return new ArrayList(); } }
public void delete(Serializable id){ if (id == null) try { throw new JPAMothodParameterException(); } catch (JPAMothodParameterException e1) { e1.printStackTrace(); } T object = this.get(id); if (object != null) { try { this.getJpaTemplate().remove(object); } catch (Exception e) { e.printStackTrace(); } } }
public <T> T save(T instance) { // TODO Auto-generated method stub this.getJpaTemplate().persist(instance); return instance; }
public T getBy(final String propertyName, final Object value) { if (propertyName == null || "".equals(propertyName) || value == null) try { throw new JPAMothodParameterException(); } catch (JPAMothodParameterException e) { e.printStackTrace(); }
// TODO Auto-generated method stub List<T> ret = (List<T>) this.getJpaTemplate().execute( new JpaCallback() {
public Object doInJpa(EntityManager em) throws PersistenceException { // TODO Auto-generated method stub String clazzName = clazz.getName(); StringBuffer sb = new StringBuffer("select obj from "); sb.append(clazzName).append(" obj"); Query query = null; if (propertyName != null && value != null) { sb.append(" where obj.").append(propertyName) .append(" = :value"); query = em.createQuery(sb.toString()).setParameter( "value", value); } else { query = em.createQuery(sb.toString()); } return query.getResultList(); } }); if (ret != null && ret.size() == 1) { return ret.get(0); } else if (ret != null && ret.size() > 1) { throw new java.lang.IllegalStateException( "worning --more than one object find!!"); } else { return null; } }
public List executeNamedQuery(final String queryName, final Object[] params, final int begin, final int max) { List ret = (List) this.getJpaTemplate().execute(new JpaCallback() {
public Object doInJpa(EntityManager em) throws PersistenceException { Query query = em.createNamedQuery(queryName); int parameterIndex = 1; if (params != null && params.length > 0) { for (Object obj : params) { query.setParameter(parameterIndex++, obj); } } if (begin >= 0 && max > 0) { query.setFirstResult(begin); query.setMaxResults(max); } return query.getResultList(); } }); if (ret != null && ret.size() >= 0) { return ret; } else { return new ArrayList(); } }
public void update(T instance) { // TODO Auto-generated method stub this.getJpaTemplate().merge(instance); }
public void setClazzType(Class clazz) { this.clazz = clazz; }
public Class getClassType() { return this.clazz; }
public List executeNativeNamedQuery(final String nnq) { Object ret = this.getJpaTemplate().execute(new JpaCallback() {
public List executeNativeQuery(final String nnq, final Object[] params, final int begin, final int max) { List ret = (List) this.getJpaTemplate().execute(new JpaCallback() {
public Object doInJpa(EntityManager em) throws PersistenceException { Query query = em.createNativeQuery(nnq); int parameterIndex = 1; if (params != null && params.length > 0) { for (Object obj : params) { query.setParameter(parameterIndex++, obj); } } if (begin >= 0 && max > 0) { query.setFirstResult(begin); query.setMaxResults(max); } return query.getResultList(); } }); if (ret != null && ret.size() >= 0) { return ret; } else { return new ArrayList(); } }
public int executeNativeSQL(final String nnq) { Object ret = this.getJpaTemplate().execute(new JpaCallback() {