您的位置:首页 > 其它

hibernate expecting IDENT, found '*' 怎么解决?

2015-07-13 17:03 351 查看
getHibernateTemplate().find("select s.* from Catalog c,Subcatalog s where c.catalogid=s.catalogid order by c.catalogid");

会出现ERROR: org.hibernate.hql.PARSER#reportError : line 1:19: expecting IDENT, found '*' 怎么解决?

还有一个小问题,关于泛型的警告可以忽略吗?

// 执行HQL查询,返回查询的结果

public List<? extends Object> find(String where) {

return getHibernateTemplate().find(where);

}

如果List后不加<? extends Object>,就出现警告,如果加了,调用的时候转换List又出现警告了

Answer1:

getHibernateTemplate().find("from Catalog c,Subcatalog s where c.catalogid=s.catalogid order by c.catalogid");

这样是可以的,呵呵!

Answer2:

有种比较笨的方法:

将你的Subcatalog s 中的所有字段都列出来就可以了,不要用*号

Answer3:

1,跟3楼一样,要不就把字段列出

2,List<? extends Object>泛型,加上的话,应该要具体制定类型。调用也需要制定的。(一般有些警告可以忽略)

Answer4:

你把Subcatalog中的字段都列出来不就可以了么??

或者你select new Subcatalog(这里面要放你的Subcatalog中的字段) from Catalog c,Subcatalog s where c.catalogid=s.catalogid order by c.catalogid

前提Subcatalog类中必须有构造方法,

Answer5:

List
list = subcatalogDao

.createSQLQuery(

"select {s.*} from Catalog c,Subcatalog {s} where c.catalogid=s.catalogid order by c.catalogid",

"s", Subcatalog.class);

return list;

public List createSQLQuery(String hsql,String name,Class obj) {

Session session = this.openSession();

Query query = session.createSQLQuery(hsql).addEntity(name,obj);

return query.list();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: