在 Hibernate Synchronizer 中,如何使用HQL ?

Viali 2005-11-17 10:20:03
Person aPerson =new Person();
aPerson.setName("Viali");
PersonDAO.initialize();
PersonDAO personDAO=PersonDAO.getInstance();
personDAO.save(aPerson);
----------------------------------------
现在,我想利用HQL 如" From Person"从数据库中取出所有对象,该怎么做?
我写了
List<Person> a = personDAO.getQuery("from Person").list();
但运行的时候,错误信息如下:
Exception in thread "main" java.lang.NoClassDefFoundError: antlr/ANTLRException
at org.hibernate.hql.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:31)
at org.hibernate.impl.SessionFactoryImpl.createQueryTranslators(SessionFactoryImpl.java:410)
at org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:469)
at org.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1060)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1010)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
at VialiTest.TestTheDAO.main(TestTheDAO.java:26)
...全文
147 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Viali 2005-11-18
  • 打赏
  • 举报
回复
顶...
Viali 2005-11-17
  • 打赏
  • 举报
回复
执行到最后一行就出错了,怎么看?
skycncomp 2005-11-17
  • 打赏
  • 举报
回复
你看看a是不是空
Viali 2005-11-17
  • 打赏
  • 举报
回复
To myth822(↑八月的吟游者↑) ( ):
我的代码是:
Person aPerson =new Person();
aPerson.setName("VialiIsF");

PersonDAO.initialize();
PersonDAO personDAO=PersonDAO.getInstance();
personDAO.save(aPerson);
aPerson.setName("FViali");
personDAO.update(aPerson);
Person newPerson=personDAO.get(2);
List<Person> a = personDAO.getQuery("from Person").list();
这就保证了Person数据库表中肯定有结果啊,怎么可能查询结果为空呢?
myth822 2005-11-17
  • 打赏
  • 举报
回复
TestTheDAO.java:26 到这个地方看看 好像是你的查询结果为null
Viali 2005-11-17
  • 打赏
  • 举报
回复
啊!忘了加那个包!!晕死!但加进去后继续执行,错误信息如下!:
Exception in thread "main" java.lang.NullPointerException
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:431)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:366)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:105)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561)
at org.hibernate.loader.Loader.doQuery(Loader.java:661)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:223)
at org.hibernate.loader.Loader.doList(Loader.java:2147)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2026)
at org.hibernate.loader.Loader.list(Loader.java:2021)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:369)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:298)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1020)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
at VialiTest.TestTheDAO.main(TestTheDAO.java:26)
boyu_song 2005-11-17
  • 打赏
  • 举报
回复
enenen
myth822 2005-11-17
  • 打赏
  • 举报
回复
缺少antlr这个包
Viali 2005-11-17
  • 打赏
  • 举报
回复
有啊!我的整个mail函数代码如下的:

public static void main(String[] args)
{
Person aPerson =new Person();
aPerson.setName("VialiIsF");

PersonDAO.initialize();
PersonDAO personDAO=PersonDAO.getInstance();
personDAO.save(aPerson);
aPerson.setName("FViali");
personDAO.update(aPerson);
Person newPerson=personDAO.get(2);
List<Person> a = personDAO.getQuery("from Person").list();
}
skycncomp 2005-11-17
  • 打赏
  • 举报
回复
没有main方法嘛

67,549

社区成员

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

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