All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.wicp.tams.commons.hibernate.service.IHbService Maven / Gradle / Ivy

There is a newer version: 2.3.4
Show newest version
package net.wicp.tams.commons.hibernate.service;

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

import javax.servlet.http.HttpServletRequest;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Example.PropertySelector;

import net.wicp.tams.commons.web.PageAssist;

/****
 * Hibernate辅助类,拥有事务
 *
 * @author Administrator
 *
 */
@SuppressWarnings("rawtypes")
public interface IHbService {

	/***
	 * 跟据ID查找对象
	 * 
	 * @param clazz
	 * @param id
	 * @return
	 */
	public  T findById(Class clazz, Serializable id);

	/***
	 * 跟据ID删除对象
	 * 
	 * @param clazz
	 * @param entityId
	 */
	void delById(Class clazz, Serializable entityId);

	/***
	 * 保存或新增PO对象
	 * 
	 * @param obj
	 */
	public  void saveOrUpdate(T obj);

	/****
	 * Oracle/mysql 支持悲观锁的会用 select * from XXX for update 锁记录,其它数据库同 attachQuery
	 *
	 * @param entity
	 */
	public  void attachLock(T entity);

	/***
	 * 跟据hql语句得到Query对象
	 * 
	 * @param hql
	 * @return
	 */
	public Query getQuery(String hql);

	/***
	 * 跟据sql得到Query对象
	 *
	 * @param sql
	 * @return
	 */
	public Query getQuerySQL(String sql);

	/***
	 * 通过示例查询,注意它会忽略 主键
	 *
	 * @param entity
	 * @param selector
	 * @return
	 */
	public  List findByExample(T entity, PropertySelector selector);

	/***
	 * 通过示例查询,注意它会忽略 主键
	 *
	 * @param entity
	 * @param excludes
	 *            示例中被排除的查询条件
	 * @return
	 */
	public  List findByExample(T entity, String... excludes);

	/****
	 * 通过requesty请求来构建翻页
	 * 
	 * @param criteria
	 * @param request
	 * @return
	 */
	public PageAssist findByCriteriaPage(Criteria criteria, HttpServletRequest request);

	public PageAssist findByCriteriaPage(Criteria criteria, PageAssist reqPageAssist);

	/***
	 * Query的翻页查询,PageAssist由系统默认生成
	 * 
	 * @param queryparam
	 * @return
	 */
	public PageAssist findByQueryPage(Query queryparam, HttpServletRequest request);

	public PageAssist findByQueryPage(Query queryparam, PageAssist reqPageAssist);

	/****
	 * 得到当前的session
	 * 
	 * @return
	 */
	public Session getSession();

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy