配置如下,hibernate.cfg.xml就不给出来了,那个是正确的。
[code="java"]
classpath:hibernate.cfg.xml
<!-- 配置事务管理器-->
<!-- 配置事务时传播特性-->
tx:attributes
/tx:attributes
/tx:advice
aop:config
/aop:config
[/code]
帮我看看以上的配置,是否正确,因为我在查其他的数据都还好,
但是我这里执行了下面这一段
[code="java"]TModule t=(TModule) this.getHibernateTemplate().get(TModule.class, Long.valueOf(id));
t.setName(nodeName);
t.setOrderNum(Integer.valueOf(order));
this.getHibernateTemplate().saveOrUpdate(t);[/code] 以后,
用户点击按钮,执行
Criteria cr=this.getSession().createCriteria(TModule.class);
List tmlist=cr.list();
在执行cr.list()那里要等很久很久,然后timeout了,
不知道哪里的原因,帮我分析一下。谢谢!
[b]问题补充:[/b]
cr.list()一直没反应,我把hibernate生成的sql语句在sql2008里执行,没反应,后来我一关掉myeclipse,结果出来了,但结果是没有更新之前的数据。很奇怪了
[b]问题补充:[/b]
用Hql还是不行。
[code="java"]String hql="from TModule t where t.moduledId="+Long.valueOf(pid)+" Order by t.orderNum asc";
List tmlist=this.getSession().createQuery(hql).list();[/code]
Try Catch但又没有报错。不知道怎么回事!而且很很久候才查出数据出来,觉得很奇怪!
[b]问题补充:[/b]
to lovewhzlq ;
但是这个事情是发生在
[code="java"]TModule t=(TModule) this.getHibernateTemplate().get(TModule.class, Long.valueOf(id));
t.setName(nodeName);
t.setOrderNum(Integer.valueOf(order));
this.getHibernateTemplate().saveOrUpdate(t); [/code]
之后,其他的情况下没有发生,所以我怀疑是不是我的配置错误。如果配置正确,那又是什么错误呢?
[b]问题补充:[/b]
其他的保存后也出问题了。请问什么回事!
[b]问题补充:[/b]
[现在我突然想起一个事情,是不是我那个
[code="java"]TModule t=(TModule) this.getHibernateTemplate().get(TModule.class, Long.valueOf(id));
t.setName(nodeName);
t.setOrderNum(Integer.valueOf(order));
this.getHibernateTemplate().saveOrUpdate(t);[/code]
这个有问题,我的这个TModule表是一个树形的,
[code="java"]public class TModule implements java.io.Serializable {
private Long id;
private TModule TModule;
private String name;
private String url;
private Short isLeaf;
private Integer orderNum;
private Long moduledId; //这个是ID,指向父节点的Id,
private Set TModules = new HashSet(0);
}[/code]
这个有问题吗?我保存的时候没有赋值。
[b]问题补充:[/b]
有人说 可能是阻塞的原因,但是我如何解决呢?
[b]问题补充:[/b]
现在可以保存了,而且生成了sql语句
Hibernate: insert into whirlpool.dbo.t_module (name, url, isLeaf, orderNum, moduledId) values (?, ?, ?, ?, ?)
但我在保存后,去数据库里查,可查询分析器显示一直在查,可是没结果!
[b]问题补充:[/b]
事情越来越明了。
我现在的问题是保存了,也更新了,
比如我这个
[code="java"]
//这个方法用来添加一个Tmodule
TModule t=new TModule();
t.setName(nodeName);
this.getHibernateTemplate().saveOrUpdate(t);
System.out.println(t.getId()); //打印出来了,比如现在数据库中最大的ID为30,加1后ID为31.
[/code]
但是很快就被rollback.请问怎么回事啊?!