【发布时间】:2008-12-17 18:43:26
【问题描述】:
我正在一家中型公司开始工作,主要负责编写与其 ERP 系统交互的自定义应用程序。这是我第一次做这种工作,所以 ERP 概念对我来说是新的,我正在学习它。
到目前为止,我只编写了两个应用程序,并且学习了数据库模型,并且只学习了完成工作所需的量,但即使数量有限,我也可以开始看到大局的形成。然后我的想法是编写一个库,其中存储了所有映射/模型对象,以便新应用程序可以引用这个库。之后,每个应用程序将创建自己的存储库,将访问权限限制为只访问他们需要的内容和有意义的视角。
我遇到的问题是如何处理 (N)Hibernate 映射中的关系。如果我有一个在此基础库中映射的具有完整关系的订单对象,则没有什么能阻止某人永远旅行这些关系(假设我是唯一的程序员......)。因此,从这个意义上说,使用存储库作为一种范围限制根本行不通。
如果我限制此订单对象的 (N)Hibernate 映射中的关系,则存储库会返回一个订单对象,该对象仅绑定其范围所需的关系。缺点是我现在必须为每个项目创建映射,而不是只有一个“映射存储”。
其他人如何处理这个问题?
有点不相关,但我也一直在将可能由多个关系组成的 (N)Hibernate 持久对象翻译成一种更适合特定应用程序的单一非持久对象(通常受用户界面)。这是一个常见的事情,还是我通过获取返回的对象并将它们转换为其他东西来丢弃 (N)Hibernate 的一些好处?
ps。关于 DDD 标签...我不知道这是否是 DDD 详细介绍的内容,但我确实订购了这本书。不过,在本书到达之前,我不确定是否有好的资源可供查看。
【问题讨论】:
标签: nhibernate hibernate dns domain-driven-design