Multi-user Datasources - Spring + Hibernate

Viewed 9232

I'm writing a web app that supports multiple users. Each user has their own database - using H2. all database schemas are the same.

I wish to use Spring + Hibernate for this application.

So I'm stuck at how to associate a user's database with that user - maybe associated it in the HTTPSession, and extend spring's AbstractRoutingDataSource? but wouldn't this effect Hibernate's cache? Another way is to have a SessionFactory with each datasource, even though every datasource's schema is the same... so I see that as a waste.

Anyways selecting the datasource needs to be dynamic - they can't be pre-configured in context files, as each new user will have its own database created. Is there any existing frameworks/solutions?

I don't know too much about Hibernate Shards, maybe that works?

3 Answers
Related