0
Droolsのドキュメントから次のコードを参照して、Kie-serverのファクトを変更しています。kie-serverのファクトを変更する際の問題
1 BatchExecutionCommand command = new BatchExecutionCommand();
2 command.setLookup("ksession1");
3 ModifyCommand modifyCommand = new ModifyCommand();
4 modifyCommand.setFactHandleFromString("123:234:345:456:567");
5 List<Setter> setters = new ArrayList<Setter>();
6 setters.add(new SetterImpl("age", "30"));
7 modifyCommand.setSetters(setters);
8 command.getCommands().add(modifyCommand);
6行目では、文字列ではなくオブジェクトに属性を設定したいと考えています。例えば、
6 setters.add(new SetterImpl("id", UUID.randomUUID());
しかし、SetterImpl(文字列アクセサ、文字列値)APIは、文字列パラメータを受け付けます。
Stringの代わりにオブジェクトをKie-serverに送るために使用できるSetterImplの実装はありますか?
Public class Test{
UUID id;
public UUID getId(){
return id;
}
public void setId(UUID id){
this.id = id;
}
}
ラウン、あなたの提案は動作しません!問題は、Drools-CoreエンジンのModifyCommandクラス内のgetMvelExpr()関数が常にパラメータをStringに変換することです。あなたの提案に対して、エンジンは単に引用符を削除し、キーストリングで値を追加します。 – APatel