- Container Mode
- The OSGi JPA specification does not define or support the notion of Container mode in JPA, only Java SE mode (using the JPA 2.0 javax.persistence.jdbc properties).
- Self-contained Persistence Bundles
- The OSGi JPA specification dictates that all entities and metadata for a given persistence unit must be contained within a single persistence bundle.
- jar-file Element
- Mostly because of (2), there is no support for the jar-file element in the persistence descriptor. All entities must be in the persistence bundle and on the bundle classpath.
- Multiple Providers
- Support for multiple installed persistence providers is provided, but the OSGi JPA specification does not prescribe how a persistence unit that does not specify the provider is assigned to a provider. When multiple persistence providers are active, persistence units should always include a provider element.
- JTA Transactions
- Primarily because of (1), only the RESOURCE_LOCAL transaction type is supported. Support for JTA transactions is not currently offered.