diff --git a/src/io/github/norbipeti/chat/server/db/DataProvider.java b/src/io/github/norbipeti/chat/server/db/DataProvider.java index 63a617b..0f16b4f 100644 --- a/src/io/github/norbipeti/chat/server/db/DataProvider.java +++ b/src/io/github/norbipeti/chat/server/db/DataProvider.java @@ -29,19 +29,23 @@ public class DataProvider implements AutoCloseable { } public List getUsers() { - EntityManager em = emf.createEntityManager(); - TypedQuery query = em.createQuery("SELECT u FROM User u", User.class); - List users = query.getResultList(); - em.close(); - return users; + return get(User.class); } - public User getUser(Long id) { + public List getMessages() { + return get(Message.class); + } + + public List getConversations() { + return get(Conversation.class); + } + + private List get(Class cl) { EntityManager em = emf.createEntityManager(); - TypedQuery query = em.createQuery("SELECT u FROM User u WHERE u.id = " + id, User.class); - User user = query.getResultList().get(0); + TypedQuery query = em.createQuery("SELECT x FROM " + cl.getSimpleName() + " x", cl); + List results = query.getResultList(); em.close(); - return user; + return results; } public void removeUser(User user) { @@ -53,17 +57,6 @@ public class DataProvider implements AutoCloseable { em.close(); } - public EntityManager startTransaction() { - EntityManager em = emf.createEntityManager(); - em.getTransaction().begin(); - return em; - } - - public void endTransaction(EntityManager em) { - em.getTransaction().commit(); - em.close(); - } - @Override public void close() { if (emf != null) diff --git a/src/io/github/norbipeti/chat/server/db/domain/Conversation.java b/src/io/github/norbipeti/chat/server/db/domain/Conversation.java new file mode 100644 index 0000000..d41fd24 --- /dev/null +++ b/src/io/github/norbipeti/chat/server/db/domain/Conversation.java @@ -0,0 +1,27 @@ +package io.github.norbipeti.chat.server.db.domain; + +import java.util.List; + +import javax.persistence.Entity; + +@Entity +public class Conversation { + private List messsages; + private List users; + + public List getMesssages() { + return messsages; + } + + public void setMesssages(List messsages) { + this.messsages = messsages; + } + + public List getUsers() { + return users; + } + + public void setUsers(List users) { + this.users = users; + } +} diff --git a/src/io/github/norbipeti/chat/server/db/domain/Message.java b/src/io/github/norbipeti/chat/server/db/domain/Message.java new file mode 100644 index 0000000..90ceea5 --- /dev/null +++ b/src/io/github/norbipeti/chat/server/db/domain/Message.java @@ -0,0 +1,45 @@ +package io.github.norbipeti.chat.server.db.domain; + +import java.util.Date; + +import javax.persistence.Entity; + +@Entity +public class Message { + private User sender; + private Date time; + private String message; + private Conversation conversation; + + public User getSender() { + return sender; + } + + public void setSender(User sender) { + this.sender = sender; + } + + public Date getTime() { + return time; + } + + public void setTime(Date time) { + this.time = time; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Conversation getConversation() { + return conversation; + } + + public void setConversation(Conversation conversation) { + this.conversation = conversation; + } +}