Advertisement
Guest User

DaoGenericImpl

a guest
Apr 5th, 2019
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.46 KB | None | 0 0
  1. public abstract class DaoGenericoImp<T, ID extends Serializable> implements DaoGenerico<T, ID> {
  2.  
  3. protected abstract EntityManager getEntityManager();
  4.  
  5. protected abstract Class<T> getClasseDominio();
  6.  
  7. @Override
  8. public T atualizar(T object) {
  9. getEntityManager().merge(object);
  10. return object;
  11. }
  12.  
  13. @Override
  14. public void excluir(T object) {
  15. object = getEntityManager().merge(object);
  16. getEntityManager().remove(object);
  17. }
  18.  
  19. @Override
  20. public Class<T> getObjectClass() {
  21. return this.getClasseDominio();
  22. }
  23.  
  24. @SuppressWarnings("unchecked")
  25. @Override
  26. public List<T> listPesq(String query) {
  27. Query q = getEntityManager().createQuery(query);
  28. return q.getResultList();
  29. }
  30.  
  31. @Override
  32. public List<T> listPesqQuery(String query) {
  33. Query q = getEntityManager().createNativeQuery(query);
  34. return q.getResultList();
  35.  
  36. }
  37.  
  38. @Override
  39. public List<T> listPesqQuery(String query, Map<String, Object> params) {
  40. Query q = getEntityManager().createNativeQuery(query);
  41. for (String chave : params.keySet()) {
  42. q.setParameter(chave, params.get(chave));
  43. }
  44. return q.getResultList();
  45.  
  46. }
  47.  
  48. @Override
  49. public T pesqQueryNativa(String query, Map<String, Object> params) {
  50. Query q = getEntityManager().createNativeQuery(query);
  51. for (String chave : params.keySet()) {
  52. q.setParameter(chave, params.get(chave));
  53. }
  54. return (T) q.getSingleResult();
  55. }
  56.  
  57. @Override
  58. public T pesqQuery(String query) {
  59. List<T> lista = listPesqQuery(query);
  60. for (T t : lista) {
  61. return t;
  62. }
  63. return null;
  64. }
  65.  
  66. @Override
  67. public T pesqQuery(String query, Map<String, Object> params) {
  68. List<T> lista = listPesqQuery(query, params);
  69. for (T t : lista) {
  70. return t;
  71. }
  72. return null;
  73. }
  74.  
  75. @SuppressWarnings("unchecked")
  76. @Override
  77. public List<Object> listPesqQueryUmParametro(String query) {
  78. Query q = getEntityManager().createNativeQuery(query);
  79. return q.getResultList();
  80. }
  81.  
  82. @SuppressWarnings("unchecked")
  83. @Override
  84. public List<Object> listPesqQueryUmParametro(String query, Map<String, Object> params) {
  85. Query q = getEntityManager().createNativeQuery(query);
  86. for (String chave : params.keySet()) {
  87. q.setParameter(chave, params.get(chave));
  88. }
  89. return q.getResultList();
  90. }
  91.  
  92. @SuppressWarnings("unchecked")
  93. @Override
  94. public List<T> listPesqParam(String query, Map<String, Object> params) {
  95. Query q = getEntityManager().createQuery(query);
  96. for (String chave : params.keySet()) {
  97. q.setParameter(chave, params.get(chave));
  98. }
  99. return q.getResultList();
  100. }
  101.  
  102. @SuppressWarnings("unchecked")
  103. @Override
  104. public List<T> listPesqParam(String query, Map<String, Object> params, int maximo, int atual) {
  105. Query q = getEntityManager().createQuery(query).setMaxResults(maximo).setFirstResult(atual);
  106. for (String chave : params.keySet()) {
  107. q.setParameter(chave, params.get(chave));
  108. }
  109. return q.getResultList();
  110. }
  111.  
  112. @SuppressWarnings("unchecked")
  113. @Override
  114. public List<T> listPesq(String query, int maximo, int atual) {
  115. Query q = getEntityManager().createQuery(query).setMaxResults(maximo).setFirstResult(atual);
  116. return q.getResultList();
  117. }
  118.  
  119. @SuppressWarnings("unchecked")
  120. @Override
  121. public List<T> listPesqParamNativo(String query, Map<String, Object> params,
  122. int maximo, int atual) {
  123. Query q = getEntityManager().createNativeQuery(query).setMaxResults(maximo).setFirstResult(atual);
  124. for (String chave : params.keySet()) {
  125. q.setParameter(chave, params.get(chave));
  126. }
  127. return q.getResultList();
  128. }
  129.  
  130. @SuppressWarnings("unchecked")
  131. @Override
  132. public int count(String query, Map<String, Object> params) {
  133. if (query.isEmpty()) {
  134. return 0;
  135. }
  136. Query q = getEntityManager().createQuery(query);
  137. for (String chave : params.keySet()) {
  138. q.setParameter(chave, params.get(chave));
  139. }
  140. return Integer.parseInt(q.getSingleResult().toString());
  141. }
  142.  
  143. @SuppressWarnings("unchecked")
  144. @Override
  145. public int countNativo(String query, Map<String, Object> params) {
  146. if (query.isEmpty()) {
  147. return 0;
  148. }
  149. Query q = getEntityManager().createNativeQuery(query);
  150. for (String chave : params.keySet()) {
  151. q.setParameter(chave, params.get(chave));
  152. }
  153. return Integer.parseInt(q.getSingleResult().toString());
  154. // return q.getFirstResult();
  155. }
  156.  
  157. @SuppressWarnings("unchecked")
  158. @Override
  159. public T pesqParam(String query, Map<String, Object> params) {
  160. Query q = getEntityManager().createQuery(query);
  161. for (String chave : params.keySet()) {
  162. q.setParameter(chave, params.get(chave));
  163. }
  164. try {
  165. return (T) q.getSingleResult();
  166. } catch (NoResultException nre) {
  167. return null;
  168. }
  169. }
  170.  
  171. @Override
  172. public T pesquisarPorId(ID id) {
  173. // return (T) getEntityManager().find(oClass, id);
  174. return (T) getEntityManager().find(getClasseDominio(), id);
  175. }
  176.  
  177. @Override
  178. //@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
  179. public T salvar(T object) {
  180. // getEntityManager().clear();
  181. getEntityManager().persist(object);
  182. return object;
  183. }
  184.  
  185. @Override
  186. @TransactionAttribute
  187. public boolean salvar(Notificacao n, Protocolo p) throws Exception {
  188. if (n != null && p != null) {
  189. getEntityManager().persist(p);
  190. getEntityManager().persist(n);
  191. return true;
  192. }
  193. throw new Exception("Não foi possível realizar o salvamento desta notificação!");
  194. }
  195.  
  196. @SuppressWarnings("unchecked")
  197. @Override
  198. public List<T> todos() {
  199. String queryS = "FROM " + getClasseDominio().getSimpleName();
  200. Query query = getEntityManager().createQuery(queryS);
  201. return query.getResultList();
  202. }
  203.  
  204. @SuppressWarnings("unchecked")
  205. @Override
  206. public List<T> todos(int ordem) {
  207. String queryS = "SELECT obj FROM " + getClasseDominio().getSimpleName() + " obj ORDER BY " + ordem;
  208. Query query = getEntityManager().createQuery(queryS);
  209. return query.getResultList();
  210. }
  211.  
  212. @SuppressWarnings("unchecked")
  213. @Override
  214. public List<T> todos(int ordem1, int ordem2) {
  215. String queryS = "SELECT obj FROM " + getClasseDominio().getSimpleName() + " obj ORDER BY " + ordem1 + "," + ordem2;
  216. Query query = getEntityManager().createQuery(queryS);
  217. return query.getResultList();
  218. }
  219.  
  220. @Override
  221. public Object pesqCampoParam(String query, Map<String, Object> params) {
  222. Query q = getEntityManager().createQuery(query);
  223.  
  224. for (String chave : params.keySet()) {
  225. q.setParameter(chave, params.get(chave));
  226. }
  227.  
  228. try {
  229. return q.getSingleResult();
  230. } catch (NoResultException nre) {
  231. System.out.println(nre.getMessage());
  232. return null;
  233. }
  234. }
  235.  
  236. @Override
  237. public Object pesqCampo(String query) {
  238. Query q = getEntityManager().createQuery(query);
  239.  
  240. try {
  241. return q.getSingleResult();
  242. } catch (NoResultException nre) {
  243. return null;
  244. }
  245. }
  246.  
  247. @Override
  248. public Object pesqUmRegistro(String query, Map<String, Object> params) {
  249. Query q = getEntityManager().createNativeQuery(query);
  250. for (String chave : params.keySet()) {
  251. q.setParameter(chave, params.get(chave));
  252. }
  253. q.setMaxResults(1);
  254. try {
  255. return q.getSingleResult();
  256. } catch (NoResultException nre) {
  257. return null;
  258. }
  259. }
  260.  
  261. @SuppressWarnings("unchecked")
  262. @Override
  263. public List<Object> listPesqCampo(String query) {
  264. Query q = getEntityManager().createQuery(query);
  265. return q.getResultList();
  266. }
  267.  
  268. @SuppressWarnings("unchecked")
  269. @Override
  270. public List<Object> listPesqCampoParam(String query, Map<String, Object> params) {
  271. Query q = getEntityManager().createQuery(query);
  272. for (String chave : params.keySet()) {
  273. q.setParameter(chave, params.get(chave));
  274. }
  275. return q.getResultList();
  276. }
  277.  
  278. @SuppressWarnings("unchecked")
  279. @Override
  280. public List<T> pesquisaPorData(String query, Map<String, Object> params, Date dataHora) {
  281. Query q = getEntityManager().createQuery(query);
  282. if (q.getParameter("dataHora") == null) {
  283. return null;
  284. }
  285. q.setParameter("dataHora", dataHora, TemporalType.DATE);
  286. for (String chave : params.keySet()) {
  287. q.setParameter(chave, params.get(chave));
  288. }
  289. return q.getResultList();
  290. }
  291.  
  292. @Override
  293. public int queryExecute(String query) {
  294. Query q = getEntityManager().createNativeQuery(query);
  295. return q.executeUpdate();
  296. }
  297.  
  298. @Override
  299. public int queryExecute(String query, Map<String, Object> params) {
  300. if (query.isEmpty()) {
  301. return 0;
  302. }
  303. Query q = getEntityManager().createNativeQuery(query);
  304. for (String chave : params.keySet()) {
  305. q.setParameter(chave, params.get(chave));
  306. }
  307. return q.executeUpdate();
  308. }
  309.  
  310. @Override
  311. public Object query(String query) {
  312. try {
  313. Query q = getEntityManager().createNativeQuery(query);
  314. return q.getSingleResult();
  315. } catch (NoResultException nre) {
  316. return null;
  317. }
  318. }
  319.  
  320. @Override
  321. public int exclusaoEmMassa(String query, Map<String, Object> params) {
  322. Query q = getEntityManager().createQuery(query);
  323. for (String chave : params.keySet()) {
  324. q.setParameter(chave, params.get(chave));
  325. }
  326. return q.executeUpdate();
  327. }
  328.  
  329. @Override
  330. public int retornaMaior(String query) {
  331. Query q = getEntityManager().createNativeQuery(query);
  332. if (q == null || q.getSingleResult() == null) {
  333. return 0;
  334. }
  335. return Integer.parseInt(q.getSingleResult().toString());
  336. }
  337.  
  338. @Override
  339. public Object retornaMaior(String query, Map<String, Object> params) {
  340. Query q = getEntityManager().createNativeQuery(query);
  341. for (String chave : params.keySet()) {
  342. q.setParameter(chave, params.get(chave));
  343. }
  344. q.setMaxResults(1);
  345. try {
  346. return q.getSingleResult();
  347. } catch (NoResultException nre) {
  348. return nre.getMessage();
  349. }
  350.  
  351. }
  352.  
  353. @Override
  354. public Object retornaUmRegistro(String query, Map<String, Object> params) {
  355. Query q = getEntityManager().createQuery(query);
  356. for (String chave : params.keySet()) {
  357. q.setParameter(chave, params.get(chave));
  358. }
  359. q.setMaxResults(1);
  360. try {
  361. return q.getSingleResult();
  362. } catch (NoResultException nre) {
  363. return null;
  364. }
  365. }
  366.  
  367. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement