为每个下拉列表创建存储库

时间:2016-02-16 18:00:02

标签: spring-data spring-data-jpa spring-data-rest

订单是聚合根,城市由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

1 个答案:

答案 0 :(得分:1)

你是否曾尝试在城市领域做一个与众不同的事情,在你的OrderRepository

中这样做
Query("select distinct(o.cities.name) from Orders o") 
List<String> findAllCity();