⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hibernateentitydao.java

📁 应用泛型以及反射编写的单表操作框架
💻 JAVA
字号:
package org.langsin.core.dao;

import java.io.Serializable;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Criterion;
import org.langsin.core.utils.GenericsUtils;
/**
 * 负责提供单个实体的CRUD操作基类。 为子类提供方便,也就是说子类只要定义时所管理实体的Class,就可以获得本类的所有操作
 * 
 * @author 不落的太阳
 * 
 */

@SuppressWarnings("unchecked")
public class HibernateEntityDao<T> extends HibernateGenericDao implements EntityDao<T> {

	protected Class<T> entityClass;
  /**
	 * 构造泛型T.class赋给entityClass
	 * 
	 */

	public HibernateEntityDao() {
		entityClass = GenericsUtils.getSuperClassGenricType(getClass());
	}

	
	protected Class<T> getEntityClass() {
		return entityClass;
	}

	
	public T get(Serializable id) {
		return get(getEntityClass(), id);
	}

		/**
	 * 获取全部对象
	 *
	 * 
	 */
	public List<T> getAll() {
		return getAll(getEntityClass());
	}
	/**
	 * 获得全部对象,带排序
	 */
	
	public List<T> getAll(String orderBy, boolean isAsc) {
		return getAll(getEntityClass(), orderBy, isAsc);
	}
	/**
	 * 根据ID移除对象.
	 *
	 * 
	 */
	
	public void removeById(Serializable id) {
		removeById(getEntityClass(), id);
	}

		/**
	 * 取得entity的Criteria
	 * 
	 * @param criterions
	 * @return
	 */
	public Criteria createCriteria(Criterion... criterions) {
		return createCriteria(getEntityClass(), criterions);
	}

		/**
	 * 取得entity的Criteria 带排序
	 * 
	 * @param criterions
	 * @return
	 */
	public Criteria createCriteria(String orderBy, boolean isAsc, Criterion... criterions) {
		return createCriteria(getEntityClass(), orderBy, isAsc, criterions);
	}

	/**
	 * 根据属性名和属性值查询对象
	 * 
	 * @param propertyName
	 * @param value
	 * @return
	 */
	public List<T> findBy(String propertyName, Object value) {
		return findBy(getEntityClass(), propertyName, value);
	}

		/**
	 * 根据属性名和属性值查询对象 带排序
	 * 
	 * @param propertyName
	 * @param value
	 * @return
	 */
	public List<T> findBy(String propertyName, Object value, String orderBy, boolean isAsc) {
		return findBy(getEntityClass(), propertyName, value, orderBy, isAsc);
	}
	/**
	 * 根据属性名和性值查询的是单一的对象
	 * 
	 * @param propertyName
	 * @param value
	 * @return
	 */
	public T findUniqueBy(String propertyName, Object value) {
		return findUniqueBy(getEntityClass(), propertyName, value);
	}
		/**
	 * 判断对象属性的值在数据库中是否唯一
	 * 
	 * @param entity
	 * @param uniquePropertyNames
	 * @return
	 */
	public boolean isUnique(Object entity, String uniquePropertyNames) {
		return isUnique(getEntityClass(), entity, uniquePropertyNames);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -