Ja, es kann getan werden. Alles, was Sie brauchen, ist die Fähigkeit InputStream
zu erhalten. In meinem Fall verwende ich meine eigene JPA-Klasse RulePackage
, um die Regelquelle als Byte [] beizubehalten, aber Sie könnten eine direkte JDBC-Verbindung verwenden, um auf BLOB/CLOB-Felder in Ihrem DB-Schema zuzugreifen. Wichtig ist auch gespeichert Regel Quelle Art der zu speichern, wird es erforderlich sein, wenn die Regel-Pakete:
switch(rulePackage.getRuleSourceType()) {
case DRL:
kbuilder.add(ResourceFactory.newByteArrayResource(rulePackage.getSource()), ResourceType.DRL);
break;
case EXCEL:
kbuilder.add(ResourceFactory.newByteArrayResource(rulePackage.getSource()), ResourceType.DTABLE, excelConfig);
break;
case CSV:
kbuilder.add(ResourceFactory.newByteArrayResource(rulePackage.getSource()), ResourceType.DTABLE, csvConfig);
break;
default:
throw new Exception("Rule package '" + rulePackage.getName() + "' has unknown type");
}
Sie in Erwägung ziehen könnte newInputStreamResource Methode, wenn mehr anwendbar in Ihrem Fall mit:
case DRL:
kbuilder.add(ResourceFactory.newInputStreamResource(new StringInputStream(myDrlAsString)), ResourceType.DRL);
break;
oder
case DRL:
kbuilder.add(ResourceFactory.newInputStreamResource(new ByteArrayInputStream(myDrlAsByteArr)), ResourceType.DRL);
break;
So ähnlich.