JPA-запрос Spring Data на примере с доступом к атрибутам вложенных объектов - PullRequest
0 голосов
/ 18 октября 2018

Я использую Query by Example и хочу узнать, как я могу найти объекты с определенными свойствами во вложенных объектах.

Кто-нибудь планирует?

Вот мой пример Код:

    ExampleMatcher matcher = ExampleMatcher.matching()
      .withMatcher("offer2product.id.productId", match -> match.exact()
              );

    Offer2ProductId id = new Offer2ProductId();
    id.setProductId(1337L);

    Offer2Product offer2Product = new Offer2Product();
    offer2Product.setId(id);

    Set<Offer2Product> offer2productSet = new HashSet<>();
    offer2productSet.add(offer2Product);

    Offer probe = new Offer();
    probe.setOffer2productSet(offer2productSet);

    Example<Offer> example = Example.of(probe, matcher);
    List<Offer> offerList = offerRepository.findAll(example);

1 Ответ

0 голосов
/ 18 ноября 2018

Документация данных Quoting Spring: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#query-by-example

В настоящее время только свойства SingularAttribute могут использоваться для сопоставления свойств.

В вашем примере вы хотите выполнить поиск по свойству, которое является Set <> (offer2productSet), то есть PluralAttribute - поиск по этому полю невозможен.Он будет игнорироваться при построении запроса, как можно увидеть здесь:

https://github.com/spring-projects/spring-data-jpa/blob/master/src/main/java/org/springframework/data/jpa/convert/QueryByExamplePredicateBuilder.java#L112

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...