私のコードでジェネリックを使用しようとしました。 私はBDから情報を取得ダオありますHibernateを使用したジェネリックスはいつ基準を使用する必要がありますか?
@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 extende BasicDAOImpl
public class WorkoutDAOImpl extends BasicDAOImpl<Workout> implements WorkoutDAO {}
豆:
:私は私のコードで書く@Bean
public WorkoutDAO workoutDAO(){
return new WorkoutDAOImpl();
}
workoutDAO.getAllByKey(int 2)
と Criteria criteria = session.createCriteria(type)
でエラー
java.lang.NullPointerException
を取得します。
なぜですか? Criteria criteria = session.createCriteria(Workout.class)
を書き込むと、エラーは発生しません。
PS /申し訳ありませんか私の英語:)