t181935471 2010-10-09 15:40
浏览 219
已采纳

hibernate的hql语句迷惑

[code="java"]
public List initPermission(int postId) {
Session session=sessionFactory.getCurrentSession();
String hql="select f.* from FuncInfo f,Post p,FunPost fp where fp.postId=? and fp.funcInfoId=f.functionId";
Query query=session.createQuery(hql);
query.setInteger(0, postId);

    List<FuncInfo> lists=(List<FuncInfo>)query.list();
    return lists;
}

[/code]

这是方法,但是却报如下异常:
[code="java"]

15:33:07,640 DEBUG JDBCTransaction:163 - rolled back JDBC Connection
org.hibernate.hql.ast.QuerySyntaxException: expecting IDENT, found '*' near line 1, column 10 [select f.* from com.itsp.funcinfo.dao.model.FuncInfo f,com.itsp.userinfo.dao.model.Post p,com.itsp.userinfo.dao.model.FunPost fp where fp.postId=? and fp.funcInfoId=f.functionId]

15:33:07,531 DEBUG JDBCTransaction:54 - begin
15:33:07,531 DEBUG JDBCTransaction:59 - current autocommit status: true
15:33:07,531 DEBUG JDBCTransaction:62 - disabling autocommit
15:33:07,593 ERROR PARSER:33 - line 1:10: expecting IDENT, found '*'
15:33:07,625 DEBUG JDBCTransaction:152 - rollback
15:33:07,625 DEBUG JDBCTransaction:193 - re-enabling autocommit
15:33:07,640 DEBUG JDBCTransaction:163 - rolled back JDBC Connection

[/code]

提示hql语句语法错误,希望大家指教,非常感谢!!!

  • 写回答

3条回答 默认 最新

  • weixin_42527311 2010-10-09 17:06
    关注

    [color=blue]select f.* from FuncInfo f,Post p,FunPost fp where fp.postId=? and fp.funcInfoId=f.functionId";
    不能写成f.* 如果你要查询所有的话。直接写f就好了[/color]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?