请教一下如何控制这个聚合根的边界
请教大家一下,如何控制这个聚合根的边界啊
场景如下: Order,Customer, Country
订单有一一对应的客户,客户有自己的国家
我认为Order,Customer,Country都是聚合根
因为系统有维护Customer和Country的页面
-------------------------------------------------
问题来了
使用hibernate,一不小心就通过导航,越出边界了
比如以下语句,order通过customer,竟然导航到country了
Order order = OrderRepository.GetbyId("12");
order.customer.country.countryName = "usa";
OrderRepository.save(order);
------------------------------------------
这个国家名字到底应不应该修改呢
如果设定hibernate的级联关系,会修改数据库
但是按照DDD的理论,应该由聚合根来保存country啊
另外程序员写出了这样的代码,主观上是想修改国家的,如果数据库不修改,程序员估计很奇怪
如何防止程序员写出这样的代码呢