Using Java generics for JPA findAll() query with WHERE clause

前端 未结 4 1271
庸人自扰
庸人自扰 2020-12-14 02:50

So, After a 10+ year break I\'m coming back to Java and trying out stuff with JPA and Java generics. I\'ve created a generics based findAll(other) JPA query tha

4条回答
  •  一向
    一向 (楼主)
    2020-12-14 03:29

    I found this page very useful

    https://code.google.com/p/spring-finance-manager/source/browse/trunk/src/main/java/net/stsmedia/financemanager/dao/GenericDAOWithJPA.java?r=2

    public abstract class GenericDAOWithJPA {
    
        private Class persistentClass;
    
        //This you might want to get injected by the container
        protected EntityManager entityManager;
    
        @SuppressWarnings("unchecked")
        public GenericDAOWithJPA() {
                this.persistentClass = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
        }
    
        @SuppressWarnings("unchecked")
        public List findAll() {
                return entityManager.createQuery("Select t from " + persistentClass.getSimpleName() + " t").getResultList();
        }
    }
    

提交回复
热议问题