【发布时间】:2013-02-06 19:27:51
【问题描述】:
我已经为我的 spring/hibernate 项目配置了一个自定义的通用服务 DAO - 我可以轻松地从我的控制器中重用它。
它基本上看起来像这样:
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),但我觉得这有点不整洁,特别是当有多个不同的类被调用时。
有什么方法可以让类正确生成一个值,而无需重复地将其添加到我的所有函数中?
提前致谢。
【问题讨论】:
标签: java spring genericdao