1 Reply Latest reply on Jan 10, 2008 4:11 AM by Adrián Juan Heredia

    Problem retrieving data from the DB

    Adrián Juan Heredia Newbie

      Hi people!!

      I´ve got the following tables in my DB Oracle 9:

      USUARIOS

      Name Null? Type
      --------------------------------------------- -------- -----------
      COD_USUARIO NOT NULL NUMBER(10)
      NOMBRE_USUARIO VARCHAR2(60)
      PRIORIDAD_USUARIO NUMBER(3)
      PASSWORD_USUARIO VARCHAR2(12)
      FILTRO_USUARIO VARCHAR2(20)
      SNMP_USUARIO VARCHAR2(20)
      COD_GRUPOS_USUARIOS NOT NULL NUMBER(10)

      primary key (COD_USUARIO),foreign key (COD_GRUPOS_USUARIOS) references GRUPOS_USUARIOS(COD_GRUPOS_USUARIOS)

      GRUPOS_USUARIOS

      Name Null? Type
      --------------------------------------------- -------- ------------
      COD_GRUPOS_USUARIOS NOT NULL NUMBER(10)
      NOMBRE_GRUPOS_USUARIOS VARCHAR2(60)

      primary key (COD_GRUPOS_USUARIOS)


      I do not use any reverse engineering with these tables. Then I use generate-entities to create the entities and I obtain the following:

      @Entity
      @Table(name = "USUARIOS")
      public class Usuarios implements java.io.Serializable {
      
       private long codUsuario;
       private GruposUsuarios gruposUsuarios;
       private String nombreUsuario;
       private Short prioridadUsuario;
       private String passwordUsuario;
       private String filtroUsuario;
       private String snmpUsuario;
       private Set<TemispConfiguracion> temispConfiguracions = new HashSet<TemispConfiguracion>(
       0);
       private Set<FiltrosFichas> filtrosFichases = new HashSet<FiltrosFichas>(0);
       private Set<Operacion> operacions = new HashSet<Operacion>(0);
       private Set<Macro> macros = new HashSet<Macro>(0);
       private Set<NuevaConfiguracion> nuevaConfiguracions = new HashSet<NuevaConfiguracion>(
       0);
       private Set<Grupo> grupos = new HashSet<Grupo>(0);
      
       public Usuarios() {
       }
      
       public Usuarios(long codUsuario, GruposUsuarios gruposUsuarios) {
       this.codUsuario = codUsuario;
       this.gruposUsuarios = gruposUsuarios;
       }
       public Usuarios(long codUsuario, GruposUsuarios gruposUsuarios,
       String nombreUsuario, Short prioridadUsuario,
       String passwordUsuario, String filtroUsuario, String snmpUsuario,
       Set<TemispConfiguracion> temispConfiguracions,
       Set<FiltrosFichas> filtrosFichases, Set<Operacion> operacions,
       Set<Macro> macros, Set<NuevaConfiguracion> nuevaConfiguracions,
       Set<Grupo> grupos) {
       this.codUsuario = codUsuario;
       this.gruposUsuarios = gruposUsuarios;
       this.nombreUsuario = nombreUsuario;
       this.prioridadUsuario = prioridadUsuario;
       this.passwordUsuario = passwordUsuario;
       this.filtroUsuario = filtroUsuario;
       this.snmpUsuario = snmpUsuario;
       this.temispConfiguracions = temispConfiguracions;
       this.filtrosFichases = filtrosFichases;
       this.operacions = operacions;
       this.macros = macros;
       this.nuevaConfiguracions = nuevaConfiguracions;
       this.grupos = grupos;
       }
      
       @Id
       @Column(name = "COD_USUARIO", unique = true, nullable = false, precision = 10, scale = 0)
       @NotNull
       public long getCodUsuario() {
       return this.codUsuario;
       }
      
       public void setCodUsuario(long codUsuario) {
       this.codUsuario = codUsuario;
       }
       @ManyToOne(fetch = FetchType.LAZY)
       @JoinColumn(name = "COD_GRUPOS_USUARIOS", nullable = false)
       @NotNull
       public GruposUsuarios getGruposUsuarios() {
       return this.gruposUsuarios;
       }
      
       public void setGruposUsuarios(GruposUsuarios gruposUsuarios) {
       this.gruposUsuarios = gruposUsuarios;
       }
      
       @Column(name = "NOMBRE_USUARIO", length = 60)
       @Length(max = 60)
       public String getNombreUsuario() {
       return this.nombreUsuario;
       }
      
       public void setNombreUsuario(String nombreUsuario) {
       this.nombreUsuario = nombreUsuario;
       }
      
       @Column(name = "PRIORIDAD_USUARIO", precision = 3, scale = 0)
       public Short getPrioridadUsuario() {
       return this.prioridadUsuario;
       }
      
       public void setPrioridadUsuario(Short prioridadUsuario) {
       this.prioridadUsuario = prioridadUsuario;
       }
      
       @Column(name = "PASSWORD_USUARIO", length = 128)
       @Length(max = 128)
       public String getPasswordUsuario() {
       return this.passwordUsuario;
       }
      
       public void setPasswordUsuario(String passwordUsuario) {
       this.passwordUsuario = passwordUsuario;
       }
      
       @Column(name = "FILTRO_USUARIO", length = 20)
       @Length(max = 20)
       public String getFiltroUsuario() {
       return this.filtroUsuario;
       }
      
       public void setFiltroUsuario(String filtroUsuario) {
       this.filtroUsuario = filtroUsuario;
       }
      
       @Column(name = "SNMP_USUARIO", length = 20)
       @Length(max = 20)
       public String getSnmpUsuario() {
       return this.snmpUsuario;
       }
      
       public void setSnmpUsuario(String snmpUsuario) {
       this.snmpUsuario = snmpUsuario;
       }
       @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "usuarios")
       public Set<TemispConfiguracion> getTemispConfiguracions() {
       return this.temispConfiguracions;
       }
      
       public void setTemispConfiguracions(
       Set<TemispConfiguracion> temispConfiguracions) {
       this.temispConfiguracions = temispConfiguracions;
       }
       @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "usuarios")
       public Set<FiltrosFichas> getFiltrosFichases() {
       return this.filtrosFichases;
       }
      
       public void setFiltrosFichases(Set<FiltrosFichas> filtrosFichases) {
       this.filtrosFichases = filtrosFichases;
       }
       @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "usuarios")
       public Set<Operacion> getOperacions() {
       return this.operacions;
       }
      
       public void setOperacions(Set<Operacion> operacions) {
       this.operacions = operacions;
       }
       @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "usuarios")
       public Set<Macro> getMacros() {
       return this.macros;
       }
      
       public void setMacros(Set<Macro> macros) {
       this.macros = macros;
       }
       @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "usuarios")
       public Set<NuevaConfiguracion> getNuevaConfiguracions() {
       return this.nuevaConfiguracions;
       }
      
       public void setNuevaConfiguracions(
       Set<NuevaConfiguracion> nuevaConfiguracions) {
       this.nuevaConfiguracions = nuevaConfiguracions;
       }
       @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "usuarios")
       public Set<Grupo> getGrupos() {
       return this.grupos;
       }
      
       public void setGrupos(Set<Grupo> grupos) {
       this.grupos = grupos;
       }
      
      }


      For the table USUARIOS; and for GRUPOS_USUARIOS:
      @Entity
      @Table(name = "GRUPOS_USUARIOS")
      public class GruposUsuarios implements java.io.Serializable {
      
       private long codGruposUsuarios;
       private String nombreGruposUsuarios;
       private Set<Usuarios> usuarioses = new HashSet<Usuarios>(0);
       private Set<Filtros> filtroses = new HashSet<Filtros>(0);
       private Set<Equipos> equiposes = new HashSet<Equipos>(0);
      
       public GruposUsuarios() {
       }
      
       public GruposUsuarios(long codGruposUsuarios) {
       this.codGruposUsuarios = codGruposUsuarios;
       }
       public GruposUsuarios(long codGruposUsuarios, String nombreGruposUsuarios,
       Set<Usuarios> usuarioses, Set<Filtros> filtroses,
       Set<Equipos> equiposes) {
       this.codGruposUsuarios = codGruposUsuarios;
       this.nombreGruposUsuarios = nombreGruposUsuarios;
       this.usuarioses = usuarioses;
       this.filtroses = filtroses;
       this.equiposes = equiposes;
       }
      
       @Id
       @Column(name = "COD_GRUPOS_USUARIOS", unique = true, nullable = false, precision = 10, scale = 0)
       @NotNull
       public long getCodGruposUsuarios() {
       return this.codGruposUsuarios;
       }
      
       public void setCodGruposUsuarios(long codGruposUsuarios) {
       this.codGruposUsuarios = codGruposUsuarios;
       }
      
       @Column(name = "NOMBRE_GRUPOS_USUARIOS", length = 60)
       @Length(max = 60)
       public String getNombreGruposUsuarios() {
       return this.nombreGruposUsuarios;
       }
      
       public void setNombreGruposUsuarios(String nombreGruposUsuarios) {
       this.nombreGruposUsuarios = nombreGruposUsuarios;
       }
       @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "gruposUsuarios")
       public Set<Usuarios> getUsuarioses() {
       return this.usuarioses;
       }
      
       public void setUsuarioses(Set<Usuarios> usuarioses) {
       this.usuarioses = usuarioses;
       }
       @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "gruposUsuarios")
       public Set<Filtros> getFiltroses() {
       return this.filtroses;
       }
      
       public void setFiltroses(Set<Filtros> filtroses) {
       this.filtroses = filtroses;
       }
       @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "gruposUsuarios")
       public Set<Equipos> getEquiposes() {
       return this.equiposes;
       }
      
       public void setEquiposes(Set<Equipos> equiposes) {
       this.equiposes = equiposes;
       }
      
      }


      Until this point, everything is ok. The problem comes when I create a query from the table GRUPOS_USUARIOS in the Authenticator.java file:

      private GruposUsuarios grupos;
      
      [...]
      
      List results2 = em.createQuery("select grupos from GruposUsuarios grupos").getResultList();
      
      grupos = (GruposUsuarios) results2.get(0);
      


      This table contains more than one entry but this command does not obtain anything. When I debug in Eclipse I get:

      grupos = GruposUsuarios_$$_javassist_36 (id=385)

      Nevertheless, when I do this for the table USUARIOS I do not have any problem.

      Could anyone help me? Thanks.