标题:hibernate问题:session已经关闭了,居然还能更新数据库,奇怪!
只看楼主
huluhulu88
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2007-5-19
 问题点数:0 回复次数:2 
hibernate问题:session已经关闭了,居然还能更新数据库,奇怪!

现在做的是文件的加密与解密。

我在解密时,从数据库里查到我要的记录然后赋值给另一个对象,当是在session.close()后赋值。却发现数据库里对应的字段已经被同步解密了。为什么啊?奇怪!


这是我解密的代码:

/**
* 根据知识Id号查找知识的详细信息 (用户浏览信息)
*
* @param knowledgeId
* @return
*/
public List findMyKnowledgeByKnowledgeId(int knowledgeId) {
Session session = HibernateUtil.currentSession();
List<KmsKnowledge> li = new ArrayList<KmsKnowledge>();
// knowledgeResult=2表示已通过的知识

String hql = "from KmsKnowledge as k where k.knowledgeId='"
+ knowledgeId + "' ";

List list = session.createQuery(hql).list();
KmsKnowledge k = new KmsKnowledge();
KmsKnowledge kn = new KmsKnowledge();
for (java.util.Iterator iter = list.iterator(); iter.hasNext();) {
kn = (KmsKnowledge) iter.next();

}

HibernateUtil.closeSession();

if (session.isOpen()) {
System.out.println("session马上就要关闭了");
session.close();
}
/** *******文件解密*********** */
DesEncrypt des = new DesEncrypt();
des.getKey("sneb");

String knowledgeContent = des.getDesString(kn.getKnowledgeContent());
String knowledgeSub = des.getDesString(kn.getKnowledgeSub());
String knowledgeBg = des.getDesString(kn.getKnowledgeBg());

k.setKnowledgeContent(knowledgeContent);
k.setKnowledgeSub(knowledgeSub);
k.setKnowledgeBg(knowledgeBg);

li.add(k);
return li;
}

[此贴子已经被作者于2007-10-24 11:02:34编辑过]

搜索更多相关主题的帖子: session 数据库 hibernate 
2007-10-24 10:56
huluhulu88
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2007-5-19
得分:0 
怎么没有人回答啊,都过了这么长时间了。

2007-10-24 14:49
huluhulu88
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2007-5-19
得分:0 

找到错误了,这段代码没错。只是在调用时有点问题。


2007-10-25 15:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-180336-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.314280 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved