【发布时间】:2014-09-10 18:12:22
【问题描述】:
我有一个 Tomcat 应用程序,它使用从 Eclipse/JPA 自动生成的实体。然后,我手动编写了与数据库接口的 DAO。
我看到保持实体简单的显着好处。例如规范说它必须有一个空白的构造函数。不理会它们意味着如果数据库架构发生更改,我可以重新生成它们。但我很想扩展它们。
几个问题...
如果我创建一个新实体,我希望某些字段具有非空值。如果我有一个空的构造函数,我不能在那里做。例如status='New', Date created = new Date() etc.
我意识到我可以使用工厂。但是,那应该在 DAO 内部说吗?例如DAO.getNewObject()?
同样,如果我想使用测试或验证逻辑,那该去哪里?例如完整性分数 = 如果填写姓名、地址、电话等?这种东西应该存在于 DAO 中吗?还是实体?或者是其他东西?
我是否应该有一个扩展实体并将逻辑放入其中的新类?
在某处是否涵盖了思考类的建筑材料?
【问题讨论】:
-
是的。但我没有使用它们来构建它。而且我不会在中途切换......
-
> 如果数据库架构发生变化,我可以重新生成它们。