Como faço o mapeamento de uma view no hibernate?
obs - usando XDoclet
Como faço o mapeamento de uma view no hibernate?
obs - usando XDoclet
Eu acho q o hibernate ñ faz diferença entre uma view e uma tabela.
E quanto aos mapeamentos, se vc puder optar por ñ usá-los.
Com Annotations ñ precisa de xml, dá uma olhada nesse artigo, é bacana
Para o Hibernate não faz diferença se é uma tabela ou uma view.
Eu tinha lido aqui na net mesmo que não fazia diferença, mas o q tá ocorrendo é o seguinte:
antes de “virar” View, isso era uma tabela normal (q tinhamos feito p/ testes). Quando era uma tabela, eu fazia a seguinte consulta e me retornava o resultado beleza.
Query sq = s.createQuery("from br.inf.portalfiscal.nfe.model.util.ContribuinteVO c where c.cnpjNucleo = :nucleo_cnpj and c.cnpjFilial = :filial_cnpj and c.cnpjDV = :dv_cnpj");
sq.setParameter("nucleo_cnpj",nucleo);
sq.setParameter("filial_cnpj",filial);
sq.setParameter("dv_cnpj",dv);
ContribuinteVO contribuinte = (ContribuinteVO) sq.uniqueResult();
depois q mudamos p/ view, quando faço a mesma consulta, não me retorna nada, mas se faço uma consulta usando SQL e nao HQL (como a seguir), ele me retorna resultado, mas dá um erro de ClassCastException, dizendo que não dá p/ fazer o cast de Object p/ meu VO:
Query sq = s.createSQLQuery(
"SELECT * FROM CONTRIBUINTE WHERE CNPJ_NUCLEO = " +nucleo+" AND CNPJ_FILIAL = "+filial+" AND CNPJ_DV = "+dv);
ContribuinteVO contribuinte = (ContribuinteVO) sq.uniqueResult();
Quando fiz o debug, vi q ele me retorna um Object, mas com os valores todos “soltos”, apenas dizendo o tipo deles (Timestamp, String, etc…), e não o nome dos atributos, faznedo com que não consiga efetuar o cast.
Alguém saberia me dar alguma solução? :]
Meu hbm:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
>
<class
name="br.inf.portalfiscal.nfe.model.util.ContribuinteVO"
table="CONTRIBUINTE"
>
<id
name="identificador"
column="IDENTIFICADOR"
type="long"
unsaved-value="null"
>
<generator class="native">
<param name="sequence">SQ_CONTRIBUINTE</param>
<!--
To add non XDoclet generator parameters, create a file named
hibernate-generator-params-ContribuinteVO.xml
containing the additional parameters and place it in your merge dir.
-->
</generator>
</id>
<property
name="cnpjDV"
type="java.lang.String"
update="true"
insert="true"
column="CNPJ_DV"
not-null="false"
unique="false"
/>
<property
name="cnpjFilial"
type="java.lang.String"
update="true"
insert="true"
column="CNPJ_FILIAL"
not-null="false"
unique="false"
/>
<property
name="cnpjNucleo"
type="java.lang.String"
update="true"
insert="true"
column="CNPJ_NUCLEO"
not-null="false"
unique="false"
/>
<property
name="dataFimParalizacao"
type="java.util.Date"
update="true"
insert="true"
column="DATA_FIM_PARALISACAO"
not-null="false"
unique="false"
/>
<property
name="dataInicioAtividade"
type="java.util.Date"
update="true"
insert="true"
column="DATA_INICIO_ATIVIDADE"
not-null="false"
unique="false"
/>
<property
name="dataInicioInscricao"
type="java.util.Date"
update="true"
insert="true"
column="DATA_INICIO_INSCRICAO"
not-null="false"
unique="false"
/>
<property
name="dataIntimadoCancelamento"
type="java.util.Date"
update="true"
insert="true"
column="DATA_INTIMADO_CANCELAMENTO"
not-null="false"
unique="false"
/>
<property
name="dataSituacao"
type="java.util.Date"
update="true"
insert="true"
column="DATA_SITUACAO"
not-null="false"
unique="false"
/>
<property
name="idEstruturaOrganizacionalCircunscricao"
type="java.lang.Integer"
update="true"
insert="true"
column="ID_ESTRUTURA_CIRCUNSCRICAO"
not-null="false"
unique="false"
/>
<property
name="idSituacaoContribuinte"
type="java.lang.Integer"
update="true"
insert="true"
column="ID_SITUACAO"
not-null="false"
unique="false"
/>
<property
name="idSituacaoEspecial"
type="java.lang.Integer"
update="true"
insert="true"
column="ID_SITUACAO_ESPECIAL"
not-null="false"
unique="false"
/>
<property
name="idSituacaoUsoECF"
type="java.lang.Integer"
update="true"
insert="true"
column="ID_SITUACAO_USO_ECF"
not-null="false"
unique="false"
/>
<property
name="ieEstadoOrigem"
type="java.lang.String"
update="true"
insert="true"
column="IE_ESTADO_ORIGEM"
not-null="false"
unique="false"
/>
<property
name="inscricaoEstadualDV"
type="java.lang.String"
update="true"
insert="true"
column="IE_DV"
not-null="false"
unique="false"
/>
<property
name="inscricaoEstadualFilial"
type="java.lang.String"
update="true"
insert="true"
column="IE_FILIAL"
not-null="false"
unique="false"
/>
<property
name="inscricaoEstadualMatrizDV"
type="java.lang.String"
update="true"
insert="true"
column="MATRIZ_IE_DV"
not-null="false"
unique="false"
/>
<property
name="inscricaoEstadualMatrizFilial"
type="java.lang.String"
update="true"
insert="true"
column="MATRIZ_IE_FILIAL"
not-null="false"
unique="false"
/>
<property
name="inscricaoEstadualMatrizNucleo"
type="java.lang.String"
update="true"
insert="true"
column="MATRIZ_IE_NUCLEO"
not-null="false"
unique="false"
/>
<property
name="inscricaoEstadualNucleo"
type="java.lang.String"
update="true"
insert="true"
column="IE_NUCLEO"
not-null="false"
unique="false"
/>
<property
name="inscricaoUnica"
type="java.lang.Boolean"
update="true"
insert="true"
column="INSCRICAO_UNICA"
not-null="false"
unique="false"
/>
<property
name="localizacao"
type="java.lang.Boolean"
update="true"
insert="true"
column="LOCALIZACAO"
not-null="false"
unique="false"
/>
<property
name="nomeEmpresarial"
type="java.lang.String"
update="true"
insert="true"
column="NOME_EMPRESARIAL"
not-null="false"
unique="false"
/>
<property
name="nomeFantasia"
type="java.lang.String"
update="true"
insert="true"
column="NOME_FANTASIA"
not-null="false"
unique="false"
/>
<property
name="processoDataFim"
type="java.util.Date"
update="true"
insert="true"
column="PROCESSO_DATA_FIM"
not-null="false"
unique="false"
/>
<property
name="processoDataInicio"
type="java.util.Date"
update="true"
insert="true"
column="PROCESSO_DATA_INICIO"
not-null="false"
unique="false"
/>
<property
name="processoNumero"
type="java.lang.String"
update="true"
insert="true"
column="PROCESSO_NUMERO"
not-null="false"
unique="false"
/>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-ContribuinteVO.xml
containing the additional properties and place it in your merge dir.
-->
</class>
</hibernate-mapping>