【发布时间】:2014-10-31 19:47:52
【问题描述】:
嗯,我的项目中有一些问题困扰着我。我有很多很多休眠实体类,每个类都有自己的 DAO(继承自 GenericDAO)。它们中的大多数没有特定的功能,只是一个继承 GenericDAO 的空类。
因为我认为那些是不必要的类,所以我决定使用反射来摆脱它们。 经过一些编码后,我对除 GenericDAO 之外没有特定方法的所有类的调用遵循以下设计:
DAO.forClass(MyClass.class, MyClassPK.class).genericDAOMethod();
它就像一个魅力。我现在摆脱了空的 DAO。但是通过互联网搜索后,我发现像我这样的解决方案很少甚至没有,所以问题是:
这种方法在很大程度上是错误的还是坏的?为什么没有人考虑做这样的事情?
【问题讨论】:
-
你能说明这是如何使用反射的吗?我认为,仅仅引用一个类并不足以称之为反射。我认为你可以在调用端使用 GenericDao
,并在你的依赖注入系统中生成这些 daos(假设你有一个)。 -
我的 GenericDAO 使用 Hibernate,所以我只需要通过 MyClass 和 MyClassPK 实例化一个新的 GenericDAO。我不在这种 DAO 中使用 CDI。换句话说,GenericDAO 类声明是这样的:public class GenericDAO
.
标签: java hibernate reflection dao