日期:2014-05-18  浏览次数:20836 次

关于hibernate 子表 like 查询的问题
以下是我的查询语句

sql= "select   pro   from   A表   as   pro   where   pro.tscomrelation.projectname   like   ?   ";

Query   q=ss.createQuery(sql);

q.setString(0, "%你% ");

居然报错,tscomrelation   是   A表的明细表,A表跟tscomrelation   表是one   to   many的关系,如果我只like查询   A表中的不会出现报错,但是一查询tscomrelation   (A表的子表)就出现报错,请问高手是不是配置问题,不能查询到第二级表

------解决方案--------------------
select pro from A表 as pro where pro.tscomrelation.projectname like ?


大哥,你已经不是查询对像了,你是查询对像的属性,你应该只查对像,然后访问对像的属性啦....
------解决方案--------------------
"select pro from A表 as pro where pro.tscomrelation.projectname like ? "
相当于隐士内连接,只能多对1,或者1对1,不能一对多
改成
"select pro from A表 as pro join pro.tscomrelation as pt where pt.projectname like ? "