📄 genericdao.java.svn-base
字号:
package com.easyjf.core.dao;
import java.io.Serializable;
import java.util.List;
/**
*
* @author easyjf.com
*
* 泛型DAO接口
*/
public interface GenericDAO<T> {
/**
* 根据Id查找一个类型为T的对象。
*
* @param id
* 传入的ID的值
* @return 一个类型为T的对象
*/
T get(Serializable id);
/**
* 持久化一个对象,该对象类型为T。
*
* @param newInstance
* 需要持久化的对象,使用JPA标注。
*/
void save(T newInstance);
/**
* 根据对象id删除一个对象,该对象类型为T
*
* @param id
* 需要删除的对象的id。
*/
void remove(Serializable id);
/**
* 更新一个对象,主要用于更新一个在persistenceContext之外的一个对象。
*
* @param transientObject
* 需要更新的对象,该对象不需要在persistenceContext中。
*/
void update(T transientObject);
/**
* 根据对象的一个属性名和该属性名对应的值来查找一个对象。
*
* @param propertyName
* 属性名
* @param value
* 属性名对应的值
* @return 一个对象,如果在该属性名和值的条件下找到多个对象,则抛出一个IllegalStateException异常
*/
T getBy(String propertyName, Object value);
/**
* 根据一个查询条件及其参数,还有开始查找的位置和查找的个数来查找类型为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);
/**
* 根据jpql语句执行批量数据更新等操作
*
* @param jpql
* 需要执行jpql语句
* @param params
* 语句中附带的参数
* @return
*/
int batchUpdate(String jpql, Object[] params);
/**
* 执行SQL语句查询
*
* @param nnq
* @return
*/
public List executeNativeNamedQuery(String nnq);
/**
* 执行SQL语句
*
* @param nnq
* @return
*/
public int executeNativeSQL(final String nnq);
public void flush();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -