带有jdbc的mysql返回完全限定的列名

时间:2016-08-04 12:41:57

标签: java mysql jdbc jooq

我有一个java web应用程序和mysql 5.7作为数据库,并使用jooq 3.8.2来执行JDBC代码。

执行以下选择:

Result<Record> result = dsl.select(TABLE1.fields())
                           .select(TABLE2.fields())
                           .from(TABLE1)
                           .join(TABLE2).ON(TABLE1.FK.eq(TABLE2.ID))
                           .fetch();
for(Record rec : result) {
   Table1Record tb1Rec = rec.into(TABLE1);
   Table2Record tb2Rec = rec.into(TABLE2);
}

将jooq更新到版本3.8.2后,我的日志显示以下消息:

INFO  org.jooq.impl.Fields - Ambiguous match found for ....

对我而言,很清楚问题是这两个表都有一些具有相同名称的列。所以我试过(例如):

Field tb1Field = TABLE1.FIELD1;
dsl.select(tb1Field.as("TABLE1_" + tb1Field.getName())

但是

Table1Record tb1Rec = rec.get(TABLE1);

返回null。

我的首选解决方案是以相同的方式强制mysql返回完全限定的列名,但我找不到任何选项来执行此操作。

任何帮助?

0 个答案:

没有答案