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