订单是聚合根,城市由OrderRepository管理,如下所示 -
Order -> ManyToOne -> City
City -> No relation -> Order
List<Order> findByCity(City city) // OrderRepository
对于cities表,因此我没有创建 CityRepository 。
我因为Order在findByCity中包含它而避免为City创建存储库。
Problem : I have to now show a dropdown in client will all cities.
为City创建存储库将在City上提供findAll()并获取所有城市,但由于我们有2个存储库,因此Order不再是Aggregate。
使用SDR是否有更好的方法,因为对于UI中的每个下拉列表,我必须创建一个存储库以将其作为分页资源公开。
我能想到的一个:
@Query("select c from City c")
List<City> findAllCity(); //OrderRepository instead of CityRepository
答案 0 :(得分:1)
你是否曾尝试在城市领域做一个与众不同的事情,在你的OrderRepository
中这样做Query("select distinct(o.cities.name) from Orders o")
List<String> findAllCity();