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