Java 休眠错误:HH000091

Java 休眠错误:HH000091,java,hibernate,Java,Hibernate,我刚开始冬眠。我的目标是将查询结果获取到ArrayList,但我不断得到错误:hh000091:预期类型:int,实际值:org.hibernate.collection.internal.PersistentSet 我坚信问题出在我的地图上,任何帮助都将不胜感激 错误 错误:HH000123:类中存在IllegalArgumentException:com.mycompany.mavenproject1.Medicamento,属性的setter方法:labJoin 2017年4月7日上午10

我刚开始冬眠。我的目标是将查询结果获取到ArrayList,但我不断得到错误:hh000091:预期类型:int,实际值:org.hibernate.collection.internal.PersistentSet

我坚信问题出在我的地图上,任何帮助都将不胜感激

错误

错误:HH000123:类中存在IllegalArgumentException:com.mycompany.mavenproject1.Medicamento,属性的setter方法:labJoin 2017年4月7日上午10:23:10 org.hibernate.property.BasicPropertyAccessor$BasicSetter 错误:HH000091:预期类型:int,实际值:org.hibernate.collection.internal.PersistentSet

我的HQL查询:

from Medicamento as m left join from Laboratorio as l where l.codigoLab=m.codigoLab
映射XML:

<class name="com.mycompany.mavenproject1.Medicamento" table="MEDICAMENTO" schema="ADMINFARMACIA" optimistic-lock="version">
  <id name="codigoMed" type="long">
            <column name="CODIGO_MED" not-null="true"/>
            <generator class="assigned" />
        </id>
        <property name="nombreComercial" type="string">
            <column name="NOMBRE_COMERCIAL" length="100" not-null="true" />
        </property>
        <property name="codigoPrincipio" type="string">
            <column name="CODIGO_PRINCIPIO" length="50" not-null="true" />
        </property>
        <property name="stockMinimo" type="java.lang.Integer">
            <column name="STOCK_MINIMO" />
        </property>
        <property name="codigoLab" type="java.lang.Integer">
            <column name="CODIGO_LAB"  />
        </property>
        <property name="comentario" type="string">
            <column name="COMENTARIO" length="1000" />
        </property>
        <property name="existencias" type="java.lang.Integer">
            <column name="EXISTENCIAS"/>
        </property>
        <set name="labJoin"  fetch="join">          
            <key column="CODIGO_LAB" />
            <one-to-many class="com.mycompany.mavenproject1.Laboratorio"/>
        </set>
</class>
java-在这一个labJoin和labName是“Laboratorio”表上的字段

}

调用方法

private void displayResult(List rl){
            ArrayList<Object> oneRow = new ArrayList<Object>();
            for (Object o: rl){
                Medicamento medList = (Medicamento)o;
                System.out.println(labList.getCodigoLab());
                oneRow.add(medList.getCodigoMed());
                oneRow.add(medList.getExistencias());
                oneRow.add(medList.getNombreComercial());
                oneRow.add(medList.getLabJoin());
            }
            LowStockTableModel model = new LowStockTableModel(oneRow);
            try{
                jTable1.setModel(model);
            }
            catch (Exception e){
                JOptionPane.showMessageDialog(null, e.getLocalizedMessage(),"Error",JOptionPane.ERROR_MESSAGE);
                jTextField1.setText("");
            }
        }
private void displayResult(列表rl){
ArrayList oneRow=新的ArrayList();
用于(对象o:rl){
药物列表=(药物)o;
System.out.println(labList.getCodigoLab());
add(medList.getCodigoMed());
add(medList.getExistencias());
add(medList.getnombrecomeral());
add(medList.getLabJoin());
}
LowStockTableModel=新的LowStockTableModel(oneRow);
试一试{
jTable1.setModel(model);
}
捕获(例外e){
showMessageDialog(null,例如getLocalizedMessage(),“Error”,JOptionPane.Error\u消息);
jTextField1.setText(“”);
}
}

在映射中,您有

<set name="labJoin"  fetch="join">          
        <key column="CODIGO_LAB" />
        <one-to-many class="com.mycompany.mavenproject1.Laboratorio"/>
    </set>

但是属性labJoin的类型为int。此属性的类型必须为
Set

private void displayResult(List rl){
            ArrayList<Object> oneRow = new ArrayList<Object>();
            for (Object o: rl){
                Medicamento medList = (Medicamento)o;
                System.out.println(labList.getCodigoLab());
                oneRow.add(medList.getCodigoMed());
                oneRow.add(medList.getExistencias());
                oneRow.add(medList.getNombreComercial());
                oneRow.add(medList.getLabJoin());
            }
            LowStockTableModel model = new LowStockTableModel(oneRow);
            try{
                jTable1.setModel(model);
            }
            catch (Exception e){
                JOptionPane.showMessageDialog(null, e.getLocalizedMessage(),"Error",JOptionPane.ERROR_MESSAGE);
                jTextField1.setText("");
            }
        }
<set name="labJoin"  fetch="join">          
        <key column="CODIGO_LAB" />
        <one-to-many class="com.mycompany.mavenproject1.Laboratorio"/>
    </set>