第一种,直接使用ClassAttribue来取查询对象。
qs.appendSelect(new ClassAttribute(UserEntity.class,"userName"), new int[]{a0}),false);
userName属性是一个date类型的,则会直接使用TO_CHAR函数进行转换,并且没有别名,如果同一张表关联多次,会出现列名不唯一的错误
第二种,使用对象属性的原列明查询,QuerySpec不会进行类型转换。
String alias= qs.getFromClause().getAliasAt(a1); qs.appendSelect(new TableColumn(alias,"loginTime"),new int[]{a0}, false);
第三种,自定义使用某个函数来进行列的查询
KeywordExpression loginTime= getAliasObject("TO_CHAR(a1.logTime,'yyyy-mm-dd hh24:mi:ss')","aliasLoginTime"); qs.appendSelect(loginTime,new int[]{a1 }, false); private keywordExpress getAliasObject(String column,String aliasName){ keywordExpress keyExp=null; if(alias=null) keyExp = new KeywordExpress(name); )else{ keyExp = new KeywordExpress(name+" as "); keyExp.setColumnAlias(alias); } return keyExp; }