Um dos relacionamentos relacionais mais comuns é o um para um. Neste post mostrarei como fazer o mapeamento de objetos que relacionam-se desta forma e portanto devem ser persistidos utilizando-se esta estratégia.
Imagine o seguinte cenário: uma pessoa que é representada pela classe Pessoa possui um único endereço aqui representado pela classe Endereço.
Neste cenário temos uma relação de associação entre as classes Pessoa e Endereço e a navegabilidade é unidirecional partindo da classe Pessoa.
Para fazermos tal mapeamento ORM devemos criar as entidades da seguinte maneira:
@Entity
@Table(name = “TB_PESSOA”)
public class Pessoa implements Serializable {
@Id
@GeneratedValue
@Column(name = “ID_PESSOA”)
private long id;@OneToOne
@JoinColumn(name = “ID_ENDERECO”)
private Item item;
}@Entity
@Table(name = “TB_ENDERECO”)
public class Endereco implements Serializable {@Transient
private String logradouro;@Id
@GeneratedValue
@Column(name = “ID_ENDERECO”, insertable = true, updatable = false)
private long id;
}
Simples né!
Mais detalhes e um exemplo de implementação podem ser obtidos clicando-se aqui.