我希望我知道这个列表中的每个项目到底是什么,它是如何工作的,后果是什么,以及何时是正确的使用时间.
我甚至不知道每个人做了什么,但我不是很确定,所以我要求你的帮助,因为我真的很想理解它.
我知道这是一个非常通用的问题,但我认为了解这一切真的很有用.
谢谢.
Man*_*uPK 50
在Hibernate文档提供了很好的例证.此博客文章也将为您提供一些见解.我将从下面添加一些行.
可以使用该refresh()
方法随时重新加载对象及其所有集合.当数据库触发器用于初始化对象的某些属性时,这很有用.
sess.save(cat);
sess.flush(); //force the SQL INSERT
sess.refresh(cat); //re-read the state (after the trigger executes)
Run Code Online (Sandbox Code Playgroud)
有关更多示例,请参阅此处
无论何时将对象传递给save(), update() or saveOrUpdate()
,以及每当使用load(), get(), list(), iterate() or scroll()
该对象检索对象时,该对象都会添加到Session的内部缓存中.
当flush()
随后调用时,对象的状态将与数据库进行同步.如果您不希望发生此同步,或者您正在处理大量对象并需要有效管理内存,则evict()
可以使用该方法从第一级缓存中删除对象及其集合.
ScrollableResult cats = sess.createQuery("from Cat as cat").scroll(); //a huge result set
while ( cats.next() ) {
Cat cat = (Cat) cats.get(0);
doSomethingWithACat(cat);
sess.evict(cat); // (if gives the compile time error then use it: sess.evict(cat.getClass());
}
Run Code Online (Sandbox Code Playgroud)
从这里阅读完整的示例.
在这里阅读会话API .
归档时间: |
|
查看次数: |
74071 次 |
最近记录: |