OptaPlanner @PlanningPin, нулевые сущности и .fromUniquePair()

#optaplanner

Вопрос:

Мне нужно некоторое разъяснение, может быть, кто-нибудь может помочь мне с закрепленными и пустыми сущностями .from() . Я понимаю, что мне нужно использовать .fromUnfiltered() , чтобы получить их в потоке. Но как насчет .fromUniquePair() того , распространяются ли сущности по потоку, если они пусты и закреплены ? Аналогичный вопрос , если я использую .fromUnfiltered() с a .join() , будут join() ли приниматься нулевые и закрепленные сущности во втором классе?

Спасибо!

Ответ №1:

Закрепление не влияет на потоки ограничений — как из (), так и из() всегда будут включать закрепленные объекты. Поэтому давайте сосредоточимся на неинициализированных сущностях.

Дело в том, чтобы понять, fromUniquePair(Something.class) что это сокращение для следующего:

 from(Something.class)
   .join(Something.class, ...) // Replace "..." with joiners to get unique pairs.
 

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

 fromUnfiltered(Something.class)
    .join(fromUnfiltered(Something.class), ...) // Replace "..." with the same joiners as above.
 

Комментарии:

1. Здравствуйте, большое вам спасибо за этот очень четкий ответ, он мне очень помогает!