Hibernate - Mapeamento sem tabela

1 resposta
K

Coe galera… mas uma dúvida com hiberante que nao consigo solucionar…
tenho uma DTO chamada RelatorioDTO, essa não possui tabela… pois é uma query que pega informações de outras tabela…
tenho uma o comando sql pronto…

RelatorioDTO.java

package dto;
public class RelatorioDTO implements IDefaultDTO {
	private static final long serialVersionUID = 1L;
	private Long id;
	private String nomeMaquina;
	private String nomeAplic;
	private Integer pagsImpressas;
	private Integer pagsFormatadas;
	private String arqEntrada;
	private Integer numPags;
	private String dataInicio;
	private String nomeImpressora;

//gets e sets
}

Relatorio.hbm.xml

<?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 package="dto">

    <class name="RelatorioDTO">
        <id name="id" type="java.lang.Long">
			<generator class="increment"/>
        </id>

	    <property name="nomeMaquina" column="nomemaquina" type="java.lang.String" not-null="true" />
	    <property name="nomeAplic" column="nomeaplic" type="java.lang.String"/>
	    <property name="pagsImpressas" column="pagsimpressas" type="java.lang.Integer"/>
	    <property name="pagsFormatadas" column="pagsformatadas" type="java.lang.Integer"/>
	    <property name="arqEntrada" column="arqEntrada" type="java.lang.String" not-null="false"/>
	    <property name="numPags" column="numPags" type="java.lang.Integer"/>
	    <property name="dataInicio" column="dataInicio" type="java.lang.String" not-null="false"/>
	    <property name="nomeImpressora" column="nome" type="java.lang.String" not-null="false"/>

    </class>
    
</hibernate-mapping>

Consulta.java

...
String l_sql = "Select tb_servers.nomemaquina, tb_aplics.nomeaplic, Sum(tb_processos.PAGSIMPRESSAS) As pagsimpressas ....."
SQLQuery consulta = conexao.createSQLQuery(l_sql).addEntity(RelatorioDTO.class);
listaValores = consulta.list();

quando ele executa o list ele mostra a sql no console… se eu rodo a SQL gerada direto no BD ele traz dados.
mas no hiebrante dá o seguinte erro

dao.exception.DAOException: could not execute query
	at dao.RelatorioDAO.getElementsResumido(RelatorioDAO.java:71)
	at dao.Teste.main(Teste.java:19)

abraçoss

1 Resposta

jimjr_ivan

Cara no caso eu não trabalharia diretamente com o SQL, usaria a classe Criteria, ela tem métodos que solucionam este tipo de problema, eu nunca tive problemas com DTO utilizando ela…
Dá uma estudada nela acho q vai valer a pena.

Criado 14 de janeiro de 2008
Ultima resposta 14 de jan. de 2008
Respostas 1
Participantes 2