if you company data objects are mapped with hibernate (and they have a string or long id), then you can just store them in the jbpm process variables. jBPM will store a reference to the company objects instead of the real value.
jBPM tables and your company tables have to be accessed through the same hibernate session and hence jBPM tables and your company tables have to be in the same db.
of course, you can always store the FK's of your company objects in the process variables. That is a little more clumsy, cause you have to manage the fetching and updating yourself. But it works as well.
Those are common patterns.