getHibernateTemplate().find("")方法的异常.求救!!

thinkaboutit 2008-04-14 01:12:41
首先很抱歉的说一声,我没有论坛积分.不能报答各位.很对不起.



我在做一个商品添加的功能,在添加之前想对Productkin进行查找.用来填充添加商品页面.

在ProductkindDaoImpl中我用了如下方法:

Productkind instance = (Productkind) getHibernateTemplate()
.get("com.eminem.model.Productkind", 1L);

成功的返回一个Productkind的instance;

但是我采用如下的方法时候:

getHibernateTemplate().find("from Productkind productkind");

抛出如下异常,请问各位,这会是由于什么原因?

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)


root cause

java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:585)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
...全文
532 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jishu_vip 2008-04-25
  • 打赏
  • 举报
回复
我也有同样的错误。
thinkaboutit 2008-04-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dyw31415926 的回复:]

把你的log信息贴出来呀
你确定你的hibernate正确映射了 Productkind?不妨先改成com.eminem.model.Productkind尝试一次
[/Quote]


Caused by: java.lang.NoClassDefFoundError: antlr/ANTLRException
at org.hibernate.hql.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:35)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:74)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)


我看到了最关键的东西.
dyw31415926 2008-04-14
  • 打赏
  • 举报
回复

把你的log信息贴出来呀
你确定你的hibernate正确映射了 Productkind?不妨先改成com.eminem.model.Productkind尝试一次
thinkaboutit 2008-04-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dyw31415926 的回复:]
getHibernateTemplate().find返回List 你取第一个即可
getHibernateTemplate().find("from Productkind productkind"); 改成
getHibernateTemplate().find("from Productkind productkind").get(0);
[/Quote]


我就是想得到数据库中商品种类的所有条目.上面写成用ID得到值的.是我在用
getHibernateTemplate().find("from Productkind productkind"); 失败之后改用的测试方法.


如果我想得到一个list.我应该怎么做呢?我在方法中是这样写的.


log.debug("获取商品...");
try {
List list = getHibernateTemplate().find("from Productkind productkind);
return list;
} catch (RuntimeException e) {
log.error("未找到对应商品!", e);
throw e;
}

就是用这种方法要报上面的错误.
dyw31415926 2008-04-14
  • 打赏
  • 举报
回复
getHibernateTemplate().find返回List 你取第一个即可
getHibernateTemplate().find("from Productkind productkind"); 改成
getHibernateTemplate().find("from Productkind productkind").get(0);

67,513

社区成员

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

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