1

我正在使用 EJB 和 JBoss 调用 sql-query name = "getResVigProd" 时,会出现以下错误:

2013-11-13 16:33:10,773 INFO  [org.hibernate.type.IntegerType] could not read column value from result set: cod1_213_0_; Invalid column name cod1_213_0_.
2013-11-13 16:33:10,773 WARN  [org.hibernate.util.JDBCExceptionReporter] SQL Error: 0, SQLState: 07009
2013-11-13 16:33:10,773 ERROR [org.hibernate.util.JDBCExceptionReporter] Invalid column name cod1_213_0_.
2013-11-13 16:33:10,804 INFO  [ar.com.acg.web.CarteraVigenteAction] javax.ejb.EJBTransactionRolledbackException: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute query

我的 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>
    <class name="ar.com.acg.model.ResumenVigente" table="resumen_vigentes" mutable="false">
        <id name="codigo_proponente" type="int" column="cod_proponente" /> 
        <property name="codigo_productor" type="int" column="Codigo_Productor" />
        <property name="codigo_organizador" type="int" column="cod_organizador" />
        <property name="nombre_proponente" type="string" column="nombre_proponente" />
        <property name="nombre_productor" type="string" column="Nombre_Productor" />
        <property name="nombre_organizador" type="string" column="nombre_organizador" />
    </class>

    <resultset name="comboProdResVig">
        <return class="ar.com.acg.model.ResumenVigente" alias="ResumenVigente" >
            <return-property name="codigo_productor" column="Codigo_Productor"/>
            <return-property name="nombre_productor" column="Nombre_Productor"/>
        </return>
    </resultset>

    <sql-query name="getResVigProd" callable="true" resultset-ref="comboProdResVig">
        exec wp_s_resumen_vigentes 'Productor_x_Organizador', :productor.codigo 
    </sql-query>
</hibernate-mapping>

“ResumenVigente.java”是这样的:

package ar.com.acg.model;

import java.io.Serializable;

public class ResumenVigente implements Serializable {

    private static final long serialVersionUID = -2464310639769273442L;

    private Integer codigo_proponente;
    private Integer codigo_productor;
    private Integer codigo_organizador;
    private String nombre_proponente;
    private String nombre_productor;
    private String nombre_organizador;

    public Integer getCodigo_organizador() {
        return codigo_organizador;
    }
    public void setCodigo_organizador(Integer codigo_organizador) {
        this.codigo_organizador = codigo_organizador;
    }
    public Integer getCodigo_productor() {
        return codigo_productor;
    }
    public void setCodigo_productor(Integer codigo_productor) {
        this.codigo_productor = codigo_productor;
    }
    public Integer getCodigo_proponente() {
        return codigo_proponente;
    }
    public void setCodigo_proponente(Integer codigo_proponente) {
        this.codigo_proponente = codigo_proponente;
    }
    public String getNombre_organizador() {
        return nombre_organizador;
    }
    public void setNombre_organizador(String nombre_organizador) {
        this.nombre_organizador = nombre_organizador;
    }
    public String getNombre_productor() {
        return nombre_productor;
    }
    public void setNombre_productor(String nombre_productor) {
        this.nombre_productor = nombre_productor;
    }
    public String getNombre_proponente() {
        return nombre_proponente;
    }
    public void setNombre_proponente(String nombre_proponente) {
        this.nombre_proponente = nombre_proponente;
    }

}

存储过程的查询是这样的:

if @tipo="Productor_x_Organizador"
        select distinct cod_productor as Codigo_Productor, nombre_productor as Nombre_Productor
        from resumen_vigentes
        where cod_organizador = @codigo

谁能告诉我出了什么问题?谢谢!

4

0 回答 0