複数の内部結合を含むクエリを作成したので、mysql ワークベンチで実行すると完全に機能しますが、アプリケーションを実行すると次のようになります。
Advertencia: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.proximate.dto.OriginadorDetalleDTO
javax.el.ELException: java.lang.ClassCastException: [Ljava.lang.Object; com.proximate.dto.OriginadorDetalleDTO にキャストできません
クエリを実行する私のメソッドは次のとおりです。
@Override
public List<OriginadorDetalleDTO> getOriginadorDetalles(OriginadorDTO originador) throws DAOException {
Query query = getSessionFactory().getCurrentSession().createSQLQuery("SELECT COUNT(*) as NUM_GESTORES_ACTIVOS, M.ME_CVE_MSJ, " +
" M.ME_DESCRIP, J.GESTORES_PERMITIDOS \n" +
" FROM gestores G \n" +
" INNER JOIN usuarios U ON G.ID_SUPERVISOR = U.id\n" +
" INNER JOIN mensajerias M ON U.ID_ORGANIZACION = M.ME_CVE_MSJ\n" +
" INNER JOIN originadores O ON O.ID_SIAM = M.ME_CVE_CLIENTE\n" +
" INNER JOIN mensajerias_gestores J ON J.ME_CVE_MSJ = M.ME_CVE_MSJ\n" +
" WHERE U.ID_NIVEL = 4\n" +
" AND ID_SIAM = :idSiam\n" +
" GROUP BY M.ME_CVE_MSJ, M.ME_DESCRIP, J.GESTORES_PERMITIDOS");
query.setParameter("idSiam", originador.getIdSIAM());
List<OriginadorDetalleDTO> list = query.list();
return list;
}
そしてここに私の豆があります:
public class OriginadorDetalleDTO {
private String idMensajeria;
private String descMensajeria;
private int numGestores;
private int numGestoresActivos;
public String getIdMensajeria() {
return idMensajeria;
}
public void setIdMensajeria(String idMensajeria) {
this.idMensajeria = idMensajeria;
}
public String getDescMensajeria() {
return descMensajeria;
}
public void setDescMensajeria(String descMensajeria) {
this.descMensajeria = descMensajeria;
}
public int getNumGestores() {
return numGestores;
}
public void setNumGestores(int numGestores) {
this.numGestores = numGestores;
}
public int getNumGestoresActivos() {
return numGestoresActivos;
}
public void setNumGestoresActivos(int numGestoresActivos) {
this.numGestoresActivos = numGestoresActivos;
}
}
なぜそのエラーが発生するのか誰かが知っていますか?? 前もって感謝します。