focuseven 2015-04-23 03:29 采纳率: 0%
浏览 1626

mysq会话变量使用疑惑?

使用存储过程和触发器记录字段修改历史!
存储过程中刚有一个SQL:
INSERT INTO x_change_log (x_ID,, UserName,ColumnName, OldValue, NewValue)
VALUES (xId, @UserName,ColumnName, OldValue, NewValue)
除了@userName,其他变量都是从触发器传过来!
userName由hibernate执行update之前设置值!
getHibernateTemplate().getSessionFactory().getCurrentSession().createSQLQuery(
"SET @UserName='" + SpringSecurityUtils.getCurrentUserName()
+ "'").executeUpdate();
getHibernateTemplate().update(entity);

出现的问题是:历史中记录的userName有地混乱!
怀疑是hibernate使用连接池导致的,多个事务共用了一个连接,后面的事务执行set @userName覆盖了前面事务的变量,不知道如何解决!给位大神有什么解决思路吗?
ps:c币不足,见谅!

  • 写回答

2条回答 默认 最新

  • 小天丿 2015-04-23 03:55
    关注

    INSERT INTO x_change_log (x_ID,, UserName,ColumnName, OldValue, NewValue)
    VALUES (xId, @UserName,ColumnName, OldValue, NewValue)
    x_ID后面有俩逗号,你先看看把@UserName改成定值能不能成功,如果还是失败说明问题不在这里。

    评论

报告相同问题?

悬赏问题

  • ¥30 vmware exsi重置后的密码
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面