Создать две коллекции из одного и того же POJO в Spring data mongodb - PullRequest
0 голосов
/ 26 апреля 2018

Вариант использования: Я хочу иметь две коллекции с одинаковыми полями. В одной коллекции будут последние данные (скажем, за 15 дней), а в другой - старые данные (скажем, за последние 6 месяцев). Я хочу добиться этого с помощью одного POJO, так как будет проще выполнить запрос на основе даты, а затем преобразовать его в VO.

Итог: я хочу создать 2 коллекции из 1 POJO.

Пожалуйста, предложите.

1 Ответ

0 голосов
/ 26 апреля 2018
  1. Учитывая, что у вас есть похожий POJO

    @Document(collection = "domain")
    public class Domain {
    
        @Id
        private long id;
    
        @Indexed(unique = true)
        private String name;
    
        private Date createdDate;
    
        //getters and setters 
    }
    
  2. Вы можете написать QueryMethods в Repo, чтобы извлечь условные данные из POJO

    public interface DomainRepository extends MongoRepository<Domain, Long> {
    
        Domain findFirstByName(String domain);
    
        List<Domain> findByCreatedDateBetween(Date thresholdDate1, Date thresholdDate2);
    
    }
    
  3. Звоните QueryMethods в свой контроллер / методы, чтобы получить желаемый коллекции

    @Autowired
    DomainRepository domainRepo;
    
    List<Domain> 15daysOld = domainRepo.findByCreatedDateBetween(15daysOldDate, currentDate);
    List<Domain> 6monthsOld = domainRepo.findByCreatedDateBetween(6monthsOldDate, currentDate);
    
...