在SSH框架上,dao中openSession得到的session怎么绑定到spring的事务上


问题是这样的:
一张user表被分成100张分表(从user_01~user_99),这样问题就来了,最早期的想法是 把所有的hql语句 改成sql语句,但是执行sql时,并不能在保存对象后得到这个保存对象的信息,这条路就夭折了。

紧接着,用的第二种方法,放弃SessionFactory.getCurrentSession,转而使用SessionFactory.openSession,在opensession之前添加拦截器,修改提交sql的表名,但是dao中的opensession得到的session,在service的事务中不起作用,该怎么将session绑定到spring管理的事务中呢, 大神如果有好的分表解决方案也可以告知

hibernate java mysql 分表 spring

cgbugs 9 years ago

为什么要分表呢?不过SQL可以得到被插入数据的id。
String sql = "INSERT INTO table (column1, column2) values(?, ?)";
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
不同数据库可能有区别,详见:
http://stackoverflow.com/questions/1376218/is-there-a-way-to-retrieve-...

异世界D使徒 answered 9 years ago

没有昵称啊啊啊 answered 9 years ago

Your Answer