Boa noite pessoal, seguinte eu gostaria de saber como faço o mapeamento de uma view no hibernate
minha view :
create or replace view viewtelefones as select tel.tel_codigo as codigotelefone,
concat('(',substr(tel.tel_numero,1,2),')',substr(tel.tel_numero,3,4),'-',substr(tel.tel_numero,7,4)) AS telefone,
tel.pes_codigo as codigopessoa, tel.ope_codigo as codigooperadora,
ope.ope_descricao as operadora
from tel_telefones as tel
inner join ope_operadoras as ope on (ope.ope_codigo = tel.ope_codigo)
minha classe:
package Classes;
import javax.persistence.Entity;
import javax.persistence.NamedNativeQuery;
import javax.persistence.SqlResultSetMapping;
import javax.persistence.EntityResult;
import javax.persistence.FieldResult;
@Entity
@SqlResultSetMapping(name="viewtelefones",
entities={@EntityResult(entityClass=Telefone.class
,fields = {
@FieldResult(name="Telefone.codigo", column = "codigotelefone"),
@FieldResult(name="Telefone.numero", column = "numero")}),
@EntityResult(entityClass=Operadora.class
,fields = {
@FieldResult(name="Operadora.codigo", column = "codigooperadora"),
@FieldResult(name="Operadora.descricao", column = "operadora")}),
@EntityResult(entityClass=Cliente.class
,fields ={
@FieldResult(name="Cliente.codigo", column = "codigopessoa")})
}
)
@NamedNativeQuery(name="viewtelefones",query = "select tel.tel_codigo as codigotelefone, "
+ "concat('(',substr(tel.tel_numero,1,2),')',substr(tel.tel_numero,3,4),'-',substr(tel.tel_numero,7,4)) AS telefone, "
+ "tel.pes_codigo as codigopessoa, tel.ope_codigo as codigooperadora, "
+ "ope.ope_descricao as operadora "
+ "from tel_telefones as tel "
+ "inner join ope_operadoras as ope on (ope.ope_codigo = tel.ope_codigo) ", resultClass = ViewTelefoneOperadora.class)
public class ViewTelefoneOperadora {
private Telefone telefone;
public Telefone getTelefone() {
return telefone;
}
public void setTelefone(Telefone telefone) {
this.telefone = telefone;
}
private Operadora operadora;
public Operadora getOperadora() {
return operadora;
}
public void setOperadora(Operadora operadora) {
this.operadora = operadora;
}
private Cliente cliente;
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
}
andei pesquisando e vi que posso mapear minha view usando uma classe com campos comuns, ou usando os objetos referentes a esses campos, achei que seria mais padrão usar os objetos e vi esse tipo de mapeamento, só que minha aplicação não esta mais rodando e falando que estou com problemas no meu mapeamento.
Dá uma força ae pessoal se tiver faltando alguma coisa e tal.