The first 8 digits of the id-attribute hardly ever change and represent the entity. If you are certain that the number of objects will never be above 10 million (9digits) you can use the first 8 digits of the id-attribute and compare it to the value of the entity.
This is not considered "clean" programming, but very likely it works and you will never have to change it.
If I recall correctly each entity in your modeler has a model guid which is the same for each runtime instance. In the database that guid is used to associate the entity to a short_id, which is different per database (so local/accp/prod). This short_id is used to determine the record id for that specific entity in that database.
In other words, for each entity in your application there is a short id which is used in the generation of the object id.
If you know the object id you can figure out the table by reversing this process and determining the short_id, however its been a long time ago (8 years or so that i looked into this). I believe it had to do with 16 bits for entity and the rest of the bits for uniqueness and a bit shift left operation.
I know its not a clear cut answer and solution to your problem (Tim's solution might be good enough), but if you are looking for "technically correct" this might point you in the right direction.