我不知道在hibernate状态下是否有可能。
我可以使用Hibernate的getSession()获得一个Bean类型(尚未映射)的列表吗?
我正在尝试从查询中获取两个值。这些值来自差异表。我已经完成查询,但是当我尝试执行getSession时,它说未映射我的班级。我没有映射它,因为没有要映射的表。我创建了一个名为ObjetivoAdapter的类,其中包含两个字符串(需要在列表中输入的信息)。我也创建了该类,因为我需要我的信息列表。
这些是我从中获得信息的表:
表:producto。列:描述。列:codigo_barras
表:objetivo。列:codigo_barras_objetivo(带有表producto中的codigo_barras的FK)。列: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; }
任何帮助将不胜感激。
使用setResultTransformer(AliasToBeanResultTransformer)代替,addEntity()一切都应该没问题
setResultTransformer(AliasToBeanResultTransformer)
addEntity()