Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Mapeamento OR entre EJBs dependentes?

Olá, aqui na empresa temos varios projetos EJB que possuem dependência para outros projetos EJB, por exemplo o sistema de rh (rh_ejb) que está em uma base sqlServer e um sistema de planejamento estratégico ged_ejb que está numa base oracle, o ged_ejb depende do rh_ejb, pois as classes referentes aos dados do funcionario, cargo, setor já estão no sistema de rh, para satisfazer esta dependência, encapsulamos os dois ejbs dentro de um ear, e adicionamos o rh_ejb no manifest entries do ged_ejb, até aqui sem problemas para usar por exemplo a classe funcionario, dentro do ged_ejb fazemos assim por exemplo:

@Entity
public class Documento{
@Id
private Long documentoId;

@Transient 
private Funcionario funcionario;

@Column(name="funcionario_id")//chave estrangeira para a tabela funcionario que está em outro database
private Long funcionarioId;
//....

} 

@Stateless
public  class DocumentoDAO{

@PersistenceContext
private EntityManager manager

@EJB
private FuncionarioDAO funcDAO;

public Documento findById(Long id)

Documento documento = manager.find(Documento.class, id) ;
Funcionario f = funcDao.findById(documento.getFuncionarioId());
documento.setFuncionario(f);
return documento;

}

Isso funciona, mas fica parecendo um pouco com gambiarra, é possível fazer o mapeamento objeto relacional direto entre classes que estejam em projetos ejb diferentes? mesmo que estejam em bancos diferentes ou apenas em schemas diferentes em um mesmo banco?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

Oi Ricardo,

pelo que eu sei não é possível fazer este mapeamento entre bancos ou schemas diferentes. As entidades precisam estar dentro da mesma unidade de persistencia (persistence-unti).

abs