Cruzar assossiação de Banco de Dados diferentes

Boa noite,

Estou precisando fazer um relacionamento entre tabelas de Bancos de Dados diferentes, porém nunca trabalhei dessa forma.
Ao fazer o teste, obviamente, pela configuração normal obtive um erro que onde o JPA diz não conhecer a entidade do outro banco de dados.

Se esta entidade não faz parte deste banco de dados, como faço para resolver este problema através do JPA?

Boa noite!

Bom diua!

Já procurei nesse forum pra caramba!
Não consegui encontrar nada, pelo menos, não da forma como estou procurando. (cross database, jpa duas tabela de bancos diferentes, relacionamento cruzado entre bancos de dados, etc).

No Google Master encontrei algumas soluções, mas envolvendo JTA. Será que só existe essa maneira?

Alguém ai mais experiente poderia dar pelo menos uma luz??

Obrigado!

[quote=AGAraujo]Boa noite,

Estou precisando fazer um relacionamento entre tabelas de Bancos de Dados diferentes, porém nunca trabalhei dessa forma.
Ao fazer o teste, obviamente, pela configuração normal obtive um erro que onde o JPA diz não conhecer a entidade do outro banco de dados.

Se esta entidade não faz parte deste banco de dados, como faço para resolver este problema através do JPA?

Boa noite![/quote]

Como sao dois bancos distintos voce pode tentar ter dois EntityManagers.

A estrutura da aplicação é a seguinte:

Banco de Dados A com tabela X com atributos (a,b,z) e Banco de Dados B com tabela Y com atributos (c, d, z), sendo que o que X e Y precisam estar assossiados por um determinado campo: z.

Duas EntityManager não resolve esta situação até onde conheço. Mas se resolve, por favor, me dá esse help ai… Não sei como fazer isto!

[quote=AGAraujo]A estrutura da aplicação é a seguinte:

Banco de Dados A com tabela X com atributos (a,b,z) e Banco de Dados B com tabela Y com atributos (c, d, z), sendo que o que X e Y precisam estar assossiados por um determinado campo: z.

Duas EntityManager não resolve esta situação até onde conheço. Mas se resolve, por favor, me dá esse help ai… Não sei como fazer isto![/quote]

Talvez seria o momento de voce juntar essas duas entidades numa so de uma forma diferente, apenas usando essa terceira como um delegate.

[code]@Entity(“PF_ORA”)
public class PessoaFisica{}
@Entity(“PJ_MSQL”)
public class PessoaJuridica{}

public class Pessoa{
public Pessoa(final PessoaFisica fisica, final PessoaJuridica juridica){//}
}[/code]

Agora se voce deseja que essa pessoa seja persistente e transacional, sem usar JEE ou Spring e ve-las como service, eu nao imagino como.

Esse é o lance!!

Por isso falei que queria um relacionamento cruzado entre tabela de diferentes bancos de dados.
Precisa sim ser transacional, persistente e garantir integridade…

Arrumei uma solução aqui, mas fora do JPA… isto é temporário para resolver minha vida enquanto resolvo em definitvo…

Preciso muito de um help da galera aqui!

E obgrigado pela ajuda… e se tiver outras soluções por favor, não exite em postar!

Existe a possibilidade de usar um Database Link?
Alguns bancos de dados têm esse conceito. Oracle e SQL Server são dois grandes bancos que possuem esse recurso.

clone_zealor,

Este é um recurso do proprio SBGD, assim como outros de replicação e cluster, os quais não são possível devido ter bancos de dados que não possíbilitam isto e outra, os bancos de dados possuem SGBD diferentes.

E mesmo que tivessem esses recursos, isto não seria uma solução do JPA, ou pelo menos não vejo como seria.

Obrigado