复杂的sql语句,你就直接用sql语句就行了。。
解决方案 »
- 百分求助,在线等,关于JasperReport中String类型输出总是为null
- 关于MyEclipse的debug问题(JSP文件)
- 严重: Servlet.service() for servlet action threw exception
- 请问ATM的界面是 网页 还是 Swing 的啊?
- log4j的对象实例怎么用?请教大家。
- hibernate+mysql中文问题!!
- 以前还好好的项目,现在怎么运行不起来了
- java调用mysql数据库事务执行一部分没有回滚
- 用jsp页面更新word文档,大家有什么好主意??
- java中如何实现多继承?
- 急问:刚下载和装了jboss4.04,并且和eclipse整合了,但是eclipse报:....does not contain EJB3.0 libraries
- 如何取消命令行输入MYSQL命令出错时 那中难听的“嘀”的一声
String hql = " from A o1, B o2, C o3 where o1.id = o2.id and o2.id = o3.id and o1.name = ? and o3.state = 'Y'";
List result = getHibernateTemplate().find(hql,传传过来的name变量);
A,B,C是表对应的类名。
name,id是类字段名
我想做的是:比如A表100条记录,B表20条记录,A inner join B 查询出来10条记录,C表2条记录。A inner join B left outer join C最终出来的还是10条记录,而不是2条记录。
主表:<one-to-many><key><column="id"/>...
子表:<many-to-one>...主表中的id必须是主键吗?我的表主键都是自增长的,没有实际意义
还是先配置表的配置文件,详细参照http://blog.csdn.net/dengyin2000/archive/2005/08/26/465694.aspxHQL:
from A a ,B b
left outer join b.C c
where a.id = b.id
and a.name='y'
and b.state='n'
and c.date='2006-1-31'
其中b.C是在配置文件中配置的属性。
但是现在又有一个问题:
我想把c.date='2006-1-31'放在与left outer join b.C c并列的位置,也就是说先筛选c.date='2006-1-31'再做左连接,上述问题SQL语句依然可以解决:
left join tableC c
on (a.id = b.id and c.date='2006-1-31')然而HQL还是写不出来,请大家指教!