Thay vì sử dụng phương thức getObjects(), bạn có thể sử dụng truy vấn. Truy vấn giống như các quy tắc không có RHS:
query "getObjectsOfClassA"
$result: ClassA()
end
Bạn có thể sử dụng toàn bộ sức mạnh của ngôn ngữ DRL trong các truy vấn để tạo các mẫu khớp thực sự phức tạp. Bạn thậm chí có thể vượt qua đối số cho truy vấn quá: http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html_single/#d0e7632
Sau đó, trong mã java của bạn, bạn có thể gọi truy vấn của bạn sử dụng:
QueryResults results = ksession.getQueryResults("getObjectsOfClassA");
for (QueryResultsRow row : results) {
ClassA classA = (ClassA) row.get("$result"); //you can retrieve all the bounded variables here
//do whatever you want with classA
}
Nếu bạn cần tập hợp tất cả ClassA bạn có thể sử dụng một chức năng tích lũy trong truy vấn của bạn.
Hy vọng nó giúp,
Nguồn
2013-02-23 15:18:17