I made the problem go away but I don't understand why. I have a rule that updates a field in a process variable pojo.
$vars :PIvars() from (PIvars)$process.getVariable("vars");
eval($vars.getAppId() == 0);
System.out.println("!!Begin firing rule applicationReady " + $vars);
# $process.setVariable("vars", $vars);
System.out.println("!!End firing rule applicationReady" + $vars);
Commenting out $process.setVariable("vars", $vars); works with both JPA and without. My pojo is inserted as a Fact. Salaboy's example
rule "New Ambulance for Heart Attack Emergencies"
Emergency(type == "Heart Attack") from $process.getVariable("emergency")
System.out.println("A new Ambuance is being created!");
Ambulance ambulance = new Ambulance("MyAmbulance");
Creates a new pojo, where mine just sets a field variable and in my case I'm not sure what is the reliable way to do it.