Problem retrieving data from the DB
adriju Jan 4, 2008 3:35 AMHi 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.