Advertisement
Guest User

Untitled

a guest
Jan 20th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. package net.thoughtforge.dao.jpa;
  2.  
  3. import java.lang.reflect.ParameterizedType;
  4. import java.util.List;
  5. import net.thoughtforge.dao.PersistentEntityDao;
  6. import net.thoughtforge.model.PersistentEntity;
  7. import org.springframework.orm.jpa.JpaTemplate;
  8.  
  9. public abstract class PersistentEntityDaoImpl implements PersistentEntityDao {
  10.  
  11. private Class entityClass;
  12. private JpaTemplate jpaTemplate;
  13.  
  14. @SuppressWarnings(value="unchecked")
  15. public PersistentEntityDaoImpl(JpaTemplate jpaTemplate) {
  16. this.jpaTemplate = jpaTemplate;
  17. ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass();
  18. this.entityClass = (Class) genericSuperclass.getActualTypeArguments()[0];
  19. }
  20.  
  21. public final Entity findByIndexId(Integer indexId) {
  22. return (Entity) jpaTemplate.find(entityClass, indexId);
  23. }
  24.  
  25. @SuppressWarnings("unchecked")
  26. public final List findByNamedQuery(String queryName) {
  27. return (List) jpaTemplate.findByNamedQuery(queryName);
  28. }
  29.  
  30. @SuppressWarnings("unchecked")
  31. public final List findByNamedQueryAndParams(String queryName, Object ...params) {
  32. return (List) jpaTemplate.findByNamedQuery(queryName, params);
  33. }
  34.  
  35. public final Entity findUniqueByNamedQuery(String queryName) {
  36. List results = findByNamedQuery(queryName);
  37. if (results.isEmpty()) {
  38. return null;
  39. } else {
  40. return results.get(0);
  41. }
  42. }
  43.  
  44. public final Entity findUniqueByNamedQueryAndParams(String queryName, Object ...params) {
  45. List results = findByNamedQueryAndParams(queryName, params);
  46. if (results.isEmpty()) {
  47. return null;
  48. } else {
  49. return results.get(0);
  50. }
  51. }
  52.  
  53. public final Entity merge(Entity persistentEntity) {
  54. return (Entity) jpaTemplate.merge(persistentEntity);
  55. }
  56.  
  57. public final void refresh(Entity persistentEntity) {
  58. jpaTemplate.refresh(persistentEntity);
  59. }
  60.  
  61. public final void remove(Entity persistentEntity) {
  62. jpaTemplate.remove(persistentEntity);
  63. }
  64.  
  65. public final void save(Entity persistentEntity) {
  66. jpaTemplate.persist(persistentEntity);
  67. }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement