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

推荐订阅源

J
Java Code Geeks
Jina AI
Jina AI
小众软件
小众软件
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
美团技术团队
V
V2EX
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 聂微东
博客园 - 【当耐特】
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
博客园 - 司徒正美
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
月光博客
月光博客
IT之家
IT之家
博客园 - 三生石上(FineUI控件)
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
博客园 - Franky

博客园 - 灵风

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 + "%");