首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HQL Hibernate许多表

HQL Hibernate许多表
EN

Stack Overflow用户
提问于 2014-09-30 11:43:56
回答 2查看 166关注 0票数 0

我刚开始使用hibernate,我正在尝试从4个表中列出一个列表,但它不起作用。

代码语言:javascript
复制
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();
}

也许是连接部分,不知道我应该使用内部,左边还是只是连接

我想创建一个像这个sql的hql。

代码语言:javascript
复制
 SELECT docass.id_documento_assinante,doc.id,
        docass.id_user_depto,u.id,u.nome
FROM DCF_DOCUMENTO_ASSINANTE as docass
JOIN DCF_CONTENT as doc ON doc.id = docass.id_documento
JOIN DCF_USUARIO_DEPARTAMENTO as userDep ON userDep.id = docass.id_user_depto
JOIN DCF_USUARIOS as u  ON u.id = userDep.id_usuario
WHERE u.id_anexo_assinatura is null
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-30 13:10:36

好的,我开始工作了,做了一些调整

公共列表listAssinanteSemImagemByDocument(DocumentoTO documento) { StringBuilder hql =新的StringBuilder();hql.append(“选择DA.id ");hql.append(”DOC.id ");hql.append(“UD.id ");hql.append(”U.id ");hql.append(“U.nome ");").append(DocumentoAssinanteTO.class.getName()).append(“hql.append(”FROM DA.documento DA ");hql.append(“DA.documento DOC");hql.append(”hql.append DA.usuarioDepartamento UD");hql.append(“JOIN UD.usuario U");hql.append(”其中DOC = :idDocumento ");hql.append(“和U.assinatura为空");

代码语言:javascript
复制
    Query query = queryTransform(hql.toString());
    query.setLong("idDocumento", documento.getId());

    return query.list();

}

真正的问题就在这里,最后一个逗号。哈哈

hql.append(“U.nome,”)

票数 0
EN

Stack Overflow用户

发布于 2014-09-30 12:22:33

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

代码语言:javascript
复制
 hql.append(" DOC.id, "); 

最后一次昏迷不会在这里添加hql.append(“DOC.id ");

这里

代码语言:javascript
复制
hql.append(" FROM ").append(DocumentoAssinanteTO.class.getName()).append(" DA ");

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

在你们的内在连接中有很多问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26120005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档