当前位置:编程学习 > JAVA >>

hibernate学习中get方法的使用返回空指针异常

public void testGet(){
Session session=null;
try {
session=HibernateUtil.getSession();
session.beginTransaction();
User user=(User)session.get(User.class," fb8425ea424239b501424239b8030001");
System.out.println(user.getName());
user.setName("王五");
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
} finally{
HibernateUtil.closeSession(session);
}

}
数据库中有这条记录

运行是的异常
Hibernate: select user0_.id as id0_0_, user0_.name as name0_0_, user0_.password as password0_0_, user0_.createTime as createTime0_0_, user0_.expireTime as expireTime0_0_ from User user0_ where user0_.id=?
java.lang.NullPointerException
at zhang.junit.test.SessionTest.testGet(SessionTest.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) --------------------编程问答-------------------- 关系映射配了没? --------------------编程问答-------------------- 配置了,里面的数据就是通过程序插入的。 --------------------编程问答-------------------- 改为load方法吧 --------------------编程问答-------------------- " fb8425ea424239b501424239b8030001"    有一个多余的空格。。。。 --------------------编程问答-------------------- 是不是楼上的空格。 --------------------编程问答-------------------- 不是空格的问题,我用单步运行了发现每次取得session的时候数据库中的数库中的数据就没有了。
这是运行前的数据库中的情况我发现每次运行了session=HibernateUtil.getSession();这句之后在数据库中再查就没有了数据
这是为啥啊? --------------------编程问答--------------------
引用 6 楼 bajiudongfeng 的回复:
不是空格的问题,我用单步运行了发现每次取得session的时候数据库中的数库中的数据就没有了。
这是运行前的数据库中的情况我发现每次运行了session=HibernateUtil.getSession();这句之后在数据库中再查就没有了数据
这是为啥啊?


这太神奇了
会不会是你插入的数据还没有持久化啊
用getHibernateTemplate().get()试试 --------------------编程问答-------------------- 以前插入的数据提交了吗
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,