Jooq record.into(Pojo.class) 具有相同的字段名称问题
Jooq record.into(Pojo.class) with same fields name problem
我有代码从 2 tables 中检索 2 个对象(JooQ 生成的 POJO)的一条记录。
Record record = dsl.select()
.from(ISSUE)
.leftJoin(CLIENT).on(CLIENT.ID.eq(ISSUE.CLIENT_ID))
.where(ISSUE.ID.eq(id))
.fetchOne();
JIssue jIssue = record.into(JIssue.class);
JClientRecord jClient = record.into(JClientRecord.class);
table ISSUE 和 table CLIENT 都有 PK 字段 "ID"。
问题是映射到 (POJO.class) 时,table 具有相同名称的字段未正确映射到 POJO。
在上面的示例中 jIssue 获取 jClient.
的 id
当使用 TableRecords 而不是 POJO 的所有映射都正确完成时,但您不能在生成的 DAO 中使用 TableRecord,它需要生成的 POJO。
我怎样才能解决这个问题,以便 jooq 可以正确映射到生成的 pojo 字段?
POJO 类 没有任何可靠的元信息来明确区分源记录中两个同名列之间的歧义。但是,您可以将加入的记录复制到每个 table 的 TableRecord
中,然后将该记录再次复制到您的 POJO 中:
JIssue jIssue = record.into(ISSUE).into(JIssue.class);
JClientRecord jClient = record.into(CLIENT).into(JClientRecord.class);
我有代码从 2 tables 中检索 2 个对象(JooQ 生成的 POJO)的一条记录。
Record record = dsl.select()
.from(ISSUE)
.leftJoin(CLIENT).on(CLIENT.ID.eq(ISSUE.CLIENT_ID))
.where(ISSUE.ID.eq(id))
.fetchOne();
JIssue jIssue = record.into(JIssue.class);
JClientRecord jClient = record.into(JClientRecord.class);
table ISSUE 和 table CLIENT 都有 PK 字段 "ID"。
问题是映射到 (POJO.class) 时,table 具有相同名称的字段未正确映射到 POJO。 在上面的示例中 jIssue 获取 jClient.
的 id当使用 TableRecords 而不是 POJO 的所有映射都正确完成时,但您不能在生成的 DAO 中使用 TableRecord,它需要生成的 POJO。
我怎样才能解决这个问题,以便 jooq 可以正确映射到生成的 pojo 字段?
POJO 类 没有任何可靠的元信息来明确区分源记录中两个同名列之间的歧义。但是,您可以将加入的记录复制到每个 table 的 TableRecord
中,然后将该记录再次复制到您的 POJO 中:
JIssue jIssue = record.into(ISSUE).into(JIssue.class);
JClientRecord jClient = record.into(CLIENT).into(JClientRecord.class);