Versão atual:

Mapeamento de entidade no hibernate

caros(as), estou tendo problema para mapear uma entidade do banco que na verdade é um view gerada por um function no BD Oracle, onde este entidade se trata de uma pesquisa com uma tabela temporária( global temporary table). Quando mapeado a entidade no hibernate ela gera linhas multiplas da primeira ocorrência do registro fim. EX:

obtidohttps://www.filepicker.io/api/file/RnBea9fWQk6Pzr4LQjv7

esperado : atributo setor deveria alternar entre x y z

repare que o primeiro registro é repito tantas vezes quanto numero de registros deveria existir. Já que uso apenas a tag para o nome.

Tentei este mapeamento através de para gerar uma chave multipla entre nome , modelo e o setor, onde o nome , modelo repete, e o setor se altera ( relacionamento: 1 x n ).

meu arquivo hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="br.com.embratel.stp.tabela">
  <class name="TabelaListaZeradosSetor" table="T_LAST_HOUR_SEC">
       <id name="CEL_NOMCELLSITE" column="CEL_NOMCELLSITE" type="string"/>
       <property name="CEL_NOMMODELO" column="CEL_NOMMODELO" type="string"/>
       <property name="DRF_COD_CELLSECTOR" column="DRF_COD_CELLSECTOR" type="string"/>
      <property name="BUSY_HOUR_DATE" column="BUSY_HOUR_DATE" type="string"/>
    <property name="BUSY_HOUR" column="BUSY_HOUR" not-null="false" type="string"/>
    <property name="SWITCH_NAME" column="SWITCH_NAME" not-null="false" type="string"/>
    <property name="CALLATTEMPTS" column="CALLATTEMPTS" not-null="false" type="java.lang.Integer"/>
    <property name="ESTABLISHED" column="ESTABLISHED" not-null="false" type="java.lang.Integer"/>
    <property name="ESTABLISHED_PERC" column="ESTABLISHED_PERC" not-null="false" type="java.lang.Float"/>
    <property name="FAILURES" column="FAILURES" not-null="false" type="java.lang.Integer"/>
    <property name="FAILURES_PERC" column="FAILURES_PERC" not-null="false" type="java.lang.Float"/>
    <property name="BLOCKCALLS" column="BLOCKCALLS" not-null="false" type="java.lang.Integer"/>
    <property name="BLOCK_PERC" column="BLOCK_PERC" not-null="false" type="java.lang.Float"/>
    <property name="DROPCALLS" column="DROPCALLS" not-null="false" type="java.lang.Integer"/>
    <property name="DROP_PERC" column="DROP_PERC" not-null="false" type="java.lang.Float"/>
   </class>
</hibernate-mapping>

Minha classe java

package br.com.embratel.stp.tabela;
import java.io.Serializable;
public class TabelaListaZeradosSetor implements Serializable{

    /**
     *CH-53685VCL : Criação de nova funcionalidade de sites zerados para apresentaçaõ de ultima hora com valor zero para chamadas completadas.
     */
    private static final long serialVersionUID = 1L;
    private String     BUSY_HOUR_DATE;
    private    String    BUSY_HOUR;
    private String     CEL_NOMCELLSITE;
    private String     DRF_COD_CELLSECTOR;
    private String     CEL_NOMMODELO;
    private String     SWITCH_NAME;
    private int     CALLATTEMPTS;
    private int     ESTABLISHED;
    private float    ESTABLISHED_PERC;
    private int        FAILURES;
    private float    FAILURES_PERC;
    private int        BLOCKCALLS;
    private float     BLOCK_PERC;
    private int     DROPCALLS;
    private float    DROP_PERC;


    public String[] toArray(){
        String [] retorno = new String[15];

        retorno[0] = this.CEL_NOMCELLSITE != null? this.CEL_NOMCELLSITE.toString(): "";
        retorno[1] = this.CEL_NOMMODELO != null? this.CEL_NOMMODELO.toString(): "";
        retorno[2] = this.DRF_COD_CELLSECTOR != null ? this.DRF_COD_CELLSECTOR : "";
        retorno[3] = this.BUSY_HOUR_DATE != null? this.BUSY_HOUR_DATE.toString(): "";
        retorno[4] = this.BUSY_HOUR != null? this.BUSY_HOUR.toString(): "";
        retorno[5] = this.SWITCH_NAME != null? this.SWITCH_NAME.toString(): "";
        retorno[6] = this.CALLATTEMPTS != 0? String.valueOf(this.CALLATTEMPTS) : "0";
        retorno[7] = this.ESTABLISHED != 0? String.valueOf(this.ESTABLISHED) : "0";
        retorno[8] = this.ESTABLISHED_PERC != 0? String.valueOf(this.ESTABLISHED_PERC) : "0";
        retorno[9] = this.FAILURES != 0? String.valueOf(this.FAILURES) : "0";
        retorno[10] = this.FAILURES_PERC != 0? String.valueOf(this.FAILURES_PERC) : "0";
        retorno[11] = this.BLOCKCALLS != 0? String.valueOf(this.BLOCKCALLS) : "0";
        retorno[12]= this.BLOCK_PERC != 0? String.valueOf(this.BLOCK_PERC) : "0";
        retorno[13]= this.DROPCALLS != 0? String.valueOf(this.DROPCALLS) : "0";
        retorno[14]= this.DROP_PERC != 0? String.valueOf(this.DROP_PERC) : "0";

        return retorno;
    }


    public String getCEL_NOMCELLSITE() {
        return CEL_NOMCELLSITE;
    }
    public void setCEL_NOMCELLSITE(String cel_nomcellsite) {
        CEL_NOMCELLSITE = cel_nomcellsite;
    }
    public String getCEL_NOMMODELO() {
        return CEL_NOMMODELO;
    }
    public void setCEL_NOMMODELO(String cel_nommodelo) {
        CEL_NOMMODELO = cel_nommodelo;
    }

    public float getBLOCK_PERC() {
        return BLOCK_PERC;
    }
    public void setBLOCK_PERC(float block_perc) {
        BLOCK_PERC = block_perc;
    }
    public int getBLOCKCALLS() {
        return BLOCKCALLS;
    }
    public void setBLOCKCALLS(int blockcalls) {
        BLOCKCALLS = blockcalls;
    }
    public int getCALLATTEMPTS() {
        return CALLATTEMPTS;
    }
    public void setCALLATTEMPTS(int callattempts) {
        CALLATTEMPTS = callattempts;
    }
    public float getDROP_PERC() {
        return DROP_PERC;
    }
    public void setDROP_PERC(float drop_perc) {
        DROP_PERC = drop_perc;
    }
    public int getDROPCALLS() {
        return DROPCALLS;
    }
    public void setDROPCALLS(int dropcalls) {
        DROPCALLS = dropcalls;
    }
    public int getESTABLISHED() {
        return ESTABLISHED;
    }
    public void setESTABLISHED(int established) {
        ESTABLISHED = established;
    }
    public float getESTABLISHED_PERC() {
        return ESTABLISHED_PERC;
    }
    public void setESTABLISHED_PERC(float established_perc) {
        ESTABLISHED_PERC = established_perc;
    }
    public int getFAILURES() {
        return FAILURES;
    }
    public void setFAILURES(int failures) {
        FAILURES = failures;
    }
    public float getFAILURES_PERC() {
        return FAILURES_PERC;
    }
    public void setFAILURES_PERC(float failures_perc) {
        FAILURES_PERC = failures_perc;
    }

    public String getBUSY_HOUR() {
        return BUSY_HOUR;
    }

    public void setBUSY_HOUR(String busy_hour) {
        BUSY_HOUR = busy_hour;
    }

    public String getBUSY_HOUR_DATE() {
        return BUSY_HOUR_DATE;
    }

    public void setBUSY_HOUR_DATE(String busy_hour_date) {
        BUSY_HOUR_DATE = busy_hour_date;
    }


    public String getSWITCH_NAME() {
        return SWITCH_NAME;
    }


    public void setSWITCH_NAME(String switch_name) {
        SWITCH_NAME = switch_name;
    }


    public String getDRF_COD_CELLSECTOR() {
        return DRF_COD_CELLSECTOR;
    }


    public void setDRF_COD_CELLSECTOR(String drf_cod_cellsector) {
        DRF_COD_CELLSECTOR = drf_cod_cellsector;
    }
}

Desde já agradeço a todos.

Versões(2):

Ver a versão formatada

Mapeamento de entidade no hibernate

Comentário

new question