Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HQL休眠许多表_Java_Hibernate_Hql - Fatal编程技术网

Java HQL休眠许多表

Java HQL休眠许多表,java,hibernate,hql,Java,Hibernate,Hql,我是新来hibernate的,我试着从4张表中列出一个列表, 但它不起作用 public List<DocumentoAssinanteTO> listAssinanteSemImagemByDocument(DocumentoTO documento, UsuarioDepartamentoTO ud) { StringBuilder hql = new StringBuilder(); hql.append(" SELECT DA.id, "); hql.

我是新来hibernate的,我试着从4张表中列出一个列表, 但它不起作用

public List<DocumentoAssinanteTO> listAssinanteSemImagemByDocument(DocumentoTO documento, UsuarioDepartamentoTO ud) {
    StringBuilder hql = new StringBuilder();
    hql.append(" SELECT DA.id, ");
    hql.append(" DOC.id,");
    hql.append(" UD.id, ");
    hql.append(" D.id, ");
    hql.append(" U.id, ");
    hql.append(" U.nome,");
    hql.append(" FROM ").append(DocumentoAssinanteTO.class.getName()).append(" DA ");
    hql.append(" INNER JOIN DA.documento DOC ");
    hql.append(" INNER JOIN DA.usuarioDepartamento UD ");
    hql.append(" INNER JOIN UD.usuario              U");
    hql.append(" INNER JOIN UD.departamento         D");
    hql.append(" WHERE DOC = :idDocumento AND UD = :idUserDep ");
    hql.append(" AND U.assinatura IS NULL ");


    Query query = queryTransform(hql.toString());
    query.setLong("idDocumento", documento.getId());
    query.setLong("idUserDep", ud.getId());

    return query.list();
}

首先,您的问题还没有完全解决,请首先在这里定义您的数据库模型,从您的查询中我知道了这一点

 hql.append(" DOC.id, "); 
最后一次昏迷将不在此处添加 hql.append DOC.id

这里

您不需要通过调用class.getname方法来获取类名,您只需在这里调用bean或模型名即可


你的内部连接有很多问题。

好的,我让它工作了,做了一些调整

公共列表列表助理ESEMImageByDocument文档To documento{ StringBuilder hql=新的StringBuilder; hql.append选择DA.id; hql.append DOC.id,; hql.append UD.id; hql.append U.id; hql.U.nome; hql.append FROM.appendDocumentoAssinanteTO.class.getName.append DA; hql.append JOIN DA.documento DOC; hql.append JOIN DA.usuariodepartmento UD; hql.append加入UD.usuario U; hql.append,其中DOC=:idDocumento; hql.append和U.assinatura为空

    Query query = queryTransform(hql.toString());
    query.setLong("idDocumento", documento.getId());

    return query.list();

}
真正的问题是这里的最后一个逗号。呵呵


hql.append U.nome,;

连接解释:由于它不是本机查询,您是否先在sql server中以本机形式尝试了它,以查看它是否正在运行??原因连接+hql我以前遇到过问题您的文档可能是一个对象,您将其与收到的long.Post错误进行比较。此外,如果您向我提供了架构和模型的结构,请名称如果您使用JPA或Hibernate,我会发现很好的帮助您
hql.append(" FROM ").append(DocumentoAssinanteTO.class.getName()).append(" DA ");
    Query query = queryTransform(hql.toString());
    query.setLong("idDocumento", documento.getId());

    return query.list();

}