Sigh, should have gone into the persistence forum, sorry about that. :-(
I'm not sure this would work... and I guess the persistence forum would be better... but how about this
all of the 10 schemas are identical, right? and accessed by logging into the same db server under a different name.... am I correct or can you set it up this way? Can you create views (or add a column) that identifies which schema any particular row came from? (so the "pk" can identify which row in which table).
Now... if you use the jca framework, you can write a PrincipalMapping class that maps the application login identity of the user to the appropriate Subject (username/password) for the schema they should be looking at. Pool your connections by Subject, and you should be able to do CMP, with each user only seeing stuff from their own schema.
I haven't tried it but it seems like it might work.