2017-08-18 1 views
0

Dans la plupart des exemples de drools j'ai vu l'instance de Pojo étant passé comme faits à l'environnement bave, l'environnement de drools peut prendre des objets au lieu de pojo ??ne drools drl validation être fait pour les instances plutôt pojo

Plus d'infos ajouté selon les commentaires:

Object object= new ObjectMapper().readValue(json, 
Class.forName("com.EnrichmentService.EsRootDoc")); 

peut l'instance de l'objet ci-dessus (objet) est fournie à DRL et aurait bave sur sa propre instance baissés d'objets à l'instance de com.EnrichmentService.Thread72.EsRootDoc ​​comme il aurait besoin d'appeler des méthodes getter qui, je crois, pourraient être appelées uniquement sur un EsRootDoc ​​(une classe pojo étant créée au moment de l'exécution) et non sur une instance d'objet.

+0

AFAIK, POJO = plaine ancien objet Java – laune

+0

exactement laune. cas d'utilisation en dehors de l'ancien objet java simple pour bave itérations drl. merci – user3152549

+0

de quel genre d'objets parlez-vous? – jfneis

Répondre

1

Oui, absolument. Drools vérifie la classe réelle et la hiérarchie de l'interface des faits fournis.

Par exemple, si on a une règle:

rule X 
when 
    Person() 
then 
    ... 

Les deux extraits de code suivants fourniraient des résultats identiques:

Person p = new Person(); 
ksession.insert(p); 
ksession.fireAllRules(); 

Object p = new Person(); 
ksession.insert(p); 
ksession.fireAllRules();