windchill使用QuerySpec查询对象时自定义列
第一种,直接使用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;
}
浙公网安备 33010602011771号