OptaPlanner @PlanningPin、空实体和 .fromUniquePair()
OptaPlanner @PlanningPin, null entities and .fromUniquePair()
我需要一些说明,也许有人可以帮助我了解 .from()
的固定实体和空实体。我知道我需要使用 .fromUnfiltered()
来让他们进入信息流。但是 .fromUniquePair()
,如果实体为 null 并被固定,它们会沿着流传播吗?类似的问题,如果我将 .fromUnfiltered()
与 .join()
一起使用,join()
是否会在第二个 class 中获取空实体和固定实体?
谢谢!
固定对约束流没有影响 - from() 和 join() 将始终包含固定的实体。因此,让我们专注于未初始化的实体。
关于 fromUniquePair(Something.class)
需要了解的是,它是以下内容的 shorthand:
from(Something.class)
.join(Something.class, ...) // Replace "..." with joiners to get unique pairs.
因此,左侧和右侧都将仅检索已初始化的实体。如果你想要包含未初始化实体的唯一对,你将不得不放弃 shorthand 并使用嵌套流:
fromUnfiltered(Something.class)
.join(fromUnfiltered(Something.class), ...) // Replace "..." with the same joiners as above.
我需要一些说明,也许有人可以帮助我了解 .from()
的固定实体和空实体。我知道我需要使用 .fromUnfiltered()
来让他们进入信息流。但是 .fromUniquePair()
,如果实体为 null 并被固定,它们会沿着流传播吗?类似的问题,如果我将 .fromUnfiltered()
与 .join()
一起使用,join()
是否会在第二个 class 中获取空实体和固定实体?
谢谢!
固定对约束流没有影响 - from() 和 join() 将始终包含固定的实体。因此,让我们专注于未初始化的实体。
关于 fromUniquePair(Something.class)
需要了解的是,它是以下内容的 shorthand:
from(Something.class)
.join(Something.class, ...) // Replace "..." with joiners to get unique pairs.
因此,左侧和右侧都将仅检索已初始化的实体。如果你想要包含未初始化实体的唯一对,你将不得不放弃 shorthand 并使用嵌套流:
fromUnfiltered(Something.class)
.join(fromUnfiltered(Something.class), ...) // Replace "..." with the same joiners as above.