Migrate the model repositories.
This commit is contained in:
+47
@@ -0,0 +1,47 @@
|
||||
package space.kklochko.jpa_hospital_example.db.repositories;
|
||||
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.TypedQuery;
|
||||
import space.kklochko.jpa_hospital_example.db.repositories.blocks.TransactionalInsert;
|
||||
import space.kklochko.jpa_hospital_example.db.repositories.blocks.TransactionalRemove;
|
||||
import space.kklochko.jpa_hospital_example.db.repositories.blocks.TransactionalUpdate;
|
||||
import space.kklochko.jpa_hospital_example.models.Department;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.UUID;
|
||||
|
||||
public class DepartmentRepository extends AbstractRepository<Department> {
|
||||
public DepartmentRepository(EntityManager manager){
|
||||
super(manager);
|
||||
}
|
||||
|
||||
public boolean create(Department object) {
|
||||
TransactionalInsert insert = new TransactionalInsert();
|
||||
|
||||
return insert.run(manager, object);
|
||||
}
|
||||
|
||||
public Department read(UUID id) {
|
||||
return manager.find(Department.class, id);
|
||||
}
|
||||
|
||||
public ArrayList<Department> readAll() {
|
||||
TypedQuery<Department> query = manager.createQuery("SELECT d FROM Department d", Department.class);
|
||||
|
||||
return (ArrayList<Department>) query.getResultList();
|
||||
}
|
||||
|
||||
public boolean update(Department object) {
|
||||
TransactionalUpdate update = new TransactionalUpdate();
|
||||
|
||||
return update.run(manager, object);
|
||||
}
|
||||
|
||||
public boolean delete(UUID id) {
|
||||
Department object = read(id);
|
||||
|
||||
TransactionalRemove remove = new TransactionalRemove();
|
||||
|
||||
return remove.run(manager, object);
|
||||
}
|
||||
}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package space.kklochko.jpa_hospital_example.db.repositories;
|
||||
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.TypedQuery;
|
||||
import space.kklochko.jpa_hospital_example.db.repositories.blocks.TransactionalInsert;
|
||||
import space.kklochko.jpa_hospital_example.db.repositories.blocks.TransactionalRemove;
|
||||
import space.kklochko.jpa_hospital_example.db.repositories.blocks.TransactionalUpdate;
|
||||
import space.kklochko.jpa_hospital_example.models.Indicator;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.UUID;
|
||||
|
||||
public class IndicatorRepository extends AbstractRepository<Indicator> {
|
||||
public IndicatorRepository(EntityManager manager){
|
||||
super(manager);
|
||||
}
|
||||
|
||||
public boolean create(Indicator object) {
|
||||
TransactionalInsert insert = new TransactionalInsert();
|
||||
|
||||
return insert.run(manager, object);
|
||||
}
|
||||
|
||||
public Indicator read(UUID id) {
|
||||
return manager.find(Indicator.class, id);
|
||||
}
|
||||
|
||||
public ArrayList<Indicator> readAll() {
|
||||
TypedQuery<Indicator> query = manager.createQuery("SELECT i FROM Indicator i", Indicator.class);
|
||||
|
||||
return (ArrayList<Indicator>) query.getResultList();
|
||||
}
|
||||
|
||||
public boolean update(Indicator object) {
|
||||
TransactionalUpdate update = new TransactionalUpdate();
|
||||
|
||||
return update.run(manager, object);
|
||||
}
|
||||
|
||||
public boolean delete(UUID id) {
|
||||
Indicator object = read(id);
|
||||
|
||||
TransactionalRemove remove = new TransactionalRemove();
|
||||
|
||||
return remove.run(manager, object);
|
||||
}
|
||||
}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package space.kklochko.jpa_hospital_example.db.repositories;
|
||||
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.TypedQuery;
|
||||
import space.kklochko.jpa_hospital_example.db.repositories.blocks.TransactionalInsert;
|
||||
import space.kklochko.jpa_hospital_example.db.repositories.blocks.TransactionalRemove;
|
||||
import space.kklochko.jpa_hospital_example.db.repositories.blocks.TransactionalUpdate;
|
||||
import space.kklochko.jpa_hospital_example.models.Patient;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PatientRepository extends AbstractRepository<Patient> {
|
||||
public PatientRepository(EntityManager manager) {
|
||||
super(manager);
|
||||
}
|
||||
|
||||
public boolean create(Patient object) {
|
||||
TransactionalInsert insert = new TransactionalInsert();
|
||||
|
||||
return insert.run(manager, object);
|
||||
}
|
||||
|
||||
public Patient read(UUID id) {
|
||||
return manager.find(Patient.class, id);
|
||||
}
|
||||
|
||||
public ArrayList<Patient> readAll() {
|
||||
TypedQuery<Patient> query = manager.createQuery("SELECT p FROM Patient p", Patient.class);
|
||||
|
||||
return (ArrayList<Patient>) query.getResultList();
|
||||
}
|
||||
|
||||
public boolean update(Patient object) {
|
||||
TransactionalUpdate update = new TransactionalUpdate();
|
||||
|
||||
return update.run(manager, object);
|
||||
}
|
||||
|
||||
public boolean delete(UUID id) {
|
||||
Patient object = read(id);
|
||||
|
||||
TransactionalRemove remove = new TransactionalRemove();
|
||||
|
||||
return remove.run(manager, object);
|
||||
}
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package space.kklochko.jpa_hospital_example.db.repositories.blocks;
|
||||
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.PersistenceException;
|
||||
import jakarta.persistence.RollbackException;
|
||||
import space.kklochko.jpa_hospital_example.models.Department;
|
||||
import space.kklochko.jpa_hospital_example.models.Indicator;
|
||||
import space.kklochko.jpa_hospital_example.models.Patient;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class TransactionalInsert {
|
||||
public <T> boolean run(EntityManager manager, T object) {
|
||||
try {
|
||||
if (!manager.getTransaction().isActive())
|
||||
manager.getTransaction().begin();
|
||||
|
||||
manager.persist(object);
|
||||
manager.getTransaction().commit();
|
||||
return true;
|
||||
} catch (PersistenceException e){
|
||||
if (manager.getTransaction().isActive()) {
|
||||
manager.getTransaction().rollback();
|
||||
}
|
||||
|
||||
return (new TransactionalUpdate()).run(manager, object);
|
||||
}
|
||||
}
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package space.kklochko.jpa_hospital_example.db.repositories.blocks;
|
||||
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.RollbackException;
|
||||
|
||||
public class TransactionalRemove {
|
||||
public <T> boolean run(EntityManager manager, T object) {
|
||||
if(object == null)
|
||||
return false;
|
||||
|
||||
try {
|
||||
manager.getTransaction().begin();
|
||||
manager.remove(object);
|
||||
manager.getTransaction().commit();
|
||||
return true;
|
||||
} catch (RollbackException e) {
|
||||
if (manager.getTransaction().isActive()) {
|
||||
manager.getTransaction().rollback();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package space.kklochko.jpa_hospital_example.db.repositories.blocks;
|
||||
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.RollbackException;
|
||||
|
||||
public class TransactionalUpdate {
|
||||
public <T> boolean run(EntityManager manager, T object) {
|
||||
try {
|
||||
manager.getTransaction().begin();
|
||||
manager.merge(object);
|
||||
manager.getTransaction().commit();
|
||||
return true;
|
||||
} catch (RollbackException e) {
|
||||
if (manager.getTransaction().isActive()) {
|
||||
manager.getTransaction().rollback();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user