Hibernate Books

All times are UTC - 5 hours [ DST ]



Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Help with query Criteria Hibernare
PostPosted: Sat Jun 10, 2017 5:58 pm 
Newbie

Joined: Sat Jun 10, 2017 5:49 pm
Posts: 1
This is my query in the database:

<code>
select *
from seguridad.permisos_usuarios pu
join seguridad.grupo_roles gr on gr.idgrupo_permiso = pu.idgrupo_permiso
join seguridad.usuarios u on gr.idusuario = u.idusuario
join seguridad.grupos_permisos gp on gp.idgrupo_permiso = gr.idgrupo_permiso
join configuracion.empresas e on e.idempresa = gr.idempresa
join seguridad.rol r on r.idrol = pu.idrol
where u.idusuario = 1
and e.idempresa = 1
and r.idrol = 1
</code>

In Java i have this:

<code>
List<Permisos_Usuarios> lista = sesion.createCriteria(Permisos_Usuarios.class, "pu")
.createAlias("pu.grupo_roles", "gr")
.createAlias("pu.grupo_permiso", "gp")
.createAlias("gr.usuarios", "u")
.createAlias("gp.empresa", "e")
.createAlias("pu.rol", "r")
.createAlias("r.modulo", "m")
.add(Restrictions.eq("e.empresa", empresa))
.add(Restrictions.eq("u.usuario", usuario))
.add(Restrictions.eq("r.rol", 1))
.list();
</code>

The error, i want to map in grupo_roles idgrupo_permiso like the database query.

<code>
Exception in thread "AWT-EventQueue-0" org.hibernate.QueryException: could not resolve property: grupo_roles of: entidades.Seguridad.Permisos_Usuarios
</code>

Mapping Class Grupo_Roles:

<code>
<hibernate-mapping>
<class name="entidades.Seguridad.Grupo_Roles" table="grupo_roles" schema="seguridad">
<id column="idgrupo_roles" name="idgrupo_roles">
</id>
<many-to-one cascade="save-update" class="entidades.Seguridad.Grupos_Permisos" column="idgrupo_permiso" fetch="select" name="grupo_permiso">
</many-to-one>
<many-to-one cascade="save-update" class="entidades.Seguridad.Usuarios" column="idusuario" fetch="select" name="usuario">
</many-to-one>
<many-to-one cascade="save-update" class="entidades.Configuracion.Empresas" column="idempresa" fetch="select" name="empresa">
</many-to-one>
</class>
</hibernate-mapping>
</code>

Mapping Class Permisos_Usuarios
<code>
<hibernate-mapping>
<class name="entidades.Seguridad.Permisos_Usuarios" table="permisos_usuarios" schema="seguridad">
<id column="idpermiso_usuario" name="idpermiso_usuario">
</id>
<many-to-one cascade="save-update" class="entidades.Seguridad.Grupos_Permisos" column="idgrupo_permiso" fetch="select" name="grupo_permiso">
</many-to-one>
<many-to-one cascade="save-update" class="entidades.Seguridad.Rol" column="idrol" fetch="select" name="rol">
</many-to-one>
<property name="nuevo"/>
<property name="editar"/>
<property name="eliminar"/>
<property name="buscar"/>
<property name="imprimir"/>
<property name="estado"/>
</class>
</hibernate-mapping>
</code>

Mapping Class Grupos_Permisos:
<code>
<hibernate-mapping>
<class name="entidades.Seguridad.Grupos_Permisos" table="grupos_permisos" schema="seguridad">
<id column="idgrupo_permiso" name="idgrupo_permiso">
</id>
<property name="codigo"/>
<property name="grupo_permiso"/>
<many-to-one cascade="save-update" class="entidades.Configuracion.Empresas" column="idempresa" fetch="select" name="empresa">
</many-to-one>
<set fetch="select" inverse="true" lazy="true" name="grupo_roles" table="grupo_roles">
<key>
<column name="idgrupo_permiso"/>
</key>
<one-to-many class="entidades.Seguridad.Grupo_Roles"/>
</set>

<set fetch="select" inverse="true" lazy="true" name="permisos_usuarios" table="permisos_usuarios">
<key>
<column name="idgrupo_permiso"/>
</key>
<one-to-many class="entidades.Seguridad.Permisos_Usuarios"/>
</set>
</class>
</hibernate-mapping>
</code>
Class Grupo_Roles:
<code>
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package entidades.Seguridad;

import entidades.Configuracion.Empresas;
import java.io.Serializable;

public class Grupo_Roles implements Serializable{

long idgrupo_roles;
Grupos_Permisos grupo_permiso;
Usuarios usuario;
Empresas empresa;

public Grupo_Roles() {

}

public Grupo_Roles(Grupos_Permisos grupo_permiso, Usuarios usuario,Empresas empresa) {
this.grupo_permiso = grupo_permiso;
this.usuario = usuario;
this.empresa = empresa;
}

public long getIdgrupo_roles() {
return idgrupo_roles;
}

public void setIdgrupo_roles(long idgrupo_roles) {
this.idgrupo_roles = idgrupo_roles;
}

public Grupos_Permisos getGrupo_permiso() {
return grupo_permiso;
}

public void setGrupo_permiso(Grupos_Permisos grupo_permiso) {
this.grupo_permiso = grupo_permiso;
}

public Usuarios getUsuario() {
return usuario;
}

public void setUsuario(Usuarios usuario) {
this.usuario = usuario;
}

public Empresas getEmpresa() {
return empresa;
}

public void setEmpresa(Empresas empresa) {
this.empresa = empresa;
}

}
</code>

Clase Grupos_Permisos
<code>
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package entidades.Seguridad;

import entidades.Configuracion.Empresas;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;


public class Grupos_Permisos implements Serializable{
long idgrupo_permiso;
long codigo;
String grupo_permiso;
Empresas empresa;
private Set grupo_roles = new HashSet(0);
private Set permisos_usuarios = new HashSet(0);

public Grupos_Permisos() {
}

public Grupos_Permisos(String grupo_permiso, Empresas empresa) {
this.grupo_permiso = grupo_permiso;
this.empresa = empresa;
}

public long getIdgrupo_permiso() {
return idgrupo_permiso;
}

public void setIdgrupo_permiso(long idgrupo_permiso) {
this.idgrupo_permiso = idgrupo_permiso;
}

public long getCodigo() {
return codigo;
}

public void setCodigo(long codigo) {
this.codigo = codigo;
}

public String getGrupo_permiso() {
return grupo_permiso;
}

public void setGrupo_permiso(String grupo_permiso) {
this.grupo_permiso = grupo_permiso;
}

public Empresas getEmpresa() {
return empresa;
}

public void setEmpresa(Empresas empresa) {
this.empresa = empresa;
}

public Set getGrupo_roles() {
return grupo_roles;
}

public void setGrupo_roles(Set grupo_roles) {
this.grupo_roles = grupo_roles;
}

public Set getPermisos_usuarios() {
return permisos_usuarios;
}

public void setPermisos_usuarios(Set permisos_usuarios) {
this.permisos_usuarios = permisos_usuarios;
}

@Override
public String toString() {
return grupo_permiso;
}

}
</code>

Class Permisos_Usuarios:
<code>
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package entidades.Seguridad;

public class Permisos_Usuarios {

long idpermiso_usuario;
Grupos_Permisos grupo_permiso;
Rol rol;
String nuevo;
String editar;
String eliminar;
String buscar;
String imprimir;
String estado;

public Permisos_Usuarios() {
}

public Permisos_Usuarios(Grupos_Permisos grupo_permiso, Rol rol, String nuevo, String editar, String eliminar, String buscar, String imprimir, String estado) {
this.grupo_permiso = grupo_permiso;
this.rol = rol;
this.nuevo = nuevo;
this.editar = editar;
this.eliminar = eliminar;
this.buscar = buscar;
this.imprimir = imprimir;
this.estado = estado;
}

public long getIdpermiso_usuario() {
return idpermiso_usuario;
}

public void setIdpermiso_usuario(long idpermiso_usuario) {
this.idpermiso_usuario = idpermiso_usuario;
}

public Grupos_Permisos getGrupo_permiso() {
return grupo_permiso;
}

public void setGrupo_permiso(Grupos_Permisos grupo_permiso) {
this.grupo_permiso = grupo_permiso;
}

public Rol getRol() {
return rol;
}

public void setRol(Rol rol) {
this.rol = rol;
}

public String getNuevo() {
return nuevo;
}

public void setNuevo(String nuevo) {
this.nuevo = nuevo;
}

public String getEditar() {
return editar;
}

public void setEditar(String editar) {
this.editar = editar;
}

public String getEliminar() {
return eliminar;
}

public void setEliminar(String eliminar) {
this.eliminar = eliminar;
}

public String getBuscar() {
return buscar;
}

public void setBuscar(String buscar) {
this.buscar = buscar;
}

public String getImprimir() {
return imprimir;
}

public void setImprimir(String imprimir) {
this.imprimir = imprimir;
}

public String getEstado() {
return estado;
}

public void setEstado(String estado) {
this.estado = estado;
}

}
</code>


Top
 Profile  
 
 Post subject: Re: Help with query Criteria Hibernare
PostPosted: Wed Aug 23, 2017 5:59 am 
Hibernate Team
Hibernate Team

Joined: Thu Sep 11, 2014 2:50 am
Posts: 1386
Hibernate Criteria is deprecated and no longer supported. It's time to switch to JPA Criteria API as there is no development going on for the legacy one.

_________________
If you liked my answer, you are going to love my High-Performance Java Persistence book and my blog as well.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.