Spring JpaRepository Найдите все на примере необязательных зависимостей

#spring #jpa

Вопрос:

Я хотел бы использовать интерфейс findAll(Example<S> example) репозитория JPA.

В классе сущностей, который я делаю findAll() , есть две ссылки на другие сущности. Любой из них равен нулю.

 class Entity {
  String name;
  EntityA referenceEntityA;
  EntityB referenceEntityB;
}

class EntityA {
  String nameA;
}

class EntityB {
  String nameB;
}
 

экземпляры выглядят так:

 new Entity(name:'MainEntity',refA: null, refB:new EntityB(nameB:'refB'))
new Entity(name:'MainEntity',refA: new EntityA(nameA:'refA'), refB: null)
 

Теперь я хотел бы найти все сущности, соответствующие моему примеру, в котором я хочу выполнить логическое ИЛИ (или внешнее соединение) для указанных сущностей.

 Entity probe=new Entity(name:'M',refA: new EntityA(nameA:'ref'), refB: new EntityB(nameB:'ref')

jpaRepository.findAll(Example.of(probe, ExampleMatcher.matchingAny().withStringMatcher(ExampleMatcher.StringMatcher.STARTING)))
 

Если я установлю обе ссылки в своем экземпляре зонда, функция findAll всегда возвращает значение null, так как ни у одной сущности не установлены обе ссылки.

Есть ли способ использовать пример api в таком сценарии ?

Спасибо, детлеф