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?

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