使用hibernate框架中,session.createSQLQuery创建sql语句的时候遇到的问题
1. select e.id,d.id
from emp e,dept d
where e.deptid = d.id;
这里要注意给同名字的列起个别名, select e.id eid , d.id did 否则的话,在java代码中会报错列说明无效的错误
2 假设table orderhis(
id number(19),
opr number(15) );
class Orderhis{
private Long id;
private String opr}
用string类型表示opr ,
如果这样写,Orderhis order = new Orderhis();
order.setOpr("1245");保存的时候自动转成number类型不会出错
如果这样写,
order.setOpr("system");在保存的时候也不出错,但是在事务提交的时候,会出现错误,好像是列的说明无效
3关键字in
select * from xxx where xx.empno in (:empnos)
注意,这样设置empnos参数的话,如果empnos只有一个值,比如0009883,并且不能加单引号,这样可以查出来
如果是多个值,这样设置参数是查不到结果的,想要查到结果的话,要用"in("+empnos+")"拼接字符串方式,这个比较特别