public Categoria getCategoria() { return categoria; }
public void setCategoria(Categoria categoria) { this.categoria = categoria; }
public String getMarca() { return marca; }
public void setMarca(String marca) { this.marca = marca; }
@Override public String toString() { return marca; } }
CategoriaDao public class Categoria extends EntidadBase {
private String nombre;
public String getNombre() { return nombre; }
public void setNombre(String nombre) { this.nombre = nombre; }
@Override public String toString() { return nombre; } }
El metodo findByExample public <T> List<T> findByExample(T entity) throws RuntimeException { makeEntity(); List<T> lista = null; Example example = null; try { example = Example.create(entity).ignoreCase().enableLike(MatchMode.ANYWHERE). excludeZeroes();
Criteria crit = session.createCriteria(entity.getClass()); crit.add(example); lista=crit.list(); } catch (Exception e) { System.out.println("ERROR BY EXAMPLE: "); e.printStackTrace(); throw new RuntimeException("Error al realizar la consulta "+e.getMessage()); } finally { return lista; } }
el problema es que cuando hago lo siguiente: Equipo eq=new Equipo(); Categoria cat=JpaQ.findByParam(Categoria.class,"id",1); System.out.print(cat)//-------->SI ENCUENTRA LA CATEGORIA E IMPRIME EL NOMBRE eq.setCategoria(cat) System.out.print(JpaQ.findByExample(eq));
no muestra ningún resultado y deberia mostrarme todos los equipos de la categoria 1
pero cuando le doy un nombre a la marca del equipo, me muestra resultados incluyendo otras categorias. que podra estar sucediendo???
Tengo lo siguiente:
EquipoDao
public class Equipo extends EntidadBase {
private String marca;
@NotNull(message = "Debe seleccionar una categoria")
@ManyToOne
private Categoria categoria;
public Categoria getCategoria() {
return categoria;
}
public void setCategoria(Categoria categoria) {
this.categoria = categoria;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
@Override
public String toString() {
return marca;
}
}
CategoriaDao
public class Categoria extends EntidadBase {
private String nombre;
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
@Override
public String toString() {
return nombre;
}
}
El metodo findByExample
public <T> List<T> findByExample(T entity) throws RuntimeException {
makeEntity();
List<T> lista = null;
Example example = null;
try {
example = Example.create(entity).ignoreCase().enableLike(MatchMode.ANYWHERE).
excludeZeroes();
Criteria crit = session.createCriteria(entity.getClass());
crit.add(example);
lista=crit.list();
} catch (Exception e) {
System.out.println("ERROR BY EXAMPLE: ");
e.printStackTrace();
throw new RuntimeException("Error al realizar la consulta "+e.getMessage());
} finally {
return lista;
}
}
el problema es que cuando hago lo siguiente:
Equipo eq=new Equipo();
Categoria cat=JpaQ.findByParam(Categoria.class,"id",1);
System.out.print(cat)//-------->SI ENCUENTRA LA CATEGORIA E IMPRIME EL NOMBRE
eq.setCategoria(cat)
System.out.print(JpaQ.findByExample(eq));
no muestra ningún resultado y deberia mostrarme todos los equipos de la categoria 1
pero cuando le doy un nombre a la marca del equipo, me muestra resultados incluyendo otras categorias.
que podra estar sucediendo???