package javax.persistence;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* Interface used to control query execution.
*
* @see TypedQuery
* @see Parameter
* @since Java Persistence 1.0
*/
public interface Query {List getResultList();//返回查询结果集
Object getSingleResult();//返回单个无类型结果集
int executeUpdate();//执行更新或删除语句,返回更新或删除实体类数量
Query setMaxResults(int maxResult);//设置查询结果集的最大数量,返回Query实例
int getMaxResults();//查询对象设置为的最大结果数
Query setFirstResult(int startPosition);//设置查询的起始下标
int getFirstResult();//查询对象设置为的第一个结果的位置,如果setFirstResults()未被应用于该对象,则返回0
Query setHint(String hintName, Object value);//设置查询属性或提示
Map<String, Object> getHints();//获取属性和提示相关的值
<T> Query setParameter(Parameter<T> param, T value);//绑定Parameter对象的值,第一个参数:参数对象,第二个参数:参数值
Query setParameter(Parameter<Calendar> param, Calendar value,TemporalType temporalType);//TemporalType为特定映射类型(枚举)
<T> T unwrap(Class<T> cls);//返回指定类型对象以允许访问提供特定的API
Query setLockMode(LockModeType lockMode);//设置锁定类型
LockModeType getLockMode();//获取锁定类型
Query setFlushMode(FlushModeType flushMode);//设置刷新模式 AUTO COMMIT
FlushModeType getFlushMode();//获取刷新模式
boolean isBound(Parameter<?> param);//指示值是否被绑定到参数