<https://github.com/rodrigodevelms/kotlin_testando...
# brazil
v
No seu model vi que vc faz o map conforme aquele exemplo que vimos, tem noçao de como é feito o mapeamento em caso de joins? quando há um alista de "filhos" one-to-many ?
r
eu fiz um one-to-many. A entity telefones aceita uma pessoa juridica (linha 13 entity telefone). E a entity pessoa juridica aceita uma lista de telefones (linha 20 entity pessoa juridica). Para associar a lista de telefones pertencentes a pessoa juridica, fiz nas linhas 60 a 67 da entity PessoaJuridica. Seria isso a sua dúvida?
Dessa forma se voce pesquisar a PJ fulano de tal e ela tiver 30 telefones, ira buscar os 30, sem o problema de n-1 (por isso o código um pouco extenso, ainda não li toda a doc do exposed, mas acho que essa é a melhor forma de evitar o n-1)
v
Opa achei, eu tinha viso só o pckage model. Acredito que esteja aqui, certo?:
Copy code
telefones = PjTelefones.selectAll().andWhere { PjTelefones.idPessoaJuridica eq row[PessoasJuridicas.id] }
            .map {
                PjTelefone(
                    id = it[PjTelefones.id],
                    idInterno = it[PjTelefones.idInterno],
                    numero = it[PjTelefones.numero],
                    idPessoaJuridica = it[PjTelefones.idPessoaJuridica]
                )
            })
só que pelo que entendo neste caso ele não utiliza inner join né?
r
realmente não utilizei inner join. Eu juntei com map. Caso queira com inner join tem esse exemplo aqui. https://github.com/JetBrains/Exposed/issues/177
como estou testando ainda, primeiro fiz com código "kotlin" mesmo. Agora vou ver com o exposed e testar qual o mais performático. Mas acredito que inner seja a melhor opção (pela lógica né 😃 ).
mas se você testar antes, avisa pra gente 😃. Tô meio sem tempo em um projeto F#
v
Bacana, eu acredito que o INNER fica melhor principalmente quando for retornar uma lista de PJs, dentro de cada objeto dessa lista ter que fazer a query acho que não é legal. Esse exemplo que você passou é fazendo inner, até aí ok, a duvida era fazer o mapeamento desse retorno para que ele coloque a sublista dentro do objeto pai. Provavelmente terá que ser feito um for onde incluo a lista de telefone dentro de um objeto PJ agrupado (utilizando seu exemplo)
Vou fazendo uns testes aqui e quando chegar a algo eu compartilho