That or the other way around: Use a businesskey in jBPM that you fill with the key relevant to your case. Or do both....
Would that be via GraphSession.getProcessInstance(definition, key) or something else?
It depends on your flow,
If you first work with your data models and want to load the process based on the active DOs you are working with, store the JBPM key/id in your data model,
If your flow start with working on business processes, and based on the business processes you want to load certain DOs, then store the keys of the DOs in the business process,
Uhmmm.... I cannot follow this line of reasoning. I use the businesskey for this all the time and it works both ways. One without the other never makes sense (in my cases). They are created almost simultaneously.