Avoiding Type Safety Warnings Using Hibernate Query.list()

前端 未结 3 1384
囚心锁ツ
囚心锁ツ 2020-12-21 04:12

Is it possible to avoid cast warnings after using createQuery().list?

//Type safety: The expression of type List needs unchecked conversion to conform to Lis         


        
3条回答
  •  独厮守ぢ
    2020-12-21 04:52

    Since JPA 2.0 , EntityManager has added following overloaded createQuery()/createNamedQuery() methods that return TypedQuery to solve the propblem:

    TypedQuery entityManager.createQuery(CriteriaQuery criteriaQuery)
    
    
    TypedQuery entityManager.createQuery(java.lang.String qlString, java.lang.Class resultClass)
    
    
    TypedQuery entityManager.createNamedQuery(java.lang.String name, java.lang.Class resultClass)
    

    Example:

    @Repository
    public class UsersRepositoryImpl implements IUsersRepository {
    
            @PersistenceContext(unitName="SPRING_BOOT_JPA_DS_PU")
    
        private EntityManager entityManager;
    
        @Override
        public List listUser() {
            String queryString = "SELECT U FROM " + User.class.getName() + " U";
            // Query query =entityManager.createQuery(queryString);
            // Use TypedQuery instead of Query
            // Requires JPA 2.0
            TypedQuery query = entityManager.createQuery(queryString, User.class);
            List resultList = query.getResultList();
    
            return resultList;
        }
    
    
        }
    

提交回复
热议问题