在 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)
...全文
140 10 打赏 收藏 转发到动态 举报
写回复
用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方法嘛
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

67,513

社区成员

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

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