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! 