将方法应用于 Room Dao

时间:2021-02-02 15:10:16

标签: android rx-java android-room rx-android

我正在开发一个应用程序,我在 Room 数据库中存储了一种保存他的纬度和经度的对象。我需要一个查询来检索此类对象的列表,其中包含靠近(假设为 5 公里)另一个 lat/lng 点的对象(我使用位于其他类中的名为 getVincentyDistance 的方法)。我现在不知道是否可以直接在 Room 中执行,或者我可以在我的存储库中使用 RXJava 从数据库中获取数据时实现它?我也想首先从数据库中获取项目,如果它们小于 20,我从网络中获取 这是代码:

// TODO
@Query("SELECT * FROM Place as P WHERE getVincentyDistance(P.latitude, P.longitude, :lat, :lng) < :distance")
Flowable<List<Place>> getPlaces(double lat, double lng, double distance);


return placesDao
                    .getPlaces(latitude, longitude, rad)
                    .flatMap(places -> {
                        if (places.size() < 20) {
                            return placesService.getPlaces(location, radius, query);
                        } else {
                            return Single.just(places);
                        }
                    });

0 个答案:

没有答案
相关问题