我正在使用jOOQ进行连接查询,其中我必须为两个表中的列设置别名以保持列名的唯一性。
有没有办法避免在我对列进行别名时发生的信息丢失?还是按照 jOOQ 的风格实现列名称冲突目标的更好方法?
当我为所有字段设置别名时,所有类型信息都会丢失:
List<Field<?>> columns = factory.select().from(t1j).limit(0).fetch().getFields();
List<Field<?>> aliases = new LinkedList<Field<?>>();
for (Field f : columns) {
Field alias = Factory.fieldByName(t1j.getName(), f.getName())
.as(f.getName() + "_t1");
aliases.add(alias);
}
// columns.get(0).getType() == "class java.lang.String"
// aliases.get(0).getType() == "class java.lang.Object"