diff options
Diffstat (limited to 'src/main/java/nu/xss/jpa/dao/GenericJpaDao.java')
-rw-r--r-- | src/main/java/nu/xss/jpa/dao/GenericJpaDao.java | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/main/java/nu/xss/jpa/dao/GenericJpaDao.java b/src/main/java/nu/xss/jpa/dao/GenericJpaDao.java index e282911..cac96e6 100644 --- a/src/main/java/nu/xss/jpa/dao/GenericJpaDao.java +++ b/src/main/java/nu/xss/jpa/dao/GenericJpaDao.java @@ -10,30 +10,40 @@ import javax.persistence.PersistenceContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class GenericJpaDao<E,K> implements Dao<E,K>, Serializable { - +public abstract class GenericJpaDao<E, K> implements Dao<E, K>, Serializable { + private static final long serialVersionUID = 4998055731089977476L; protected final Logger logger = LoggerFactory.getLogger(this.getClass()); - + @PersistenceContext protected EntityManager entityManager; - + protected Class<E> entity; - + @SuppressWarnings("unchecked") public GenericJpaDao() { - ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass(); + ParameterizedType genericSuperclass = (ParameterizedType) getClass() + .getGenericSuperclass(); this.entity = (Class<E>) genericSuperclass.getActualTypeArguments()[0]; } - + public void save(E entity) { + logger.info("Persist Entity: {}.", entity.toString()); entityManager.persist(entity); - logger.info("Saved entity: {}.", entity.toString()); + entityManager.flush(); + logger.info("Saved entity: {}.", entity.toString()); + } + + public void merge(E entity) { + logger.info("Merge Entity: {}.", entity.toString()); + entityManager.merge(entity); + entityManager.flush(); + logger.info("Saved entity: {}.", entity.toString()); } public void delete(E entity) { entityManager.remove(entity); - logger.info("Deleted entity: {}.", entity.toString()); + logger.info("Deleted entity: {}.", entity.toString()); } public E findById(K id) { |