Select no Hibernate

3 respostas
Z

Pessoal sou iniciante no mundo Java, pra ser sincero acabei de me registrar no forum hehehe e estou com um problema e não estou conseguindo resolve-lo.

Estou tentando buscar todos os elementos de uma Tb no banco, (MySql), só para entendimento seria uma TbPrioridade onde existe o nome, descrição e o id da Categoria onde existe um relacionamento de 1:n, ou seja, uma categoria para muitas prioridades…mas quando eu testo o sistema ocorre o seguinte erro.

net.sf.hibernate.exception.SQLGrammarException: Could not execute query

Caused by: java.sql.SQLException: Unknown column ‘idCategoria’ in ‘order clause’

Perguntei para um colega e ele me falou que pode ser erro na configuração do banco, quem puder me dar uma luz agradeço.

Estou utilizando o Hibernate para persistir e estou tentando buscar no banco deste modo.

public List listaPrioridades(String idCategoria){
		return getObjects("from TbPrioridade as prioridade order by idCategoria"); 
}

Valeu abrços. :stuck_out_tongue:

3 Respostas

jgbt

[quote=Zabimaru]

net.sf.hibernate.exception.SQLGrammarException: Could not execute query

Caused by: java.sql.SQLException: Unknown column ‘idCategoria’ in ‘order clause’

public List listaPrioridades(String idCategoria){
	return getObjects("from TbPrioridade as prioridade order by idCategoria"); 
    }





vc não deveter mapeado as colunas da tabela para as propriedades da sua classe.

quando o hibernate mnoonta a consulta ele va tentar encontrar uma coluna que esteja mapeada para o atributo idCategoria e não ta encontrando.

verifique seu mapeamento.

[]´s

Z
<hibernate-mapping package="com.ecomponentes.hibernate.prioridade">

    <class name="TbPrioridade" table="tb_prioridade">
        <id name="idPrioridade" column="id_prioridade" type="java.lang.Integer">
            <generator class="increment"/>
        </id>
 
        <property name="nomePrioridade" column="nome_prioridade" type="java.lang.String"  not-null="true" />
        <property name="descricao" column="descricao" type="java.lang.String"  not-null="true" />
        
        <many-to-one name="idCategoria" column="id_categoria" class="com.ecomponentes.hibernate.categoria.TbCategoria" />
    </class>
    
</hibernate-mapping>

Bem eu acho que está mapeada as colunas, pode ser que tenha algum erro que eu não tenha visto, mas persiste o erro

Z

galera eu refiz minha hbm.xml, ficou assim…

<hibernate-mapping>
    <class name="com.ecomponentes.hibernate.prioridade.TbPrioridade" table="tb_prioridade">
        <id name="idPrioridade" type="java.lang.Integer" unsaved-value="null">
            <column name="id_prioridade" />
            <generator class="increment"></generator>
        </id>
        <property name="nomePrioridade" type="java.lang.String">
            <column name="nome_prioridade" not-null="true" />
        </property>
        <property name="descricao" type="java.lang.String">
            <column name="descricao" not-null="true" />
        </property>
        <many-to-one name="idCategoria" class="com.ecomponentes.hibernate.categoria.TbCategoria">
            <column name="id_categoria" />
        </many-to-one>
    </class>
</hibernate-mapping>

Agora não aparece nenhum erro no console, mas não abre a página…aparece

HTTP Status 404 -
type Status report
description The requested resource (/) is not available.

Minha Query no Hibernate está assim.

public List listaPrioridades(String idCategoria){
		return getObjects("from TbPrioridade as prioridade order by id_Categoria"); 
	}

Um help seria bem vindo.

valeu :stuck_out_tongue:

Criado 27 de dezembro de 2007
Ultima resposta 28 de dez. de 2007
Respostas 3
Participantes 2