GuicePersistMultiModules

sameb edited this page Jul 7, 2014 · 1 revision

Multiple persistence providers with Guice Persist

Multiple Modules

So far we've seen how to use Guice Persist and JPA with a single persistence unit. This typically maps to one data store. Guice Persist supports using multiple persistence modules using the private modules API.

This means that you must be careful to install all JPA modules only in individual private modules:

Module one = new PrivateModule() {
  protected void configure() {
    install(new JpaModule("persistenceUnitOne"));
    // other services...
  }
};

Module two = new PrivateModule() {
  protected void configure() {
    install(new JpaModule("persistenceUnitTwo"));
    // other services...
  }
};

Guice.createInjector(one, two);

The injector now contains two parallel sets of bindings which are isolated from each other. When you bind services in module one those services will get the EntityManager from persistenceUnitOne and transactions around its database.

Similarly services in module two will have their own transactions, EntityManagers etc., and these should typically not cross.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.