继承HibernateDaoSupport后. 里面有直接的getSession方法 不需要getHibernateTemplate()获取实例,该方法提供了一个重载,
用于在不存在的时候创建一个session
其中可以选择是否session的单例.就是一个线程内共享一个session,需要研究找下点资料NativeSession,以及两个boolean设置
get方法有四个重载 第一个为普通的Class类型,主键
第二个为类,主键,是否锁定
第三个和第四个为executeWithNativeSession的方法调用
load方法也是四个,使用和上面一样 关注executeWithNativeSession,以及String entityName 这个的类型到底是什么
load方法还有个重载,传入一个Object对象,以及一个ID 可是返回void,应该是用于加载数据到缓存,或者是重新加载一次数据
loadall方法用于加载指定类的全部数据库实例 参数为一个class
refresh 用于更新对象 两个重载,包括了是否锁定LockMode
contains方法判断是否存在当前对象,传入Object对象
evict方法用于一级缓存中清除一个对象
initialize方法 强制全部加载一个对象 传入一个Object 代理对象 PS:这里的代理应该指数据库数据在内存中的对象映射
lock 方法 会从数据库检查版本
String entityName 用于在同类名的时候进行更新操作 ,用到的方法很多
Update 同样都是四个方法重载
savaOrUpdateAll(Collection) 用于传入一个集合,然后进行更新, 其实也是在内部进行循环更新
lock 是把一个没有更改过的脱管状态的对象变成持久状态
Update 是把一个已经更改过的脱管状态的对象变成持久状态
session.replicate() 直接把游离态对象变成持久态的对象
persist把一个瞬态的实例持久化 不过需要flush的时候才会被保存
clear方法同样提供了清空session缓存操作
查询的语句
find方法 3个重载
第一个为简单的HQL语句
第二个为加入一个Object参数的语句,用于传递单一的条件,其中在方法中会被转换成一个数组
第三个为传入一个数组,会在循环里面赋值给HQL语句中的?. 也就是第二个重载的实现
findByNamedParam()方法 2个重载,通过传入HQL语句(带:参数),对应的参数名,以及对应的值 进行HQL查询
其中第二个是多参数的形式,第一个中也是调用了第二个的实现
findByValueBean() 方法提供了HQL语句和对象的查询 传入一个HQL语句和一个Object对象,setProperties的形式
findByNamedQuery() 应该是提供了按照顺序的复制生成HQL语句,具体用途未知,可能是根据属性名和HQL中的名字,进行自动转换
findByNamedQueryAndNamedParam() 两个重载,提供了上面两种方法的合体
findByNamedQueryAndValueBean()上面也进行了描述
findByCriteria()根据Criteria(条件)进行查询 提供了两个重载
其中第一个中进行了第二个重载的调用
第二个方法中的后面两个参数提供了firstResult和maxResults的分页功能,如果不设置,可以成-1;也就是第一个重载的实现
findByExample()提供了四个的重载, 其中两个是输入了完整的类名,防止类名重复
参数基本也为Object,firstResult,maxResults
iterate()方法提供了3个的重载,分别为一个HQL语句,一个Object或者Object数组
用于直接生成Iterator的方式查询
closeIterator(Iterator it) 用于显式的关闭该Iterator对象
bulkUpdate()提供了3个重载,功能类似与HQL和参数的传入,然后进行操作,不过是在内部进行了循环的执行HQL
用于在不存在的时候创建一个session
其中可以选择是否session的单例.就是一个线程内共享一个session,需要研究找下点资料NativeSession,以及两个boolean设置
get方法有四个重载 第一个为普通的Class类型,主键
第二个为类,主键,是否锁定
第三个和第四个为executeWithNativeSession的方法调用
load方法也是四个,使用和上面一样 关注executeWithNativeSession,以及String entityName 这个的类型到底是什么
load方法还有个重载,传入一个Object对象,以及一个ID 可是返回void,应该是用于加载数据到缓存,或者是重新加载一次数据
loadall方法用于加载指定类的全部数据库实例 参数为一个class
refresh 用于更新对象 两个重载,包括了是否锁定LockMode
contains方法判断是否存在当前对象,传入Object对象
evict方法用于一级缓存中清除一个对象
initialize方法 强制全部加载一个对象 传入一个Object 代理对象 PS:这里的代理应该指数据库数据在内存中的对象映射
lock 方法 会从数据库检查版本
String entityName 用于在同类名的时候进行更新操作 ,用到的方法很多
Update 同样都是四个方法重载
savaOrUpdateAll(Collection) 用于传入一个集合,然后进行更新, 其实也是在内部进行循环更新
lock 是把一个没有更改过的脱管状态的对象变成持久状态
Update 是把一个已经更改过的脱管状态的对象变成持久状态
session.replicate() 直接把游离态对象变成持久态的对象
persist把一个瞬态的实例持久化 不过需要flush的时候才会被保存
clear方法同样提供了清空session缓存操作
查询的语句
find方法 3个重载
第一个为简单的HQL语句
第二个为加入一个Object参数的语句,用于传递单一的条件,其中在方法中会被转换成一个数组
第三个为传入一个数组,会在循环里面赋值给HQL语句中的?. 也就是第二个重载的实现
findByNamedParam()方法 2个重载,通过传入HQL语句(带:参数),对应的参数名,以及对应的值 进行HQL查询
其中第二个是多参数的形式,第一个中也是调用了第二个的实现
findByValueBean() 方法提供了HQL语句和对象的查询 传入一个HQL语句和一个Object对象,setProperties的形式
findByNamedQuery() 应该是提供了按照顺序的复制生成HQL语句,具体用途未知,可能是根据属性名和HQL中的名字,进行自动转换
findByNamedQueryAndNamedParam() 两个重载,提供了上面两种方法的合体
findByNamedQueryAndValueBean()上面也进行了描述
findByCriteria()根据Criteria(条件)进行查询 提供了两个重载
其中第一个中进行了第二个重载的调用
第二个方法中的后面两个参数提供了firstResult和maxResults的分页功能,如果不设置,可以成-1;也就是第一个重载的实现
findByExample()提供了四个的重载, 其中两个是输入了完整的类名,防止类名重复
参数基本也为Object,firstResult,maxResults
iterate()方法提供了3个的重载,分别为一个HQL语句,一个Object或者Object数组
用于直接生成Iterator的方式查询
closeIterator(Iterator it) 用于显式的关闭该Iterator对象
bulkUpdate()提供了3个重载,功能类似与HQL和参数的传入,然后进行操作,不过是在内部进行了循环的执行HQL