?? igenericdao.java
字號:
package org.lzpeng.dao;
import java.io.Serializable;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.criterion.Criterion;
import org.springside.modules.orm.hibernate.Page;
/**
*
* @version 2009-1-10
* @author lzpeng
*
* 通用的CRUD接口
*/
public interface IGenericDAO<T, PK extends Serializable> {
public void save(T entity);
public void delete(T entity);
public void delete(PK id);
public List<T> findAll();
public Page<T> findAll(Page<T> page);
/**
* 按id獲取對象.
*/
public T get(final PK id);
/**
* 按HQL查詢對象列表.
*
* @param hql
* hql語句
* @param values
* 數量可變的參數
*/
public List find(String hql, Object... values);
/**
* 按HQL分頁查詢. 暫不支持自動獲取總結果數,需用戶另行執行查詢.
*
* @param page
* 分頁參數.包括pageSize 和firstResult.
* @param hql
* hql語句.
* @param values
* 數量可變的參數.
*
* @return 分頁查詢結果,附帶結果列表及所有查詢時的參數.
*/
public Page<T> find(Page<T> page, String hql, Object... values);
/**
* 按HQL查詢唯一對象.
*/
public Object findUnique(String hql, Object... values);
/**
* 按HQL查詢Intger類形結果.
*/
public Integer findInt(String hql, Object... values);
/**
* 按HQL查詢Long類型結果.
*/
public Long findLong(String hql, Object... values);
/**
* 按Criterion查詢對象列表.
*
* @param criterion
* 數量可變的Criterion.
*/
public List<T> findByCriteria(Criterion... criterion);
/**
* 按Criterion分頁查詢.
*
* @param page
* 分頁參數.包括pageSize、firstResult、orderBy、asc、autoCount.
* 其中firstResult可直接指定,也可以指定pageNo. autoCount指定是否動態獲取總結果數.
*
* @param criterion
* 數量可變的Criterion.
* @return 分頁查詢結果.附帶結果列表及所有查詢時的參數.
*/
public Page<T> findByCriteria(Page page, Criterion... criterion);
/**
* 按屬性查找對象列表.
*/
public List<T> findByProperty(String propertyName, Object value);
/**
* 按屬性查找唯一對象.
*/
public T findUniqueByProperty(String propertyName, Object value);
/**
* 根據查詢函數與參數列表創建Query對象,后續可進行更多處理,輔助函數.
*/
public Query createQuery(String queryString, Object... values);
/**
* 根據Criterion條件創建Criteria,后續可進行更多處理,輔助函數.
*/
public Criteria createCriteria(Criterion... criterions);
/**
* 判斷對象的屬性值在數據庫內是否唯一.
*
* 在修改對象的情景下,如果屬性新修改的值(value)等于屬性原值(orgValue)則不作比較.
* 傳回orgValue的設計側重于從頁面上發出Ajax判斷請求的場景. 否則需要SS2里那種以對象ID作為第3個參數的isUnique函數.
*/
public boolean isPropertyUnique(String propertyName, Object newValue,
Object orgValue);
/**
* 通過count查詢獲得本次查詢所能獲得的對象總數.
*
* @return page對象中的totalCount屬性將賦值.
*/
public int countQueryResult(Page<T> page, Criteria c);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -