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()
行は Null ポインター例外をスローします。クラスを属性セクションに移動すると、これを機能させることができます (addressService.get(Address.class, 1)
ただし、特に複数の異なるクラスが呼び出されている場合は、これがやや乱雑であることがわかります.
すべての関数に値を繰り返し追加せずに、クラスに値を正しく生成させる方法はありますか?
前もって感謝します。