나는 내 문제 사실 중 하나가 어떤 계획 엔티티와 관련이 있는지 추적 할 수 있도록 쉐도우 변수를 구현하려고 시도했다. 최종 목표는 내 규칙을 단순화/가속화하는 것이다.InverseRelationShadowVariable은 반드시 planningEntity에 속해야합니까?
나는 optaplanner doc about shadow variables, 특히 cloudBalancing 예를보고 있습니다. "정상적인"클라우드 밸런싱에서 CloudComputer
클래스는 이 아니며 PlanningEntity입니다. 그러나 아래 예제에서는 planningEntity로 주석 처리되어 있습니다.
그림자 변수를 호스팅하는 클래스가 계획 엔티티 여야한다는 것을 이해해야합니까? planningEntity가 PlanningVariable을 가져야한다고 생각했지만 CloudComputer
은 그렇지 않습니다. 대답이 '예'인 경우, 설명서에서 이에 대해 더 명확하게 설명하는 것이 좋습니다. 대답이 '아니오'인 경우이 예에서 실수가 있습니다. @PlanningEntity
주석은 CloudComputer에서 삭제해야합니다.
다음 예는 문서에서이다
비 계획 체인 변수, 쌍방향 관계가 일대일 관계로 많이해야한다.
@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' 대신 shadow vars를 포함 할 수 있다는 혼란이있는 곳에서 문서의 내용을 지적 할 수 있습니까? 나는 그것을 고치고 싶다. –
@ GeoffreyDeSmet 4.3.3 (엔티티 계획에 관한 섹션)에는 "각 계획 엔티티 클래스에는 하나 이상의 계획 변수가 있습니다." 또한 그림자 변수에 대한 섹션에서 계획 엔티티에 대해 언급 한 것을 본 적이 없다고 생각합니다. 계획 엔티티 클래스에 있어야한다는 것이 중요한 시점입니다. 이것이 제가 예제를 복제하려고 시도했을 때만 코드가 작동하지 않는 이유 였고 추가 주석을 발견했습니다. –
7.0 문서 용으로 수정 –