本文隶属于专题系列: 通用数据库访问层dexcoder-dal

注意:本组件已重构并全新发布,更加方便易于使用。代码全部开源,详情访问 Github仓库码云

版本:2.1.0-beta1

增加了表别名的支持。

单表操作一般情况下是不需要表别名的,但是也有一些特殊的情况,例如在操作oracle的xmltype类型时。

看下面的代码,xmltype类型字段名为XML_FILE

select XML_FILE.getclobval() xmlFile from TABLE where ID = ?

上面的代码会执行出错,报出 ORA-00904: "XML_FILE"."GETCLOBVAL": invalid identifier 的错误。

但是加上表别名后:

select t.XML_FILE.getclobval() xmlFile from TABLE t where t.ID = ?

执行正确!

因此表别名的支持还是必要的,可以用tableAlias方法来添加表别名:

Criteria criteria = Criteria.select(Table.class).tableAlias("t").addSelectFunc("[xmlFile].getclobval() xmlFile")
  .where("tableId", new Object[]{10000002L});
 Object obj = jdbcDao.queryForObject(criteria);
 //对应的sql
 select t.XML_FILE.getclobval() xmlFile from TABLE t where t.TABLE_ID = ?

加上表别名后,表别名对于实体类内的属性也会起效!

你可能感兴趣的内容
0条评论

selfly

交流QQ群:32261424
Owner