Advertisement
Guest User

Untitled

a guest
Oct 31st, 2020
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.58 KB | None | 0 0
  1. package com.beetlehand.model.dao;
  2.  
  3. import org.springframework.transaction.annotation.Transactional;
  4.  
  5. import javax.persistence.EntityManager;
  6. import javax.persistence.Persistence;
  7. import javax.persistence.Query;
  8. import java.util.List;
  9. import java.util.Map;
  10.  
  11. public abstract class AbstractDao<T, S> implements AbstractDaoInterface<T, S> {
  12.  
  13.     protected EntityManager entityManager;
  14.  
  15.     public EntityManager getEntityManager() {
  16.         if(this.entityManager == null) {
  17.             this.entityManager = Persistence
  18.                 .createEntityManagerFactory("NewPersistenceUnit")
  19.                 .createEntityManager();
  20.         }
  21.  
  22.         return this.entityManager;
  23.     }
  24.  
  25.     // execute native sql or stored procedure queries
  26.     public void exeucte(String sqlQuery, Map<String, Object> params) {
  27.         Query jpaQuery = getEntityManager().createNativeQuery(sqlQuery);
  28.  
  29.         if(params != null)
  30.             for (String key : params.keySet()) {
  31.                 jpaQuery.setParameter(key, params.get(key));
  32.             }
  33.  
  34.         jpaQuery.executeUpdate();
  35.         getEntityManager().getTransaction().commit();
  36.     }
  37.  
  38.     // execute native sql or stored procedure queries
  39.     public List<Object> getRow(String sqlQuery, Map<String, Object> params) {
  40.         Query jpaQuery = getEntityManager().createNativeQuery(sqlQuery);
  41.  
  42.         if(params != null)
  43.             for (String key : params.keySet()) {
  44.                 jpaQuery.setParameter(key, params.get(key));
  45.             }
  46.  
  47.         return jpaQuery.getResultList();
  48.     }
  49.  
  50.     // execute native sql or stored procedure queries
  51.     public Object getOne(String sqlQuery, Map<String, Object> params) {
  52.         Query jpaQuery = getEntityManager().createNativeQuery(sqlQuery);
  53.  
  54.         if(params != null)
  55.             for (String key : params.keySet()) {
  56.                 jpaQuery.setParameter(key, params.get(key));
  57.             }
  58.  
  59.         return jpaQuery.getSingleResult();
  60.     }
  61.  
  62.     @Transactional
  63.     public void saveRow(T entity) {
  64.         getEntityManager().persist(entity);
  65.     }
  66.  
  67.     @Transactional
  68.     public void deleteRow(T entity) {
  69.         if(getEntityManager().contains(entity)) {
  70.             getEntityManager().remove(entity);
  71.         }
  72.     }
  73.  
  74.     @Transactional
  75.     public void flush() {
  76.         getEntityManager().flush();
  77.     }
  78.  
  79.     @Transactional
  80.     public void clear() {
  81.         getEntityManager().clear();
  82.     }
  83.  
  84.     @Transactional
  85.     public T merge(T entity) {
  86.         T merged = getEntityManager().merge(entity);
  87.         getEntityManager().flush();
  88.         return merged;
  89.     }
  90. }
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement