2016-05-16 14 views
1

期間またはShift期間のいずれかにEmployeeを割り当てたいとします。OptaPlannerで複数の@PlanningEntityCollectionPropertyを使用できますか?

@PlanningSolution 
public class RosterSolution implements Solution<HardSoftScore> { 

    @PlanningEntityCollectionProperty 
    private List<Shift> shift = new ArrayList<Shift>(); 

    @PlanningEntityCollectionProperty 
    private List<Reserve> reserve = new ArrayList<Reserve>(); 
    .... 



} 

各シフトと予約エンティティは

@PlanningVariable(valueRangeProviderRefs={"employees"}, nullable= true) 
    private Employee emp; 

の単一@PlanningVariableそれが溶液中で複数の@PlanningEntityCollectionProperty注釈を使用することは可能ですがありますか?その使用法の例は見ていません。 @PlanningSolutionのドキュメントには、「それぞれの計画ソリューションは、少なくとも1 PlanningEntityCollectionPropertyまたはPlanningEntityPropertyプロパティを持っている必要がありますが、実装方法はわかりません。

タイプコードを使用するプランニングエンティティのリストを避けようとしていますが、タイプコードを(状態コード/ストラテジパターンと置き換えることができる)場合を除き、可能です。

+0

Java8では、同じタイプの複数の注釈を使用できます。私は彼らが実際にOptaPlannerで動作するかどうかはわかりません... –

+0

ありがとうございます。私はフレームワークが複数の@PlanningEntityCollectionPropertyアノテーションでどのように動作するかにもっと関心があります。私はそれが大丈夫コンパイル知っている。 – busdrivingtupperware

答えて

0

はい、できます。例はCoachShuttleGatheringSolutionVehicleRoutingSolutionです。

複数の計画エンティティクラス(そのうちのいくつかはシャドウエンティティクラスになることがあります)がある場合に便利です。しかし、あなたが本当に必要な場合を除き、そこに行かないでください。

+0

ありがとうございました。 – busdrivingtupperware

関連する問題