我建了一个SSH工程,不知是什么原因,用不了SQL语句。String sql="select action_name ,path ,key_flag  from web_action ";   SQLQuery query = getSession().creatSQLQuery(sql);
org.hibernate.QueryException: addEntity() or addScalar() must be called on a sql query before executing the query报这错。在网上看了例子说在补在对像,改成这样后,select s.id(表的字段) as {stu.id},s.name as {stu.name} form Student(表名) s sqlQuery.addEntity("stu",Student.class);
报列名无效,实在不知何解,只好用HQL。解决了,但有的表可能用到关联,假如我有3张表,a(id,b_id,c_id,path) b(id,name),c(id,name)我现在要得到a.path,b.name,c.name SQL语句可以这样写:select a.path,b.name,c.name from a left join b on a.b_id=b.id,a left join c on a.c_id=c.id 可是我把a,b,c应射后用HQL对应字段换成对像后,假如应射的表分别是A,B,C
HQL如何写?select a.path,b.name,c.name from A left join B on A.bId=B.id,A left join C on A.cId=C.id运行报 unexpected token: on这错呢?这是什么原因呢?后来查了资料说是没配关系,又在A类里加这:private B b;private C c;也加了对应的get,set方法,在a.hbm.xml中加这:
<many-to-one name="B" class="com.B"><column name="id" length="15"/></many-to-one>
<many-to-one name="C" class="com.C"><column name="id" length="15"/></many-to-one>
关在对应的HQL改为:select a.path,b.name,c.name from A left join B ,A left join C 可还是报on无效,快疯了,高手帮我看看啊,