惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Y
Y Combinator Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
L
LangChain Blog
美团技术团队
N
Netflix TechBlog - Medium
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog
博客园 - 司徒正美
爱范儿
爱范儿
D
DataBreaches.Net
月光博客
月光博客
U
Unit 42
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
MongoDB | Blog
MongoDB | Blog
腾讯CDC

博客园 - 灵风

python网站收集 在PHP中PDO解决中文乱码问题的一些补充 - 灵风 - 博客园 添加XP/2003的网络用户和密码及用户自动登录 一个命令行解决U盘所有文件(夹)被隐藏问题 - 灵风 - 博客园 Windows Server 2000/2003/2008错误 IntelliJ IDEA 性能调整 软件下载站 丁香园-英语面试精选 英语面试自我介绍范文(二) 英文面试自我介绍(一) 网络ghost mysql支持gbk字符集 Eclipse 3.2设置缩进设置 JSTL的问题(According to TLD or attribute directive in tag file, attribute value does not accept any expressions) spring DAO(用hibernate)实现 金山词霸2005版词典文件对照表 1、WEB请求的大概过程 netbeans中设置字符集为 UTF8 取消XP/Windows 2003系统自带文件解压缩功能
修改脱管(Detached)对象
灵风 · 2007-09-18 · via 博客园 - 灵风

修改脱管(Detached)对象

很多程序需要在某个事务中获取对象,然后将对象发送到界面层去操作,最后在一个新的事务保存所做的修改。 在高并发访问的环境中使用这种方式,通常使用附带版本信息的数据来保证这些“长“工作单元之间的隔离。

Hibernate通过提供Session.update()Session.merge() 重新关联脱管实例的办法来支持这种模型。

// in the first session
Cat cat = (Cat) firstSession.load(Cat.class, catId);
Cat potentialMate 
= new Cat();
firstSession.save(potentialMate);

// in a higher layer of the application
cat.setMate(potentialMate);

// later, in a new session
secondSession.update(cat);  // update cat
secondSession.update(mate); // update mate

如果具有catId持久化标识的Cat之前已经被另一Session(secondSession)装载了, 应用程序进行重关联操作(reattach)的时候会抛出一个异常。

如果你确定当前session没有包含与之具有相同持久化标识的持久实例,使用update()。 如果想随时合并你的的改动而不考虑session的状态,使用merge()换句话说,在一个新session中通常第一个调用的是update()方法,以便保证重新关联脱管(detached)对象的操作首先被执行。

like语句


  
public Collection findOwners(String lastName) throws DataAccessException {
        
return getHibernateTemplate().find("from Owner owner where owner.lastName like ?", lastName + "%");
    }



getHibernateTemplate().find(
"from Owner owner where owner.lastName like ?", lastName + "%");