前面提到做项目使用了spring提供的OpenSessionInViewFilter。用了这个过滤器之后延迟加载是好使了,添加也好使。可是更新和删除却不好使了,也没报任何错误。。。。怪呀。我DAO层的代码是这么写的
public void deleteEmployee(Employee employee) {
this.getHibernateTemplate().delete(employee);
}
public void updateEmployee(Employee employee) {
this.getHibernateTemplate().update(employee);
}
这两个方法就没执行(控制台没有打印出删除或者更新的语句)。后来我尝试了别的方法,发现这么的好使
public void deleteEmployee(Employee employee) {
this.getHibernateTemplate().delete(employee);
this.getSession().delete(employee);
this.getSession().beginTransaction().commit();
}
原来是事务的问题。。。。可是,我配过滤器的时候设置了自动提交的啊
<filter>
<filter-name>openSessionInviewFilter </filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class>
<init-param>
<param-name>flushMode</param-name>
<param-value>AUTO</param-value>
</init-param>
</filter>
到现在我也没弄清楚,求解答啊。。。。。
再后来学习了下事务之后,发现这么写也行
@Transactional(isolation=Isolation.READ_COMMITTED,propagation=Propagation.REQUIRED,readOnly=false,timeout=60,rollbackFor=Exception.class)
public void deleteEmployee(Employee employee) {
this.getHibernateTemplate().delete(employee);
}
另外,我想给set排序,一查发现有两种方法
第一种方法,修改配置文件,指定order-by。note:datetime 是表的字段名而不是属性名
<set name="comments" inverse="true" order-by="datetime desc">
<key>
<column name="articleId" />
</key>
<one-to-many class="com.teamlab.entity.Comment" />
</set>
另一种方法,使用sort对set排序。
<set name="comments" inverse="true" sort="com.teamlab.entity.Comment " >
<key>
<column name="articleId" />
</key>
<one-to-many class="com.teamlab.entity.Comment" />
</set>
在Article实体类中将HashSet改成TreeSet
//private Set comments = new HashSet(0);
private Set comments = new TreeSet(0);
同时Comment类实现Comparator接口。我使用了第一种方法,没用第二种方法。不知道它们哪个效率高。求解。。
另有一事不明,HashSet的不是不保证顺序吗?可是对它排序为什么就好使呢?。。。。。。
分享到:
相关推荐
文件包含漏洞和防御策略 文件包含是程序开发人员常用的技术,通过将可重复使用的函数写到单个文件中,以便在使用某个函数时直接调用该文件,无需再次编写。但是,正是由于这种灵活性,从而导致客户端可以调用任意...
s:27:"<script>alert(123)</script>";}` 这就是序列化的结果,它是一个字符串,包含了对象的状态信息。 如果我们想将这个字符串反序列化回对象,可以使用unserialize函数: ```php $serialized_string = 'O:1:"s...
"MonetaryExpress ME最新脚本 最新脚本2011年12月27日"这个标题揭示了我们正在处理的是一个与MonetaryExpress相关的软件脚本,更新日期为2011年12月27日。脚本通常是编程语言中的一系列指令,用于自动化或执行特定...
【极通4.0 10.27日企业正式版】是一款专为企业设计的软件系统,该版本在10月27日正式发布,旨在提供高效、稳定的IT解决方案。相较于测试版,正式版通常经过了多轮严谨的测试和优化,以确保其功能的完善性和系统的...
此外,在2015年11月27日的版本1.02中加入了C++编程,这可能意味着TwinCAT 3.1 提供了某种形式的C++支持,以允许开发者利用C++强大的编程能力对控制逻辑进行高级编程。 **5. HMI 基本控件** HMI(Human-Machine ...
以提供的部分内容为例,2010年01月27日的监理日志显示,工程进展到铺地面砖阶段,发现地砖缝隙过大并已发出整改通知,当日未出现其他问题。此外,还记录了部分机械设备的使用情况,无施工变更、问题、通知、来访等...
2. **软件测试**:5月27日,他主要进行了“测试相关代码”的工作。这表明他在进行软件质量保证的环节,可能包括编写测试用例、执行自动化测试或手动测试,以验证代码的功能性和稳定性。 3. **团队协作**:“与E组...
启明星辰泰合信息安全运营中心系统是一款专注于网络安全审计的日志审计系统,版本为v3.0.10.2,用户手册为v2.4,发布于2018年2月27日。该系统由北京启明星辰信息安全技术有限公司开发,旨在提供全面的安全监控和审计...
本次实习时间为2010年6月15日至2010年6月27日,地点位于商学院会计手工账实验室(主楼七楼715室)。 #### 三、实习目的 1. **熟悉会计核算流程**:通过实际操作,了解从原始凭证到记账凭证再到账簿登记的全过程,...
7月ERP服务器巡检表,,,,,,,,,,, ,,,,,,,,,,, 检查记录,,第一周,,第二周,,第三周,,第四周,,, 检查项,操作提示/正常值,结论,情况摘要,结论,情况摘要,结论,情况摘要,结论,情况摘要,, 硬件故障,由外观检视各硬件设备等...
该问题出现于 2011 年 6 月 27 日,用户反映打开工单界面需要刷新将近 2 分钟才正常载入。通过数据库环境介绍、问题分析过程、AWR 报表分析和 ASH 报表分析,最终定位到问题的根源是 read by other session 的等待...
这篇维修日志记录了2010年12月22日至27日期间,针对不同品牌电脑的各种故障和维修情况。以下是对这些故障及对应解决方案的详细解释: 1. **東芝东芝** - 修理更换硬盘恢复维修:这台电脑可能遇到了硬盘故障,导致...
2017年7月27日: eEngine:layout.heavy属性在出现浮点数的情况下系统处理异常 2017年7月27日: ePage,eEngine:增加ee.getQueryString函数 2017年7月25日: eEngine: 增加把note字段内容写入网页控件的.panel属性中 ...
DB Cache调整方案如何制订优化小技巧 自动段存储空间管理35月27日 无奈今日点评优化小技巧 临时表空间和排序优化小技巧 undo表空间和回滚段5月28日 BBED的妙用今日点评优化小技巧 如何启用BBED优化小技巧 模拟ORA-...
标题 "common2018-11-27.zip" 提示我们这是一个在2018年11月27日创建的压缩文件,可能包含了某个项目或软件开发中的通用代码或工具。由于标签提到了“源码”和“工具”,我们可以推测这个压缩包可能包含了一些开源...
- **xx3db02** - 2023年7月27日 - **xx4db01** - 故障日期未知 - **xx4db02** - 故障日期未知 值得注意的是,尽管这些节点出现了频繁故障,但由于业务隔离的配置,单个节点的故障并未对业务造成严重影响。然而,大...
在2018年的10月27日,一个针对Flask框架的一键部署解决方案被提出,这极大地简化了开发者进行Web服务上线的过程。一键部署意味着开发者可以快速地将应用配置好并发布到服务器,而无需手动处理各种配置细节。此外,该...
在这款v4.9.14 Build361的版本中,我们看到的是2012年1月27日发布的一个更新,包含了文档资料,以帮助开发者更好地理解和使用这个库。 IBObjects的核心功能在于提供了一种高效、便捷的方式来处理数据库操作,它将...
【标题】"bugreport-Redmi K40 Pro-2024-03-27-113206(1).zip" 提供的信息表明,这是一份针对Redmi K40 Pro设备的bug报告,创建于2024年3月27日11时32分6秒。这种类型的文件通常包含设备在特定时间点的系统状态详细...