this.getHibernateTemplate().find()问题
SSH整合中遇到问题:
查询的时候:
this.getHibernateTemplate().find("from Board wherer parentid = ? ",0);查询时报错:
java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
但是把语句改下:this.getHibernateTemplate().find("from Board wherer parentid = 0");
查询正常
请高手看看,这是怎么回事。。。
查询的时候:
this.getHibernateTemplate().find("from Board wherer parentid = ? ",0);查询时报错:
java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
但是把语句改下:this.getHibernateTemplate().find("from Board wherer parentid = 0");
查询正常
请高手看看,这是怎么回事。。。
...全文
请发表友善的回复…
发表回复
sckj0818 2014-05-11
- 打赏
- 举报
楼主,你最后是怎么解决的,我看有说jar包冲突的,有说字符类型的问题,我也碰到这个问题了。求指导~
lhpaiti 2012-07-31
- 打赏
- 举报
源码
package com.lhp.dao.imp;
import java.sql.SQLException;
import java.util.List;
import org.apache.derby.tools.sysinfo;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.lhp.bean.Board;
import com.lhp.dao.BoardDAO;
public class BoardDAOImp extends HibernateDaoSupport implements BoardDAO {
private static final String FIND_ALL_BOARD="from Board";
private static final String FIND_BY_ID="select * from Board where id = ?";
private static final String FIND_BY_PID="from Board where parentid = ?";
private static final String FIND_BY_THEME="select * from Board where theme = ?";
private static final String FIND_ALL_COUNT="select count(*) from Board";
public Board findBoardByTheme(String theme) {
return (Board)this.getHibernateTemplate().find(FIND_BY_THEME,theme);
}
public Board findBoardByid(long id) {
return (Board)this.getHibernateTemplate().find(FIND_BY_ID,id);
}
public long findBoardCount() {
return ((Long)this.getHibernateTemplate().find(FIND_ALL_COUNT).get(0)).longValue();
}
public List<Board> findListBoard(int page) {
return null;
}
public Board saveBoard(Board board) {
this.getHibernateTemplate().save(board);
return board;
}
public List findBoardByParentId(final long parentId) {
//System.out.println((this.getHibernateTemplate().find("from Board where boardname = ?","6666")).isEmpty());
//return this.getHibernateTemplate().find("from Board where parentid = ?" ,0);
return this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s)
throws HibernateException, SQLException {
Criteria c =s.createCriteria(Board.class);
c.add(Restrictions.eq("parentid", new Long(parentId)));
return c.list();
}
});
}
public List allBoard() {
//System.out.println((this.getHibernateTemplate().find("from Board where parentid = ?",new Object[] {0})).isEmpty());
return this.getHibernateTemplate().find("from Board");
//return null;
}
}
lhpaiti 2012-07-31
- 打赏
- 举报
[Quote=引用 10 楼 的回复:]
楼主的where单词写错了居然还能查出来,震惊了。8楼的是正确的,查不出来就不知道原因了,能贴源码吗?
[/Quote]
不好意思,我发帖的时候是手写的,没有复制,代码里面的where是没有写错的。。。不然的话第二句不带“?”的语句也会查不出来的。
楼主的where单词写错了居然还能查出来,震惊了。8楼的是正确的,查不出来就不知道原因了,能贴源码吗?
[/Quote]
不好意思,我发帖的时候是手写的,没有复制,代码里面的where是没有写错的。。。不然的话第二句不带“?”的语句也会查不出来的。
a_b_a_b_a_b_a_b 2012-07-31
- 打赏
- 举报
楼主的where单词写错了居然还能查出来,震惊了。8楼的是正确的,查不出来就不知道原因了,能贴源码吗?
lhpaiti 2012-07-31
- 打赏
- 举报
[Quote=引用 8 楼 的回复:]
是的,find(String queryString,Object[] values);
你可以这样 .find(strSql,new Object[] {value1,value2});
[/Quote]
不行!!还是一样查不出来。。。
是的,find(String queryString,Object[] values);
你可以这样 .find(strSql,new Object[] {value1,value2});
[/Quote]
不行!!还是一样查不出来。。。
yijiulove 2012-07-31
- 打赏
- 举报
是的,find(String queryString,Object[] values);
你可以这样 .find(strSql,new Object[] {value1,value2});
你可以这样 .find(strSql,new Object[] {value1,value2});
lhpaiti 2012-07-31
- 打赏
- 举报
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:
你的问号是小写的吗? 看着别扭呢
你那个是小写的 但是find方法并不支持站位符这么写 不信你再加个问号 后面再写个数字试试 会报错
[/Quote]
小写没错!不支持?不会吧。。你看看这个:http://wenku.baidu.com/view/80b10079168884868762d6ac.html
引用 4 楼 的回复:
你的问号是小写的吗? 看着别扭呢
你那个是小写的 但是find方法并不支持站位符这么写 不信你再加个问号 后面再写个数字试试 会报错
[/Quote]
小写没错!不支持?不会吧。。你看看这个:http://wenku.baidu.com/view/80b10079168884868762d6ac.html
a312983516 2012-07-31
- 打赏
- 举报
[Quote=引用 4 楼 的回复:]
你的问号是小写的吗? 看着别扭呢
[/Quote]
你那个是小写的 但是find方法并不支持站位符这么写 不信你再加个问号 后面再写个数字试试 会报错
你的问号是小写的吗? 看着别扭呢
[/Quote]
你那个是小写的 但是find方法并不支持站位符这么写 不信你再加个问号 后面再写个数字试试 会报错
a312983516 2012-07-31
- 打赏
- 举报
你的问号是小写的吗? 看着别扭呢
lhpaiti 2012-07-31
- 打赏
- 举报
[Quote=引用 2 楼 的回复:]
通过find查询的时候 参数要是object数组。
[/Quote]
find有三个构造器:find(String queryString),find(String queryString,Object vale),find(String queryString,Object[] values);
通过find查询的时候 参数要是object数组。
[/Quote]
find有三个构造器:find(String queryString),find(String queryString,Object vale),find(String queryString,Object[] values);
cxw3152 2012-07-31
- 打赏
- 举报
通过find查询的时候 参数要是object数组。
lhpaiti 2012-07-31
- 打赏
- 举报
等了这么久每一个人回啊。。。
改用Criteria就行了,但是还是不知道为什么那样做就报错。。。
改用Criteria就行了,但是还是不知道为什么那样做就报错。。。