读书人

Hibernate查询用户名失误

发布时间: 2013-06-19 10:26:41 作者: rapoo

Hibernate查询用户名出错


SessionFactory sessionFactory=new AnnotationConfiguration().configure().buildSessionFactory();
Session session=sessionFactory.getCurrentSession();
session.beginTransaction();
boolean flag=(Boolean)session.createQuery("from EmpDTO emp where emp.emp_name=? and emp.emp_pwd=?")
.setString(1, emp.getEmp_name()).setString(2, emp.getEmp_pwd()).uniqueResult();

session.getTransaction().commit();



Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
at $Proxy7.createQuery(Unknown Source)
at hibernate.dao.EmpDAO.verify(EmpDAO.java:21)
at hibernate.dao.EmpDAO.main(EmpDAO.java:34)
Caused by: java.lang.reflect.InvocationTargetException
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 org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)
... 3 more
Caused by: java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V
at org.hibernate.hql.antlr.HqlBaseParser.selectClause(HqlBaseParser.java:1391)
at org.hibernate.hql.antlr.HqlBaseParser.selectFrom(HqlBaseParser.java:1106)
at org.hibernate.hql.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:702)
at org.hibernate.hql.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:296)
at org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:159)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:274)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651)
... 8 more



我原本是想用Struts2+Hibernate写个登陆验证的结果就报错了!单独运行上面的也报这些错 Hibernate 异常
[解决办法]
org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V
你检查一下你传递的参数是不是有问题,引起他找不到该方法!
[解决办法]
antlr.xxx.jar这个包不对,可能是包冲突。删除版本号不同的antlr.jar包,建议保留高版本的。
[解决办法]
楼主,又是你,缘分啊,散点分吧,谢谢了
------解决方案--------------------


引用:
这个问题我发上去后就找到了相关的文章解决了!

所以再 问一个吧!

数据库id自增长
限制id最大100,刚开始从1-100都装满了
后来删了21-89,只剩1-10,90-100.我想再装数据,但id自增长了101....不知道我说清楚了没?
这个怎么解决!


你的意思是像你那样删了之后,id继续从11开始?
[解决办法]
引用:
我本来可以装100条数据,但因为id只有20条,浪费了80条

我觉得对这种id增长逻辑来说是没办法的,它新增的id是基于最大id+1,这种逻辑不会自动调整空隙
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

我本来可以装100条数据,但因为id只有20条,浪费了80条

我觉得对这种id增长逻辑来说是没办法的,它新增的id是基于最大id+1,这种逻辑不会自动调整空隙


在网上找了些相关文章也没什么好方法。

那中间的数据段应该怎么存储?不用的话等于浪费

这有什么里浪费的?你把范围给打点吧。
要么你就写程序处理一下吧,其实没有必要纠结在这里。

读书人网 >J2EE开发

热点推荐