我不知道這是甚至可能在休眠。獲取沒有被映射到Hibernate中的bean類型列表
我可以通過Hibernate的getSession()獲取bean類型列表(尚未映射)嗎?
我想要做的是從查詢中獲取兩個值。這些值來自不同的表格。我已經完成了我的查詢,但是當我嘗試執行getSession時,它說我的類沒有被映射。 我不映射它,因爲沒有要映射的表。我創建了一個名爲ObjetivoAdapter的類,其中包含兩個字符串(我需要放入列表中的信息)。 另外我創建了這個類,因爲我需要我的信息列表。
這些是我從中獲得信息的表格:
表:producto。 列:descripcion。 列:codigo_barras
表:objetivo。 列:codigo_barras_objetivo(FK與表producto的codigo_barras)。 柱:promocion_id(FK從表promocion ID)
表:promocion 列: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;
}
任何幫助將不勝感激。
感謝您的幫助。我遇到了同樣的錯誤:{org.hibernate.MappingException:對於JDBC類型,沒有Dialect映射:-1 – Blackmore
更改方言或檢查SQLQuery.addScalar()強制Hibernate將數據庫類型映射到衆所周知的Hibernate類型。我認爲Hibernate.STRING會很好。或者你可以在你的sql中應用一個cast()。如果這些解決方案不能解決您的問題,您必須調試一下 –
它與addScalar一起工作,但現在說結果不能被鑄造java.lang.ClassCastException:org.hibernate.impl.SQLQueryImpl不能轉換爲java.util無論如何,問題是用addScalar回答的。 – Blackmore