Je suis débutant à baver l'utilisation et j'ai petite requête. Je mapper comme ci-dessous pour laquelle j'ai créé POJO en utilisant schemaJson2Pojo java api:Comment faire pour obtenir des drools imbriqués de classe
{
"svo": [
{
"clause": "Sunanda Pushkar died of poisoning",
"svoMetadata": {
"person": "sunanda pushkar",
"subjectType": "person_coref"
},
"objectPOS": "IN VBG;",
"isRelatedKeySVO": false,
"subjectPOS": " NNP NNP",
"subject": "Sunanda Pushkar",
"confidence": 0.9266232318014763,
"verb": "died",
"verbPOS": "VBN",
"source": "OpenIE",
"isKeySVO": true,
"object": "of poisoning;"
}]
}
Note: svo.svoMetadata a personne Nom
Ainsi, sur l'utilisation schemaJson2Pojo api, les classes suivantes sont générées:
class RootDoc
{
private List<Svo> svo = new ArrayList<Svo>();
public List<Svo> getSvo() {
return svo;
}
public void setSvo(List<Svo> svo) {
this.svo = svo;
}
}
class Svo
{
private SvoMetadata svoMetadata;
public SvoMetadata getSvoMetadata() {
return svoMetadata;
}
public void setSvoMetadata(SvoMetadata svoMetadata) {
this.svoMetadata = svoMetadata;
}
}
class SvoMetadata
{
private String person;
public void setPerson(String person) {
this.person = person;
}
public SvoMetadata withPerson(String person) {
this.person = person;
return this;
}
}
Je transmets RootDoc à DRL et je suis en train obtenir une instance de « svoMetadata » comme ci-dessous que souhaitent mettre à jour personne DRL RHS:
règle DRL est comme ci-dessous:
when
$mastermap : EsRootDoc($svolist:svo)
$svo : Svo($svoMetadata2 : svoMetadata) from $svolist
// $svoMetadata: SvoMetadata($t: $svo.getSvoMetadata()) // this gives me error
then
$svoMetadata.setPerson("taranTaran"); // how do i get SvoMetadata instance to perform setPerson method????
comment puis-je par exemple SvoMetadata pour exécuter la méthode de setPerson ????
je devenais ci-dessous NPE: piscine-1-fil-1" Exception exécution conséquence de la règle "tre" en defaultpkg: java.lang.RuntimeException: ne peut pas invoquer la méthode: setPerson \t à org.drools.core.runtime .rule.impl.DefaultConsequenceExceptionHandler.handleException (DefaultConsequenceExceptionHandler.java:39) \t \t ... 13 plus causés par: java.lang.NullPointerException \t à sun.reflect.NativeMethodAccessorImpl.invoke0 (Méthode natif) – user3152549