我一直在試圖實現一個影子變量,以便我的一個問題事實可以跟蹤哪個計劃實體與它有關,最終目標是簡化/加速我的規則。InverseRelationShadowVariable必須屬於一個planningEntity嗎?
我正在查看optaplanner doc about shadow variables,特別是cloudBalancing示例。在「正常」雲平衡中,類CloudComputer
是而不是 a planningEntity。但在下面的例子中,它被註解爲一個planningEntity。
我們是否明白,「託管」影子變量的類應該是一個計劃實體?我認爲一個planningEntity必須有一個規劃變量,但CloudComputer
沒有。如果答案是肯定的,我建議在文檔中更明確一些。如果答案爲否,那麼在這個例子中有一個錯誤(@PlanningEntity
註釋應該從CloudComputer中刪除)。
下面的例子是從DOC:
對於非鏈可變規劃,雙向關係必須是多對一的關係。爲了映射表規劃變量之間的雙向關係,註釋主側(這是真實的一面),作爲一個正常的規劃變量:
@PlanningEntity
public class CloudProcess {
@PlanningVariable(...)
public CloudComputer getComputer() {
return computer;
}
public void setComputer(CloudComputer computer) {...}
}
和:
@PlanningEntity
public class CloudComputer {
@InverseRelationShadowVariable(sourceVariableName = "computer")
public List<CloudProcess> getProcessList() {
return processList;
}
}
而且,這是真的所有這一切都需要,以便在解決期間克隆CloudProcess
以使processList保持最新狀態?
您能否指出文檔中的哪些位置存在混淆,計劃實體可能包含陰影變量而不是'@ PlanningVariable'?我想解決這個問題。 –
@GeoffreyDeSmet在4.3.3(關於計劃實體的部分)中指出:「每個計劃實體類都有一個或多個計劃變量。」另外,我認爲我沒有在影子變量的章節中看到關於計劃實體的任何提及,因爲這是一個非常重要的問題,他們應該在計劃實體類中。我意識到這就是爲什麼我的代碼不工作,只有當我試圖複製該示例,並注意到額外的註釋。 –
固定爲7.0文檔 –