【发布时间】:2016-10-10 05:42:58
【问题描述】:
我尝试在我的代码中使用泛型。 我有从 BD 获取信息的 Dao:
@Component
public class BasicDAOImpl<T> implements BasicDAO<T> {
private Class<T> type;
public BasicDAOImpl(Class<T> type) {this.type = type;
}
public BasicDAOImpl() {
}
@Autowired
SessionFactory sessionfactory;
@Override
@Transactional
public List<T> getAllByKey(int id) {
List<T> list = new ArrayList<>();
try{
Session session = sessionfactory.getCurrentSession();
Criteria criteria = session.createCriteria(type);
criteria.add(Restrictions.eq("parentid", id));
list.addAll(criteria.list());
}catch (HibernateException e){}
return list;
}
我有: WorkoutDAOImpl 扩展 BasicDAOImpl
public class WorkoutDAOImpl extends BasicDAOImpl<Workout> implements WorkoutDAO {}
豆子:
@Bean
public WorkoutDAO workoutDAO(){
return new WorkoutDAOImpl();
}
我写在我的代码中:
workoutDAO.getAllByKey(int 2)
并得到错误
java.lang.NullPointerException
在
Criteria criteria = session.createCriteria(type)。
为什么?
如果写Criteria criteria = session.createCriteria(Workout.class),则不会出现任何错误。
PS/对不起或我的英语:)
【问题讨论】:
标签: java spring hibernate generics dao