select new(cont.container_Serial,t.a,t.b,t.c,t.d,t.e,t.f) from Po_Comp_Container as cont left join (
select new( p.SERIAL_ID a,p.prod_Id b,p.model_Id c,p.color d,pt.work_Time e,p.cur_Point_Id f ) from Po_Point_Time as pt,Po_Component as p
where p.SERIAL_ID=pt.SERIAL_ID and p.COMP_ID=10 and pt.POINT_ID=1
and pt.work_Time between '20071217 00:00:00' and '20071218 00:00:00') as t
)
on t.SERIAL_ID=cont.serial_Id; 在你要接收的结果的映射的类()中创建构造方法类似于new()中 以上没有经过测试 不知道好不好用 仅供参考
或者你也可以用hibernate中自带session.creatSQLQuery来执行你的SQL文
select new( p.SERIAL_ID a,p.prod_Id b,p.model_Id c,p.color d,pt.work_Time e,p.cur_Point_Id f ) from Po_Point_Time as pt,Po_Component as p
where p.SERIAL_ID=pt.SERIAL_ID and p.COMP_ID=10 and pt.POINT_ID=1
and pt.work_Time between '20071217 00:00:00' and '20071218 00:00:00') as t
)
on t.SERIAL_ID=cont.serial_Id; 在你要接收的结果的映射的类()中创建构造方法类似于new()中 以上没有经过测试 不知道好不好用 仅供参考
或者你也可以用hibernate中自带session.creatSQLQuery来执行你的SQL文
String sql = ...;
Session session = ((SessionFactoryImpl)factory).openSession();
PreparedStatement pstmt = ((SessionImpl)session).getBatcher().prepareStatement(sql);
pstmt.execute();