使用HibernateTemplate手写源生SQL的【增删改查】 操作
2024-09-27 03:33:38
使用 HibernateTemplate 进行持久化操作 执行的时候不报错,但数据库的持久化操作没有一点作用,问了好多人,说没有声明事务和提交事务, 用的是别人搭的的架构,事务已经有了,自动提交事务的,所以和事务没有关系,,搞了好久最后终于知道怎么回事了,真是一个让人蛋疼的问题啊!
/**
* 删除该群里的所有用户(解散群聊)
* @author 80818647@qq.com
* @param groupId 群ID
*/
public void deletChatGroupUser(final long groupId) {
execute(new HibernateCallback<ChatGroup>() {
public ChatGroup doInHibernate(Session session) throws HibernateException {
session
.createSQLQuery("DELETE FROM user_chat_group WHERE chat_group_id=:groupId")
.setLong("groupId", groupId) //因为少了这行代码,所以导致一直不报错,但是数据库还没反应。
// **只要是手写SQL对数据库进行了更改最后都是要加入.executeUpdate(); 除了select以外
.executeUpdate(); return null;
}
});
}
获取一个对象
/**
* 获取群对象
* @author 80818647@qq.com
* @param groupId 群ID
* @return ChatGroup( 群组对象) 当前用户在此群的信息
*/
public ChatGroup getChatGroupById(final long groupId) {
return execute(new HibernateCallback<ChatGroup>() {
public ChatGroup doInHibernate(Session session) throws HibernateException {
return (ChatGroup) session
.createSQLQuery("SELECT * FROM chat_group WHERE id=:groupId")
.addEntity(ChatGroup.class)
.setLong("groupId", groupId)
.uniqueResult(); //返回一个唯一结果 对象
}
});
}
count查询返回一记录数
//注意返回的必须是BigInteger类型
public BigInteger getTotalCount(final long postCategoryId) {
return execute(new HibernateCallback<BigInteger>() {
public BigInteger doInHibernate(Session session) throws HibernateException {
return (BigInteger) session
.createSQLQuery("SELECT count(*) FROM post where deleted > 0 and published > 0 and post_category_id=:postCategoryId ")
.setLong("postCategoryId", postCategoryId)
.uniqueResult(); }
});
}
最新文章
- flock — 轻便的咨询文件锁定
- MySQL timestamp用法
- 关于easyui模拟win2012桌面的一个例子系列
- Bootstrap 分页插件 ajax获取数据显示
- C语言 rand()函数的用法
- Java6 WebService学习
- bzoj 5000: OI树
- JS精度问题(0.1+0.2 = 0.3吗?)
- 简单几步让网站支持https,windows iis下https配置方式
- Oracle 11g 的 自动内存管理
- 【转】python两个 list 获取交集,并集,差集的方法
- Python中的exec、eval使用实例
- funny
- CodeForces 727C
- SAS 报表输出一些新式控制
- 第七次Scrum冲刺
- vue框架(二)_vue环境搭建及创建项目
- DPDK无法分出大页面:EAL: No free hugepages reported in hugepages-2048kB 解决方法
- React-Router v4.0 hashRouter使用js跳转
- JS延迟执行