Relacionamento entre entidades em componentes diferentes (EJB 3.0)

0 respostas
lidianycs

Olá pessoal, gostaria de obter ajuda com o seguinte problema:

Tenho uma aplicação com alguns componentes, usando EJB 3.0 e JPA, onde entidades de componentes distintos acabam se relacionando.
Através do código das classes de entidade Gerente e Pessoa, segue um exemplo do problema que estou enfrentando.
Essas entidades estão em componentes diferentes, sendo assim não é possível declarar um relacionamento OneToOne entre Gerente e Pessoa, em lugar disso é preciso salvar o Id da entidade pessoa em um atributo que será persistido e utilizar outro atributo pessoa transiente, com isso toda vez que preciso utilizar esse campo, é necessário fazer uma chamada a interface do componente para obter os dados da entidade Pessoa, através do Id e setar o atributo da entidade Gerente.

Neste exemplo, precisaria fazer isso para obter dados pessoais de um Gerente, como por exemplo: nome, data de nascimento, etc, dados que são armazenados através da entidade Pessoa.

Classe Gerente

@Entity
public class Gerente implements Serializable {
    
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer gerenteId;
    private Integer pessoaId;
    @Transient
    private Pessoa pessoa;

    ...
}

Classe Pessoa

@Entity
public class Pessoa implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer pessoaId;
    private String name;
    ...
}

Estou pedindo ajuda, pois tenho feito isso em vários lugares nessa aplicação, e gostaria de saber se há uma forma melhor e/ou mais elegante de contornar esse problema.

Agradeço desde já a colaboração de todos! :smiley:

Criado 13 de novembro de 2008
Respostas 0
Participantes 1