나는 상속 체인의 일부인 3 개 테이블 A
, B
및 C
한에서 :잘못된 필드 jOOQ 녹음
A
/\
B C
과 같이 : 열 이름은
A(row_id)
B(row_id, a_row_id REFERENCES A(row_id))
C(row_id, a_row_id REFERENCES A(row_id))
주 있음 같은 (a_row_id
)
이제 및인 을 가져옵니다. 수행하여가 :
ctx.select()
.from(
Tables.A
.leftOuterJoin(Tables.B).onKey()
.leftOuterJoin(Tables.C).onKey()
)
.where(someCondition)
.fetch()
I 가입 I (이 시점에서) 내가 찾고있는 하나 모르기 때문에 B
모두 이상과 C
.
ctx.select()
.from(
Tables.A
.leftOuterJoin(Tables.B).onKey()
)
.where(someCondition)
.fetch()
내가 record.field(Tables.B.A_ROW_ID).toString()
을한다면, 내가 "b.a_row_id"
를 얻을 수있는에 Record
를 얻을, 나는 record.getValue(Tables.B.A_ROW_ID)
을 할 경우 내가 예상 가치를 얻을 : 내가 B
을 가져오고이 작업을 수행 할 필요가 알고
하지만, .
그러나 record.field(Tables.C.A_ROW_ID).toString()
을 입력하면 "b.a_row_id"
이되고 record.getValue(Tables.C.A_ROW_ID)
은 record.getValue(Tables.B.A_ROW_ID)
이됩니다.
부모 테이블을 참조하는 열 이름이 동일하기 때문에 이러한 현상이 발생한다고 생각합니다.
그것이 조인의 유일한 테이블 인 경우 테이블의 field_name (정규 "table.field_name"이 아닌) 만 사용하는 jOOQ입니까?
이 문제에 대한 도움을 주시면 대단히 감사하겠습니다. Record.field(Field)
, Record.field(Name)
및 Record.field(String)
모든