Mapear uma subquery com annotation?

2 respostas
vmotta

Olá,

Estou utilizando o Hibernate com Annotation, gostaria de saber a possibilidade de carregar um objeto com uma subquery através do annotation, vou tentar exemplificar nas classes abaixo.
Tenho a classe Cliente e Endereco, onde um cliente possui vários endereços, porém um dos endereços é marcado como cobrança, seu campo cobranca = ‘S’. Gostaria de criar um objeto Endereco na classe Cliente para carregar esse registro de cobrança. Sei que se colocasse um ID_ENDERECO alimentando esse campo com o id do endereço de cobrança funcionaria, mas uso isso com certa frequencia e se não houvesse essa necessidade seria melhor.

public class Cliente implements Serializable {

@Id
@Column(name = "ID", nullable = false)
private Long id;

@Column(name = "NOME")
private String nome;
// CARREGAR AQUI POR SUBQUERY, GARANTINDO QUE RETORNARÁ APENAS UM REGISTRO

@Column(name = <Select e from Endereco where idCliente = id and cobranca = S>)

private Endereco enderecoCobranca;

}

public class Endereco implements Serializable {

@Id
@Column(name = "ID", nullable = false)
private Long id;

@Column(name = "ID_CLIENTE", nullable = false)
private Long idCliente;

@Column(name = "COBRANCA", nullable = false)
private Character cobranca;

@Column(name = "RUA")
private String rua;

}

Obrigado,
Vitor

2 Respostas

rmendes08

Dá uma olhada em org.hibernate.annotations.@Formula, veja se te ajuda.

Essas tabelas são de uma base de dados legada ou é você que está modelando ?

vmotta

Nossa, não tinha visto que havia uma resposta, vi só agora!!!

Nota 10, exatamente o que precisava, muito obrigado.

Vitor

Criado 16 de setembro de 2011
Ultima resposta 10 de nov. de 2011
Respostas 2
Participantes 2