Olá amigos,
Certamente não sou o único que já passou pela seguinte situação:
Sistema novo, um novo esquema de dados e a necessidade de criar “foreign keys” para entidades de base de dados legada em outra tecnologia!
Este é o tal do problema das entidades “cross-domain”.
Ciente de que existem soluções para esse problema em um nível mais “baixo” (como com a conexão direta entre as bases ou através da replicação dos dados), sei que implementá-las nem sempre é uma possibilidade: seja por incompatibilidade tecnológica, por restrições de segurança ou por outros motivos.
Já vi gente implementando soluções diversas: efetuando a busca “cross-domain” na camada DAO ou até mesmo em métodos acessores da própria entidade (de uma maneira meio “Active Record”).
Mas o trabalho de codificar essas junções simples não lhe parece um pouco anti-natural diante das facilidades oferecidas hoje em dia pelas ferramentas ORM? E, por mais que muito se critique o “modelo anêmico”, não seria pior fazer um modelo de domínio ciente dessas características tão tecnológicas da aplicação?
Recentemente implementei uma pequena ferramenta que, intervindo no ciclo de vida dos objetos JPA, realiza esse trabalho sem precisar de nenhuma codificação acessória. Tudo é feito através de alguma configuração e annotations próprias, como a @IndirectJoinField.
Gostaria de saber a opinião de vocês sobre o assunto… como fazem pra realizar esse trabalho? Existe sim algo no mercado que resolva esse problema e de maneira mais elegante?
Atenciosamente,
Pedro Boechat