Java 获取bean类型的列表,而不在Hibernate中映射

Java 获取bean类型的列表,而不在Hibernate中映射,java,hibernate,list,Java,Hibernate,List,我不知道这在hibernate中是否可能 我可以用Hibernate的getSession()获取bean类型(尚未映射)的列表吗 我要做的是从一个查询中获取两个值。这些值来自不同的表。我已经完成了查询,但是当我尝试执行getSession时,它说我的类没有映射。 我不映射它,因为没有要映射的表。我创建了一个名为objetivodapter的类,它包含两个字符串(我需要将信息放入列表中)。 我还创建了这个类,因为我需要一个信息列表 这些是我从中获得信息的表格: 表:producto。 列:des

我不知道这在hibernate中是否可能

我可以用Hibernate的getSession()获取bean类型(尚未映射)的列表吗

我要做的是从一个查询中获取两个值。这些值来自不同的表。我已经完成了查询,但是当我尝试执行getSession时,它说我的类没有映射。 我不映射它,因为没有要映射的表。我创建了一个名为objetivodapter的类,它包含两个字符串(我需要将信息放入列表中)。 我还创建了这个类,因为我需要一个信息列表

这些是我从中获得信息的表格:

表:producto。 列:description。 专栏:codigo_barras

表:objetivo。 列:codigo_barras_objetivo(表producto中带有codigo_barras的FK)。 列:promocion_id(具有表promocion中的id的FK)

表:Promotion 列:id

这是我的类bean objetivodapter:

public class ObjetivoAdapter {

    private String nombreProducto;
    private String codigoBarrasObjetivo;

    public void ObjetivoAdapter(String nombreProducto, String codigoBarrasObjetivo) {
        this.nombreProducto = nombreProducto;
        this.codigoBarrasObjetivo = codigoBarrasObjetivo;
    }

    public String getCodigoBarrasObjetivo() {
        return codigoBarrasObjetivo;
    }

    public void setCodigoBarrasObjetivo(String codigoBarrasObjetivo) {
        this.codigoBarrasObjetivo = codigoBarrasObjetivo;
    }

    public String getNombreProducto() {
        return nombreProducto;
    }

    public void setNombreProducto(String nombreProducto) {
        this.nombreProducto = nombreProducto;
    }

}
这是我的问题:

public List<ObjetivoAdapter> getInfo(String codBarras) {
        String sql = "SELECT o.codigo_barras_objetivo, p.descripcion_corta FROM objetivo o "
                + "INNER JOIN producto p ON o.codigo_barras_objetivo = p.codigo_barras "
                + "INNER JOIN promocion pr ON o.promocion_id = pr.id "
                + "WHERE codigo_barras = ' " + codBarras + "';";
        List<ObjetivoAdapter> listaOA = getSession().createSQLQuery(sql).addEntity(ObjetivoAdapter.class).list();
        return listaOA;
    }
public List getInfo(字符串codBarras){
String sql=“选择o.codigo\u barras\u objetivo,p.description\u corta FROM objetivo”
+“o.codigo_barras_objetivo=p.codigo_barras上的内部联接乘积p”
+“o.promocion_id=pr.id上的内部联接promocion pr”
+“其中codigo_barras=”+codBarras+“;”;
List listaOA=getSession().createSQLQuery(sql).addEntity(objetivodapter.class).List();
返回列表A;
}

任何帮助都将不胜感激。

请使用
setResultTransformer(别名为BeanResultTransformer)
而不是
addEntity()
,一切都会很好的

谢谢您的帮助。我得到了相同的错误:{org.hibernate.MappingException:JDBC类型没有方言映射:-1更改方言或检查SQLQuery.addScalar()以强制hibernate将您的数据库类型映射到已知的hibernate类型。我认为hibernate.STRING可以。或者您可以应用cast()如果这些解决方案不能解决您的问题,您必须调试一个与addScalar一起工作的BITT,但现在它说结果不能转换为java.lang.ClassCastException:org.hibernate.impl.SQLQueryImpl不能转换为java.util.List无论如何,问题是用addScalar回答的。