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