diff --git a/core/database.mv.db b/core/database.mv.db index 7e2e1de2540f765ebf278401a0ed46fd69b52434..9dbdffc5c5d72fd1cf5f84151e6d3282d8f5cb4f 100644 Binary files a/core/database.mv.db and b/core/database.mv.db differ diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Overworld.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Overworld.java index 767140814e9b7bb8abff17464a6b16323ede4879..e1a2358668b23a75a16b6392ee6276a39dc8e4bd 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Overworld.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Map/Overworld.java @@ -1,33 +1,39 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Map; -import com.j256.ormlite.field.DatabaseField; -import lombok.Data; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import javax.persistence.*; import java.io.Serializable; import java.util.HashMap; - +import java.util.Map; + +@Entity +@NoArgsConstructor(access = AccessLevel.PUBLIC) +@RequiredArgsConstructor(access = AccessLevel.PUBLIC) +@NamedQueries({ + @NamedQuery(name = "Overworld.getByUsername", query = "select o from Overworld o where o.associatedUser =: name") +}) public class Overworld implements Serializable { /** ID */ @NonNull - @DatabaseField(id = true,columnName = "ID") + @Id private int id; /** Username used as ID */ @NonNull - @DatabaseField(columnName = "user") private String associatedUser; /** Stores planet and their location on the map */ - @NonNull - @DatabaseField(columnName = "planetMap") - private HashMap<float[],Planet> planetMap; + @ElementCollection + private Map<String,Planet> planetMap; /** The start planet */ @NonNull - @DatabaseField(columnName = "startPlanet") private Planet startPlanet; /** Constructor */ diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java index 08417b50a2a0ab1d04d36eefbbe963cb30342c02..9926bb33563f2cb52fa44f4421a228ef96eea15f 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java @@ -1,25 +1,27 @@ package com.galaxytrucker.galaxytruckerreloaded.Model; -import com.badlogic.gdx.scenes.scene2d.ui.List; -import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew; import com.galaxytrucker.galaxytruckerreloaded.Model.Map.Planet; import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.Room; import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon; import com.j256.ormlite.field.DatabaseField; -import com.j256.ormlite.table.DatabaseTable; import lombok.*; +import javax.persistence.*; import java.io.Serializable; +import java.util.List; @AllArgsConstructor(access = AccessLevel.PUBLIC) @NoArgsConstructor(access = AccessLevel.PUBLIC) @Getter @Setter -@DatabaseTable(tableName = "ship") +@Entity +@NamedQueries({ + @NamedQuery(name = "Ship.getByUsername", query = "select s from Ship s where s.associatedUser =: username") +}) public class Ship implements Serializable { /** ID */ - @DatabaseField(id = true,columnName = "ID") + @Id @NonNull private int id; @@ -27,7 +29,6 @@ public class Ship implements Serializable { * The user this ship belongs to * (uses the user's username) */ - @DatabaseField(columnName = "associatedUser") @NonNull private String associatedUser; @@ -35,84 +36,72 @@ public class Ship implements Serializable { * HP */ @NonNull - @DatabaseField(columnName = "HP") private int hp; /** Coins */ @NonNull - @DatabaseField(columnName = "coins") private int coins; /** Amount of available missiles */ @NonNull - @DatabaseField(columnName = "missles") private int missiles; /** Amount of fuel left*/ @NonNull - @DatabaseField(columnName = "fuel") private int fuel; /** * Energy to be distributed */ @NonNull - @DatabaseField(columnName = "energy") private int energy; /** * Shields that are currently active */ @NonNull - @DatabaseField(columnName = "shieldCharge") private int shieldCharge; /** * Total number of Shields that are powered. Possibly redundant through Shield.getEnergy/2 */ @NonNull - @DatabaseField(columnName = "maximumShieldCharge") private int maxShieldCharge; /** * chance for the ship to dodge incoming attacks */ @NonNull - @DatabaseField(columnName = "evasionChance") private float evasionChance; /** * The planet the ship is currently at */ @NonNull - @DatabaseField(foreign = true,columnName = "planet") private Planet planet; /** Shields */ @NonNull - @DatabaseField(columnName = "shields") private int shields; /** * time needed until position can be changed again */ @NonNull - @DatabaseField(columnName = "FTLCharge") private int FTLCharge; /** This ship's systems */ @NonNull - @DatabaseField(columnName = "systems",foreign = true) + @ElementCollection private List<Room> systems; /** Inventory */ @NonNull - @DatabaseField(foreign = true, columnName = "inventory") + @ElementCollection private List<Weapon> inventory; /** Whether or not the ship is in combat */ - @DatabaseField(columnName = "inCombat") @NonNull private boolean inCombat = false; diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/User.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/User.java index 93448a58c7b4b56b3daf54c0b3181d5ae0b2ee0e..bc0748dcd89b62291c83caafbe22e742e0a56271 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/User.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/User.java @@ -2,8 +2,7 @@ package com.galaxytrucker.galaxytruckerreloaded.Model; import lombok.*; -import javax.persistence.Entity; -import javax.persistence.Id; +import javax.persistence.*; import java.io.Serializable; @RequiredArgsConstructor(access = AccessLevel.PUBLIC) @@ -11,6 +10,9 @@ import java.io.Serializable; @Getter @Setter @Entity +@NamedQueries({ + @NamedQuery(name = "User.getByUsername",query = "select u from User u where u.username =: username") +}) public class User implements Serializable { /** @@ -23,6 +25,7 @@ public class User implements Serializable { /** * The user's ship */ + @OneToOne private Ship userShip; /** Whether or not the user is logged in */ diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/CrewDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/CrewDAO.java index 30012c2dfb41efd5f439ada57749e68186f929f6..c18bc10c5ed417a2738447b8f549b679f7f98d68 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/CrewDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/CrewDAO.java @@ -1,6 +1,7 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew; +import com.galaxytrucker.galaxytruckerreloaded.Server.Database.Database; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.CrewNotFoundException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateCrewException; @@ -60,13 +61,4 @@ public class CrewDAO extends ObjectDAO<Crew> { throw new CrewNotFoundException(); } } - - /** - * Constructor - * - * @param entityManager - the EntityManager - */ - public CrewDAO(EntityManager entityManager) { - this.entityManager = entityManager; - } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ObjectDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ObjectDAO.java index 42f5bc451d409279da0c8aaf49e8a181b7338e5b..7947b5ba8432b80684b28b24d28d9e037fa4a2f4 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ObjectDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ObjectDAO.java @@ -1,5 +1,7 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; +import com.galaxytrucker.galaxytruckerreloaded.Server.Database.Database; + import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @@ -8,7 +10,7 @@ public abstract class ObjectDAO<T> { /** EntityManager */ @PersistenceContext(name = "database") - public EntityManager entityManager; + public EntityManager entityManager = Database.getEntityManager(); /** * Save the object to the database diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/OverworldDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/OverworldDAO.java index fe6702a08e0923bd37a78987114d6fc25a48ce35..4354f905df0c7600e97f8ab7af00748bed5b57cc 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/OverworldDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/OverworldDAO.java @@ -5,11 +5,12 @@ import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateOverwor import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.OverworldNotFoundException; import com.galaxytrucker.galaxytruckerreloaded.Server.Persistence.ObjectDAO; import com.j256.ormlite.dao.Dao; +import lombok.NonNull; -public class OverworldDAO extends ObjectDAO<Overworld> { +import javax.persistence.NamedQuery; +import javax.persistence.Query; - /** OverworldDAO */ - private Dao<Overworld,String> overworldDAO; +public class OverworldDAO extends ObjectDAO<Overworld> { /** * Add a new OverWorld to the database @@ -19,7 +20,15 @@ public class OverworldDAO extends ObjectDAO<Overworld> { */ @Override public void persist(Overworld o) throws DuplicateOverworldException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(o); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new DuplicateOverworldException(); + } } /** @@ -30,7 +39,15 @@ public class OverworldDAO extends ObjectDAO<Overworld> { */ @Override public void remove(Overworld o) throws OverworldNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.remove(o); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new OverworldNotFoundException(); + } } /** Get the overworld of a designated user @@ -38,6 +55,15 @@ public class OverworldDAO extends ObjectDAO<Overworld> { * @return the user's world map * @throws OverworldNotFoundException if the overworld couldn't be found */ public Overworld getOverworldByUser(String username) throws OverworldNotFoundException{ - return null; + try { + entityManager.getTransaction().begin(); + @NonNull Overworld o = entityManager.createNamedQuery("Overworld.getByUsername",Overworld.class).setParameter("name",username).getSingleResult(); + entityManager.getTransaction().commit(); + return o; + } + catch (Exception e){ + e.printStackTrace(); + throw new OverworldNotFoundException(); + } } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/PlanetDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/PlanetDAO.java index 7c2f42798813040ebd25cba1d9cad980138a4c2d..a9d2294d1a01e2c4f8f2e2542f3c5bcfadc765cb 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/PlanetDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/PlanetDAO.java @@ -18,7 +18,15 @@ public class PlanetDAO extends ObjectDAO<Planet> { */ @Override public void persist(Planet p) throws DuplicatePlanetException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(p); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new DuplicatePlanetException(); + } } /** @@ -28,7 +36,15 @@ public class PlanetDAO extends ObjectDAO<Planet> { * @throws PlanetNotFoundException if the planet cannot be found in the database */ public void update(Planet p) throws PlanetNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.merge(p); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new PlanetNotFoundException(); + } } /** @@ -39,6 +55,14 @@ public class PlanetDAO extends ObjectDAO<Planet> { */ @Override public void remove(Planet p) throws PlanetNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.remove(p); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new PlanetNotFoundException(); + } } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/RoomDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/RoomDAO.java index 9fbbb566c1e7e5cbd9bb5934b02fd19f7ef73249..ce7c3b52a4bd52a88ed8d82f6edd8c513420c525 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/RoomDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/RoomDAO.java @@ -8,9 +8,6 @@ import com.j256.ormlite.dao.Dao; /** This class manages room objects in the database */ public class RoomDAO extends ObjectDAO<Room> { - /** RoomDAO */ - private Dao<Room,String> roomDAO; - /** * Add a new room to the database * @@ -19,7 +16,15 @@ public class RoomDAO extends ObjectDAO<Room> { */ @Override public void persist(Room r) throws DuplicateRoomException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(r); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new DuplicateRoomException(); + } } /** @@ -29,7 +34,15 @@ public class RoomDAO extends ObjectDAO<Room> { * @throws RoomNotFoundException if the room cannot be found in the database */ public void update(Room r) throws RoomNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.merge(r); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new RoomNotFoundException(); + } } /** @@ -40,6 +53,14 @@ public class RoomDAO extends ObjectDAO<Room> { */ @Override public void remove(Room r) throws RoomNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.remove(r); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new RoomNotFoundException(); + } } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ShipDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ShipDAO.java index 2519a4893d7066ace3f3346ac1f3a76b6aca4b3b..eafb79ba2598a7fc0d68230434386f9824dc3642 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ShipDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/ShipDAO.java @@ -1,28 +1,16 @@ package com.galaxytrucker.galaxytruckerreloaded.Server.Persistence; import com.galaxytrucker.galaxytruckerreloaded.Model.Ship; +import com.galaxytrucker.galaxytruckerreloaded.Model.User; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateShipException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.ShipNotFoundException; import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.UserNotFoundException; import com.j256.ormlite.dao.Dao; import com.j256.ormlite.support.ConnectionSource; +import lombok.NonNull; public class ShipDAO extends ObjectDAO<Ship> { - /** - * ShipDAO - */ - private Dao<Ship, String> shipDAO; - - /** - * Constructor - * - * @param source - the database connection source - */ - public ShipDAO(ConnectionSource source) { - - } - /** * Add a new ship to the database * @@ -30,14 +18,30 @@ public class ShipDAO extends ObjectDAO<Ship> { */ @Override public void persist(Ship s) throws DuplicateShipException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(s); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new DuplicateShipException(); + } } /** Update a ship in the database * @param s - the ship to update * @throws ShipNotFoundException if the ship cannot be found in the database */ public void update(Ship s) throws ShipNotFoundException{ - + try { + entityManager.getTransaction().begin(); + entityManager.merge(s); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new ShipNotFoundException(); + } } /** @@ -45,8 +49,17 @@ public class ShipDAO extends ObjectDAO<Ship> { * * @param user - the ship's associated user */ - private Ship getShipByUser(String user) throws ShipNotFoundException, UserNotFoundException { - return null; + private Ship getShipByUser(String user) throws ShipNotFoundException { + try { + entityManager.getTransaction().begin(); + @NonNull Ship s = entityManager.createNamedQuery("Ship.getByUsername",Ship.class).setParameter("username",user).getSingleResult(); + entityManager.getTransaction().commit(); + return s; + } + catch (Exception e){ + e.printStackTrace(); + throw new ShipNotFoundException(); + } } /** @@ -56,6 +69,14 @@ public class ShipDAO extends ObjectDAO<Ship> { */ @Override public void remove(Ship s) throws ShipNotFoundException{ - + try { + entityManager.getTransaction().begin(); + entityManager.remove(s); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new ShipNotFoundException(); + } } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/TraderDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/TraderDAO.java index 0388a8396f3595af814f0fb4c64064370a4e843e..a490d0a78873f745bd0ae52c370c838ecb14f30c 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/TraderDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/TraderDAO.java @@ -10,9 +10,6 @@ import com.j256.ormlite.dao.Dao; */ public class TraderDAO extends ObjectDAO<Trader> { - /** TraderDAO */ - private Dao<Trader,String> traderDAO; - /** * Add a new trader to the database * @@ -21,7 +18,15 @@ public class TraderDAO extends ObjectDAO<Trader> { */ @Override public void persist(Trader t) throws DuplicateTraderException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(t); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new DuplicateTraderException(); + } } /** @@ -31,7 +36,15 @@ public class TraderDAO extends ObjectDAO<Trader> { * @throws TraderNotFoundException if the trader cannot be found in the database */ public void update(Trader t) throws TraderNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.merge(t); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new TraderNotFoundException(); + } } /** @@ -42,6 +55,14 @@ public class TraderDAO extends ObjectDAO<Trader> { */ @Override public void remove(Trader t) throws TraderNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.remove(t); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new TraderNotFoundException(); + } } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/UserDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/UserDAO.java index 45c79cb5ee04d0d9d1c60c4c4f2c7ff8bf838ae9..5861eff0ade6e52746394170cb364f3d1eb12429 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/UserDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/UserDAO.java @@ -5,23 +5,10 @@ import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.DuplicateUserExc import com.galaxytrucker.galaxytruckerreloaded.Server.Exception.UserNotFoundException; import com.j256.ormlite.dao.Dao; import com.j256.ormlite.support.ConnectionSource; +import lombok.NonNull; public class UserDAO extends ObjectDAO<User> { - /** - * UserDAO - */ - private Dao<User, String> userDAO; - - /** - * Constructor - * - * @param source - database connection source - */ - public UserDAO(ConnectionSource source) { - - } - /** * Add a new user to the database * @@ -29,14 +16,31 @@ public class UserDAO extends ObjectDAO<User> { */ @Override public void persist(User u) throws DuplicateUserException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(u); + entityManager.getTransaction().commit(); + } catch (Exception e) { + e.printStackTrace(); + throw new DuplicateUserException(); + } } - /** Update a user in the database + /** + * Update a user in the database + * * @param u - the user to update - * @throws UserNotFoundException if the user cannot be found in the database */ + * @throws UserNotFoundException if the user cannot be found in the database + */ public void update(User u) throws UserNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.merge(u); + entityManager.getTransaction().commit(); + } catch (Exception e) { + e.printStackTrace(); + throw new UserNotFoundException(); + } } /** @@ -45,7 +49,15 @@ public class UserDAO extends ObjectDAO<User> { * @param username - the username of the user */ private User getUserByUsername(String username) throws UserNotFoundException { - return null; + try { + entityManager.getTransaction().begin(); + @NonNull User u = entityManager.createNamedQuery("User.getByUsername",User.class).setParameter("username",username).getSingleResult(); + entityManager.getTransaction().commit(); + return u; + } catch (Exception e) { + e.printStackTrace(); + throw new UserNotFoundException(); + } } /** @@ -55,7 +67,14 @@ public class UserDAO extends ObjectDAO<User> { */ @Override public void remove(User u) throws UserNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.remove(u); + entityManager.getTransaction().commit(); + } catch (Exception e) { + e.printStackTrace(); + throw new UserNotFoundException(); + } } /** @@ -64,7 +83,8 @@ public class UserDAO extends ObjectDAO<User> { * @param username - the username of the user to delete */ private void removeUserByUsername(String username) throws UserNotFoundException { - + User u = getUserByUsername(username); + remove(u); } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/WeaponDAO.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/WeaponDAO.java index 01872911dafc60294a4f189ffad06c05ceea6d29..52c16f0ff5cd5866ff5cffa7f6076c82fa52b101 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/WeaponDAO.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Server/Persistence/WeaponDAO.java @@ -10,9 +10,6 @@ import com.j256.ormlite.dao.Dao; */ public class WeaponDAO extends ObjectDAO<Weapon> { - /** WeaponDAO */ - private Dao<Weapon,String> weaponDAO; - /** * Add a new weapon to the database * @@ -21,7 +18,15 @@ public class WeaponDAO extends ObjectDAO<Weapon> { */ @Override public void persist(Weapon w) throws DuplicateWeaponException { - + try { + entityManager.getTransaction().begin(); + entityManager.persist(w); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new DuplicateWeaponException(); + } } /** @@ -31,7 +36,15 @@ public class WeaponDAO extends ObjectDAO<Weapon> { * @throws WeaponNotFoundException if the weapon doesn't exist in the database */ public void update(Weapon w) throws WeaponNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.merge(w); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new WeaponNotFoundException(); + } } /** @@ -42,7 +55,15 @@ public class WeaponDAO extends ObjectDAO<Weapon> { */ @Override public void remove(Weapon w) throws WeaponNotFoundException { - + try { + entityManager.getTransaction().begin(); + entityManager.remove(w); + entityManager.getTransaction().commit(); + } + catch (Exception e){ + e.printStackTrace(); + throw new WeaponNotFoundException(); + } } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Test/Server/Persistence/CrewDAOTest.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Test/Server/Persistence/CrewDAOTest.java index 2443c7b911b791f6d4257bc21bf1c752600be112..4d91f5c23833197c81865562a46bddb020b053b6 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Test/Server/Persistence/CrewDAOTest.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Test/Server/Persistence/CrewDAOTest.java @@ -9,6 +9,7 @@ import org.junit.Assert; import org.junit.Test; import javax.persistence.EntityManager; +import javax.xml.crypto.Data; import java.util.UUID; public class CrewDAOTest { @@ -22,7 +23,7 @@ public class CrewDAOTest { /** * CrewDAO */ - private CrewDAO crewDAO = new CrewDAO(entityManager); + private CrewDAO crewDAO = new CrewDAO(); /**