HQL Hibernate many tables

Johnny Santana

I'm new to hibernate, and i'm trying to make a list out of 4 tables, but it's not working.

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();
}

maybe it's the JOIN part, don't know if i should use INNER, LEFT or just JOIN

I want to create a hql like this sql

 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
Johnny Santana

Ok, i got it working, made some adjusts

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

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

    return query.list();

}

the real problem was here the last comma. hehe

hql.append(" U.nome,");

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

HQL many to many between 3 tables

From Dev

Hibernate HQl to join two level tables

From Dev

How to query join one to many in hibernate HQL

From Dev

HQL equivalent query to criteria query in hibernate many to many relationship?

From Dev

HQL equivalent query to criteria query in hibernate many to many relationship?

From Dev

Hibernate one class to many tables

From Dev

Hibernate creating redundant many-to-many tables

From Dev

retrieve value from One-To-Many relationship Hibernate Without HQL

From Dev

Specifying multiple one-to-many relationships between tables in Hibernate

From Dev

Inserting to One to Many Relational tables in Single Session Using Hibernate

From Dev

Using JPQL(not HQL) with Hibernate

From Dev

Configuring Hibernate for HQL

From Dev

hibernate HQL Query select

From Dev

Hibernate: HQL is not working

From Dev

Hibernate - HQL parameters passing

From Dev

Hibernate HQL injection example

From Dev

Join two tables HQL query

From Dev

hibernate fetch lazy: Initialize() or HQL

From Dev

Hibernate HQL: Left Join with OnetoOne

From Dev

HQL Query fails in Hibernate MySQL

From Dev

Hibernate HQL : no entity found for query

From Dev

Hibernate chokes on this HQL cross join

From Dev

Simple HQL Query and Criteria in Hibernate

From Dev

HQL Query fails in Hibernate MySQL

From Dev

Hibernate HQL : no entity found for query

From Dev

Query Hibernate or HQL not return result

From Dev

Hibernate HQL unexpected token with Likes

From Dev

Hibernate HQL: is JOIN really necessary?

From Dev

HQL many to many query in the same class