1

我不知道这在hibernate中是否可行。

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

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

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

表:产品。栏目:描述。栏目:codigo_barras

表:目标。列:codigo_barras_objetivo(FK 与表 producto 中的 codigo_barras)。列:promocion_id(带有来自表 promocion 的 id 的 FK)

表:促销列:id

这是我的类 bean ObjetivoAdapter:

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;
    }

任何帮助将不胜感激。

4

1 回答 1

2

使用 asetResultTransformer(AliasToBeanResultTransformer)而不是,addEntity()一切都应该没问题

于 2013-08-02T20:42:01.927 回答