当前页面: 开发资料首页 → 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
谢谢各位大哥。。小弟马上结分。。