Весеннее родовое имя класса Дао
Я настроил настраиваемую универсальную службу DAO для своего проекта spring / hibernate - идея заключается в том, что я могу легко использовать его из своих контроллеров.
По сути это выглядит так:
public class DefaultService<T> {
private Class<T> e;
public String className(Class<T> e) {
String clip = e.getName();
clip = clip.substring(clip.lastIndexOf('.') + 1, clip.length());
return clip;
}
public List<T> getAll(Integer status) {
Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("FROM " + className(e) + " WHERE status = " + status);
return query.list();
}
...
На который ссылаются:
@Autowired
public DefaultService<Address> addressService;
addressService.get(1);
ОднакоString clip = e.getName()
строка выдает исключение нулевого указателя. Я могу заставить это работать, если я перемещаю класс в раздел атрибутов (такaddressService.get(Address.class, 1)
но я нахожу это несколько неопрятным, особенно когда к нам обращаются несколько разных классов.
Есть ли способ заставить класс сгенерировать значение правильно, без повторного добавления его во все мои функции?
Заранее спасибо.