I've used JPA for a while. Having an entityManager that performs your SQL operations is great.
I've noticed that JDO (DataNucleous) goes beyond JPA and brings persistence to other datasources, XML among those
Not sure if I grasped the concept entirely correct, but I wonder if it could do something like SOAP.getObjectId(entity) then DB.makePersistent(entity) and viceversa, provided I can connect to SOAP