Arregle la busqueda, la habia explotado antes
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -107,3 +107,5 @@ buildNumber.properties
|
||||
|
||||
# End of https://www.gitignore.io/api/maven
|
||||
|
||||
# cosas random que pasan
|
||||
nohup.out
|
||||
|
||||
@@ -8,6 +8,8 @@ import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.JoinTable;
|
||||
import javax.persistence.ManyToMany;
|
||||
import javax.persistence.Table;
|
||||
|
||||
@@ -22,7 +24,12 @@ public class Correo {
|
||||
@Column(name = "correo")
|
||||
private String correo;
|
||||
|
||||
@ManyToMany(mappedBy = "correos")
|
||||
@ManyToMany
|
||||
@JoinTable(
|
||||
name = "trabajador_correo",
|
||||
joinColumns = @JoinColumn(name = "correo_id", referencedColumnName = "id"),
|
||||
inverseJoinColumns = @JoinColumn(name = "trabajador_id", referencedColumnName = "id")
|
||||
)
|
||||
private List<Trabajador> trabajadores;
|
||||
|
||||
public Integer getId() {
|
||||
|
||||
@@ -8,6 +8,8 @@ import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.JoinTable;
|
||||
import javax.persistence.ManyToMany;
|
||||
import javax.persistence.Table;
|
||||
|
||||
@@ -26,7 +28,12 @@ public class Direccion {
|
||||
@Column(name = "numero")
|
||||
private String numero;
|
||||
|
||||
@ManyToMany(mappedBy = "direcciones")
|
||||
@ManyToMany
|
||||
@JoinTable(
|
||||
name = "trabajador_direccion",
|
||||
joinColumns = @JoinColumn(name = "direccion_id", referencedColumnName = "id"),
|
||||
inverseJoinColumns = @JoinColumn(name = "trabajador_id", referencedColumnName = "id")
|
||||
)
|
||||
private List<Trabajador> trabajadores;
|
||||
|
||||
public Integer getId() {
|
||||
|
||||
@@ -8,6 +8,8 @@ import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.JoinTable;
|
||||
import javax.persistence.ManyToMany;
|
||||
import javax.persistence.Table;
|
||||
|
||||
@@ -22,7 +24,12 @@ public class Telefono {
|
||||
@Column(name = "numero")
|
||||
private String numero;
|
||||
|
||||
@ManyToMany(mappedBy = "telefonos")
|
||||
@ManyToMany
|
||||
@JoinTable(
|
||||
name = "trabajador_telefono",
|
||||
joinColumns = @JoinColumn(name = "telefono_id", referencedColumnName = "id"),
|
||||
inverseJoinColumns = @JoinColumn(name = "trabajador_id", referencedColumnName = "id")
|
||||
)
|
||||
private List<Trabajador> trabajadores;
|
||||
|
||||
public Integer getId() {
|
||||
|
||||
@@ -9,8 +9,6 @@ import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.JoinTable;
|
||||
import javax.persistence.ManyToMany;
|
||||
import javax.persistence.OneToOne;
|
||||
import javax.persistence.Table;
|
||||
@@ -41,28 +39,13 @@ public class Trabajador {
|
||||
@OneToOne(mappedBy = "trabajador")
|
||||
private Usuario usuario;
|
||||
|
||||
@ManyToMany
|
||||
@JoinTable(
|
||||
name = "trabajador_correo",
|
||||
joinColumns = @JoinColumn(name = "trabajador_id", referencedColumnName = "id"),
|
||||
inverseJoinColumns = @JoinColumn(name = "correo_id", referencedColumnName = "id")
|
||||
)
|
||||
@ManyToMany(mappedBy = "trabajadores")
|
||||
private List<Correo> correos;
|
||||
|
||||
@ManyToMany
|
||||
@JoinTable(
|
||||
name = "trabajador_telefono",
|
||||
joinColumns = @JoinColumn(name = "trabajador_id", referencedColumnName = "id"),
|
||||
inverseJoinColumns = @JoinColumn(name = "telefono_id", referencedColumnName = "id")
|
||||
)
|
||||
@ManyToMany(mappedBy = "trabajadores")
|
||||
private List<Telefono> telefonos;
|
||||
|
||||
@ManyToMany
|
||||
@JoinTable(
|
||||
name = "trabajador_direccion",
|
||||
joinColumns = @JoinColumn(name = "trabajador_id", referencedColumnName = "id"),
|
||||
inverseJoinColumns = @JoinColumn(name = "direccion_id", referencedColumnName = "id")
|
||||
)
|
||||
@ManyToMany(mappedBy = "trabajadores")
|
||||
private List<Direccion> direcciones;
|
||||
|
||||
public Integer getId() {
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package xyz.danielcortes.repository;
|
||||
|
||||
import java.util.List;
|
||||
import javax.persistence.Query;
|
||||
import javax.persistence.TypedQuery;
|
||||
import javax.persistence.criteria.CriteriaBuilder;
|
||||
import javax.persistence.criteria.CriteriaQuery;
|
||||
import javax.persistence.criteria.Root;
|
||||
import xyz.danielcortes.framework.BaseRepository;
|
||||
import xyz.danielcortes.models.Correo;
|
||||
import xyz.danielcortes.models.Trabajador;
|
||||
@@ -17,27 +15,15 @@ public class CorreoRepository extends BaseRepository<Correo> {
|
||||
}
|
||||
|
||||
public List<Correo> search(String term) {
|
||||
CriteriaBuilder cb = em.getCriteriaBuilder();
|
||||
CriteriaQuery<Correo> query = cb.createQuery(Correo.class);
|
||||
Root<Correo> r = query.from(Correo.class);
|
||||
query.where(
|
||||
cb.like(cb.lower(r.get("correo")), '%' + term.toLowerCase() + "%")
|
||||
);
|
||||
|
||||
return em.createQuery(query).getResultList();
|
||||
Query query = em.createQuery("SELECT c FROM Correo c WHERE LOWER(c.correo) LIKE :term ");
|
||||
query.setParameter("term", "%" + term.toLowerCase() + "%");
|
||||
return query.getResultList();
|
||||
}
|
||||
|
||||
public List<Correo> search(String term, Trabajador trabajador) {
|
||||
CriteriaBuilder cb = em.getCriteriaBuilder();
|
||||
CriteriaQuery<Correo> query = cb.createQuery(Correo.class);
|
||||
Root<Correo> r = query.from(Correo.class);
|
||||
query.where(
|
||||
cb.and(
|
||||
cb.like(cb.lower(r.get("correo")), '%' + term.toLowerCase() + "%"),
|
||||
cb.equal(cb.lower(r.get("trabajador_id")), trabajador.getId())
|
||||
)
|
||||
);
|
||||
|
||||
return em.createQuery(query).getResultList();
|
||||
Query query = em.createQuery("SELECT c FROM Correo c JOIN c.trabajadores t WHERE t.id = :id AND LOWER(c.correo) LIKE :term ");
|
||||
query.setParameter("id", trabajador.getId());
|
||||
query.setParameter("term", "%" + term.toLowerCase() + "%");
|
||||
return query.getResultList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package xyz.danielcortes.repository;
|
||||
|
||||
import java.util.List;
|
||||
import javax.persistence.Query;
|
||||
import javax.persistence.TypedQuery;
|
||||
import javax.persistence.criteria.CriteriaBuilder;
|
||||
import javax.persistence.criteria.CriteriaQuery;
|
||||
import javax.persistence.criteria.Root;
|
||||
import xyz.danielcortes.framework.BaseRepository;
|
||||
import xyz.danielcortes.models.Direccion;
|
||||
import xyz.danielcortes.models.Trabajador;
|
||||
@@ -17,33 +15,15 @@ public class DireccionRepository extends BaseRepository<Direccion> {
|
||||
}
|
||||
|
||||
public List<Direccion> search(String term) {
|
||||
CriteriaBuilder cb = em.getCriteriaBuilder();
|
||||
CriteriaQuery<Direccion> query = cb.createQuery(Direccion.class);
|
||||
Root<Direccion> r = query.from(Direccion.class);
|
||||
query.where(
|
||||
cb.or(
|
||||
cb.like(cb.lower(r.get("calle")), '%' + term.toLowerCase() + "%"),
|
||||
cb.like(cb.lower(r.get("numero")), '%' + term.toLowerCase() + "%")
|
||||
)
|
||||
);
|
||||
|
||||
return em.createQuery(query).getResultList();
|
||||
Query query = em.createQuery("SELECT d FROM Direccion d WHERE LOWER(d.calle) LIKE :term AND LOWER(d.numero) LIKE :term");
|
||||
query.setParameter("term", "%" + term.toLowerCase() + "%");
|
||||
return query.getResultList();
|
||||
}
|
||||
|
||||
public List<Direccion> search(String term, Trabajador trabajador) {
|
||||
CriteriaBuilder cb = em.getCriteriaBuilder();
|
||||
CriteriaQuery<Direccion> query = cb.createQuery(Direccion.class);
|
||||
Root<Direccion> r = query.from(Direccion.class);
|
||||
query.where(
|
||||
cb.and(
|
||||
cb.equal(r.get("trabajador_id"), trabajador.getId()),
|
||||
cb.or(
|
||||
cb.like(cb.lower(r.get("calle")), '%' + term.toLowerCase() + "%"),
|
||||
cb.like(cb.lower(r.get("numero")), '%' + term.toLowerCase() + "%")
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
return em.createQuery(query).getResultList();
|
||||
Query query = em.createQuery("SELECT d FROM Direccion d JOIN d.trabajadores t WHERE t.id = :id AND (LOWER(d.calle) LIKE :term OR LOWER(d.numero) LIKE :term)");
|
||||
query.setParameter("id", trabajador.getId());
|
||||
query.setParameter("term", "%" + term.toLowerCase() + "%");
|
||||
return query.getResultList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package xyz.danielcortes.repository;
|
||||
|
||||
import java.util.List;
|
||||
import javax.persistence.Query;
|
||||
import javax.persistence.TypedQuery;
|
||||
import javax.persistence.criteria.CriteriaBuilder;
|
||||
import javax.persistence.criteria.CriteriaQuery;
|
||||
import javax.persistence.criteria.Root;
|
||||
import xyz.danielcortes.framework.BaseRepository;
|
||||
import xyz.danielcortes.models.Telefono;
|
||||
import xyz.danielcortes.models.Trabajador;
|
||||
@@ -17,27 +15,15 @@ public class TelefonoRepository extends BaseRepository<Telefono> {
|
||||
}
|
||||
|
||||
public List<Telefono> search(String term) {
|
||||
CriteriaBuilder cb = em.getCriteriaBuilder();
|
||||
CriteriaQuery<Telefono> query = cb.createQuery(Telefono.class);
|
||||
Root<Telefono> r = query.from(Telefono.class);
|
||||
query.where(
|
||||
cb.like(cb.lower(r.get("numero")), '%' + term.toLowerCase() + "%")
|
||||
);
|
||||
|
||||
return em.createQuery(query).getResultList();
|
||||
Query query = em.createQuery("SELECT t FROM Telefono t WHERE LOWER(t.numero) LIKE :term");
|
||||
query.setParameter("term", "%" + term.toLowerCase() + "%");
|
||||
return query.getResultList();
|
||||
}
|
||||
|
||||
public List<Telefono> search(String term, Trabajador trabajador) {
|
||||
CriteriaBuilder cb = em.getCriteriaBuilder();
|
||||
CriteriaQuery<Telefono> query = cb.createQuery(Telefono.class);
|
||||
Root<Telefono> r = query.from(Telefono.class);
|
||||
query.where(
|
||||
cb.and(
|
||||
cb.like(cb.lower(r.get("numero")), '%' + term.toLowerCase() + "%"),
|
||||
cb.equal(r.get("trabajador_id"), trabajador.getId())
|
||||
)
|
||||
);
|
||||
|
||||
return em.createQuery(query).getResultList();
|
||||
Query query = em.createQuery("SELECT t FROM Telefono t JOIN t.trabajadores r WHERE r.id = :id AND LOWER(t.numero) LIKE :term");
|
||||
query.setParameter("id", trabajador.getId());
|
||||
query.setParameter("term", "%" + term.toLowerCase() + "%");
|
||||
return query.getResultList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<property name="javax.persistence.jdbc.user" value="root"/>
|
||||
<property name="javax.persistence.jdbc.password" value="ff9800s_a_d"/>
|
||||
<property name="hibernate.dialect" value="org.hibernate.dialect.MariaDB103Dialect"/>
|
||||
<property name="hibernate.show_sql" value="true"/>
|
||||
<!--<property name="hibernate.hbm2ddl.auto" value="create"/>-->
|
||||
</properties>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user