站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题Hibernate问题

Hibernate问题

摘要: Hibernate问题


public class CounterTest {

public static void main(String [] args) {

try {
Session session = HibernateSession.currentSession();

Counter counter = new Counter();

Integer i = new Integer("34");
counter.setIvalue(i);

session.save(counter);
session.flush();
System.out.println(counter.getId());

Counter counter2 = (Counter)session.load(Counter.class,counter.getId());

System.out.println(counter.getId() + " : " + counter.getIvalue().intValue());
System.out.println(counter2.getId()+ " : " + counter2.getIvalue().intValue());

session.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
这是我的代码,运行的时候没问题,没抛出任何异常,但是运行之后在数据库里面找不到相应的记录,为什么?
控制台显示的结果:
297ea8be0cd5d20d010cd5d210750001
297ea8be0cd5d20d010cd5d210750001 : 34
297ea8be0cd5d20d010cd5d210750001 : 34


Session session = HibernateSession.currentSession();
Transaction tx = session.beginTransaction();
........
System.out.println(counter2.getId()+ " : " + counter2.getIvalue().intValue());
tx.commit();
session.close();
你的操作没有提交事务,数据库里没有真实的改变


楼上正解,只要把事务提交后,数据库才会有的


不管你保存或修改一条还是多条纪录,在hibernate里都要有事务,记得commit


谢谢各位大哥。。小弟马上结分。。


↑返回目录
前一篇: JSF中,处理用户登陆了,普通做法就是在SESSION做个标记,然后每个页都判断,我感觉这个太麻烦了,
后一篇: 关于Struts的标签嵌套和动态的问题