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

bajiudongfeng 2013-11-10 09:56:33
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)
...全文
228 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghw554557313 2013-11-12
  • 打赏
  • 举报
回复
引用 6 楼 bajiudongfeng 的回复:
不是空格的问题,我用单步运行了发现每次取得session的时候数据库中的数库中的数据就没有了。 这是运行前的数据库中的情况我发现每次运行了session=HibernateUtil.getSession();这句之后在数据库中再查就没有了数据 这是为啥啊?
这太神奇了 会不会是你插入的数据还没有持久化啊 用getHibernateTemplate().get()试试
bigun2008 2013-11-12
  • 打赏
  • 举报
回复
以前插入的数据提交了吗
bajiudongfeng 2013-11-11
  • 打赏
  • 举报
回复
不是空格的问题,我用单步运行了发现每次取得session的时候数据库中的数库中的数据就没有了。
这是运行前的数据库中的情况我发现每次运行了session=HibernateUtil.getSession();这句之后在数据库中再查就没有了数据
这是为啥啊?
tony4geek 2013-11-11
  • 打赏
  • 举报
回复
是不是楼上的空格。
pxy1510742 2013-11-11
  • 打赏
  • 举报
回复
" fb8425ea424239b501424239b8030001" 有一个多余的空格。。。。
JoeyLin1990 2013-11-11
  • 打赏
  • 举报
回复
改为load方法吧
bajiudongfeng 2013-11-10
  • 打赏
  • 举报
回复
配置了,里面的数据就是通过程序插入的。
白开水MD5 2013-11-10
  • 打赏
  • 举报
回复
关系映射配了没?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧