package persistency.exposed;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import persistency.entities.Speaker;
import utils.DBUtils;
@SuppressWarnings("unchecked")
public class SpeakerExposed {
private static SpeakerExposed instance;
public EntityManager entityManager = null;
public static final String JTA_PU_NAME = "statCreateTablesJTA";
public SpeakerExposed() {
entityManager = DBUtils.getEMF().createEntityManager();
}
public void createEntity(Speaker e) {
if (findUserById(e.getId()) != null) {
updateEntity(e);
return;
}
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
entityManager.persist(e);
transaction.commit();
}
public void updateEntity(Speaker e) {
Speaker findUserById = findUserById(e.getId());
if (findUserById != null) {
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
entityManager.merge(e);
transaction.commit();
}
}
public List<Speaker> allEntities() {
Query namedQuery = entityManager.createNamedQuery("allUsersSQL");
List<Speaker> resultList = namedQuery.getResultList();
return resultList;
}
public Speaker findUserById(String id) {
Query namedQuery = entityManager.createNamedQuery("getUserById");
namedQuery.setParameter("id", id);
Speaker singleResult = null;
try {
singleResult = (Speaker) namedQuery.getSingleResult();
} catch (NoResultException e) {
singleResult = null;
}
return singleResult;
}
public void updateClickedUpon(Speaker p) {
p.setClickedUpon(p.getClickedUpon() + 1);
updateEntity(p);
}
public static SpeakerExposed getInstance() {
if (instance != null) {
return instance;
}
return new SpeakerExposed();
}
}