Added database persistence to all add and delete methods

Signed-off-by: Jim Martens <github@2martens.de>
This commit is contained in:
Jim Martens 2017-05-03 10:25:03 +02:00
parent 88c4b0b772
commit 366852097f
1 changed files with 62 additions and 25 deletions

View File

@ -22,7 +22,7 @@ import de.dis2013.data.Wohnung;
* Wenn die Arbeit erledigt ist, werden alle Sets dieser Klasse überflüssig. * Wenn die Arbeit erledigt ist, werden alle Sets dieser Klasse überflüssig.
*/ */
public class ImmoService { public class ImmoService {
//Datensätze im Speicher // Datensätze im Speicher
private Set<Makler> makler; private Set<Makler> makler;
private Set<Person> personen = new HashSet<Person>(); private Set<Person> personen = new HashSet<Person>();
private Set<Haus> haeuser = new HashSet<Haus>(); private Set<Haus> haeuser = new HashSet<Haus>();
@ -30,14 +30,14 @@ public class ImmoService {
private Set<Mietvertrag> mietvertraege = new HashSet<Mietvertrag>(); private Set<Mietvertrag> mietvertraege = new HashSet<Mietvertrag>();
private Set<Kaufvertrag> kaufvertraege = new HashSet<Kaufvertrag>(); private Set<Kaufvertrag> kaufvertraege = new HashSet<Kaufvertrag>();
//Hibernate Session // Hibernate Session
private SessionFactory sessionFactory; private SessionFactory sessionFactory;
public ImmoService() { public ImmoService() {
sessionFactory = new Configuration().configure().buildSessionFactory(); sessionFactory = new Configuration().configure().buildSessionFactory();
//Open Hibernate Session // Open Hibernate Session
Session session = sessionFactory.openSession(); Session session = sessionFactory.openSession();
//GetAll EstateAgents from DB // GetAll EstateAgents from DB
session.beginTransaction(); session.beginTransaction();
List<?> l = session.createCriteria(Makler.class).list(); List<?> l = session.createCriteria(Makler.class).list();
List<Makler> l_makler = new ArrayList<Makler>(l.size()); List<Makler> l_makler = new ArrayList<Makler>(l.size());
@ -49,6 +49,51 @@ public class ImmoService {
session.getTransaction().commit(); session.getTransaction().commit();
session.close(); session.close();
} }
/**
* Adds an object to the database.
*
* @param o Object
*/
private void add(Object o) {
// Open Hibernate Session
Session session = sessionFactory.openSession();
// Add object to DB
session.beginTransaction();
session.save(o);
session.getTransaction().commit();
session.close();
}
/**
* Deletes an object from the database.
*
* @param o Object
*/
private void delete(Object o) {
// Open Hibernate Session
Session session = sessionFactory.openSession();
// Delete object from DB
session.beginTransaction();
session.delete(o);
session.getTransaction().commit();
session.close();
}
/**
* Edits the given object in the database.
*
* @param o Object
*/
private void edit(Object o) {
// Open Hibernate Session
Session session = sessionFactory.openSession();
// Update object in DB
session.beginTransaction();
session.merge(o);
session.getTransaction().commit();
session.close();
}
/** /**
* Finde einen Makler mit gegebener Id * Finde einen Makler mit gegebener Id
@ -110,13 +155,7 @@ public class ImmoService {
* @param m Der Makler * @param m Der Makler
*/ */
public void addMakler(Makler m) { public void addMakler(Makler m) {
//Open Hibernate Session add(m);
Session session = sessionFactory.openSession();
//Add EstateAgent to DB
session.beginTransaction();
session.save(m);
session.getTransaction().commit();
session.close();
//Add EstateAgent to local buffer //Add EstateAgent to local buffer
makler.add(m); makler.add(m);
} }
@ -126,13 +165,7 @@ public class ImmoService {
* @param m Der Makler * @param m Der Makler
*/ */
public void deleteMakler(Makler m) { public void deleteMakler(Makler m) {
//Open Hibernate Session delete(m);
Session session = sessionFactory.openSession();
//Delete EstateAgent from DB
session.beginTransaction();
session.delete(m);
session.getTransaction().commit();
session.close();
//Delete EstateAgent from local buffer //Delete EstateAgent from local buffer
makler.remove(m); makler.remove(m);
} }
@ -142,6 +175,8 @@ public class ImmoService {
* @param p Die Person * @param p Die Person
*/ */
public void addPerson(Person p) { public void addPerson(Person p) {
add(p);
//Add Person to local buffer
personen.add(p); personen.add(p);
} }
@ -157,6 +192,7 @@ public class ImmoService {
* @param p Die Person * @param p Die Person
*/ */
public void deletePerson(Person p) { public void deletePerson(Person p) {
delete(p);
personen.remove(p); personen.remove(p);
} }
@ -165,6 +201,7 @@ public class ImmoService {
* @param h Das Haus * @param h Das Haus
*/ */
public void addHaus(Haus h) { public void addHaus(Haus h) {
add(h);
haeuser.add(h); haeuser.add(h);
} }
@ -206,6 +243,7 @@ public class ImmoService {
* @param h Das Haus * @param h Das Haus
*/ */
public void deleteHouse(Haus h) { public void deleteHouse(Haus h) {
delete(h);
haeuser.remove(h); haeuser.remove(h);
} }
@ -214,6 +252,7 @@ public class ImmoService {
* @param w die Wohnung * @param w die Wohnung
*/ */
public void addWohnung(Wohnung w) { public void addWohnung(Wohnung w) {
add(w);
wohnungen.add(w); wohnungen.add(w);
} }
@ -255,6 +294,7 @@ public class ImmoService {
* @param w Die Wohnung * @param w Die Wohnung
*/ */
public void deleteWohnung(Wohnung w) { public void deleteWohnung(Wohnung w) {
delete(w);
wohnungen.remove(w); wohnungen.remove(w);
} }
@ -264,6 +304,7 @@ public class ImmoService {
* @param m Der Mietvertrag * @param m Der Mietvertrag
*/ */
public void addMietvertrag(Mietvertrag m) { public void addMietvertrag(Mietvertrag m) {
add(m);
mietvertraege.add(m); mietvertraege.add(m);
} }
@ -272,6 +313,7 @@ public class ImmoService {
* @param k Der Kaufvertrag * @param k Der Kaufvertrag
*/ */
public void addKaufvertrag(Kaufvertrag k) { public void addKaufvertrag(Kaufvertrag k) {
add(k);
kaufvertraege.add(k); kaufvertraege.add(k);
} }
@ -380,6 +422,7 @@ public class ImmoService {
* @param m Der Mietvertrag * @param m Der Mietvertrag
*/ */
public void deleteMietvertrag(Mietvertrag m) { public void deleteMietvertrag(Mietvertrag m) {
delete(m);
wohnungen.remove(m); wohnungen.remove(m);
} }
@ -501,12 +544,6 @@ public class ImmoService {
} }
public void editEstateAgent(Makler m) { public void editEstateAgent(Makler m) {
//Open Hibernate Session edit(m);
Session session = sessionFactory.openSession();
//Update EstateAgent from DB
session.beginTransaction();
session.merge(m);
session.getTransaction().commit();
session.close();
} }
} }