Refactored contact search, added Javadoc

This commit is contained in:
2020-02-10 22:29:34 +01:00
parent a96199ccd7
commit c5017e71fc
8 changed files with 94 additions and 102 deletions

View File

@ -3,17 +3,7 @@ package envoy.server.data;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.*;
/**
* This class serves as a way to let Hibernate communicate with the server
@ -32,9 +22,13 @@ import javax.persistence.TemporalType;
@Entity
@Table(name = "users")
@NamedQueries(
{ @NamedQuery(query = "SELECT u FROM User u WHERE u.name = :name", name = "getUserByName"),
@NamedQuery(query = "SELECT u.contacts FROM User u WHERE u = :user", name = "getContactsOfUser"),
@NamedQuery(query = "SELECT u FROM User u WHERE lower(u.name) LIKE lower(:searchPhrase)", name = "searchUsers") }
{ @NamedQuery(query = "SELECT u FROM User u WHERE u.name = :name", name = "getUserByName"), @NamedQuery(
query = "SELECT u.contacts FROM User u WHERE u = :user",
name = "getContactsOfUser"
), @NamedQuery(
query = "SELECT u FROM User u WHERE (lower(u.name) LIKE lower(:searchPhrase) AND u <> :context AND NOT :context in elements(u.contacts))",
name = "searchUsers"
) }
)
public class User {
@ -48,7 +42,7 @@ public class User {
private Date lastSeen;
private envoy.data.User.UserStatus status;
@ManyToMany(targetEntity = User.class, cascade = CascadeType.ALL) // , orphanRemoval = true
@ManyToMany(targetEntity = User.class, cascade = CascadeType.ALL)
private List<User> contacts;
/**