Title: Injection of EntityManager Example # Overview {span:style=float: right; margin-left: 20px;} {html} {html} {span} {div} Shows use of *@PersistenceContext* to have an *EntityManager* with an *EXTENDED* persistence context injected into a @Stateful bean. An EJB 3 *@Entity* bean is used with the EntityManager to create, persist and merge data to a database. If you need to use a TRANSACTION persistence context, see [this example](testing-transactions-example.html) . _The source for this example is in the "injection-of-entitymanager" directory located in the [openejb-examples.zip](openejb:download.html) available on the download page._ {div} {div:style=clear:both;}{div} # The Code ## The Stateful bean {snippet:id=code|url=openejb3/examples/injection-of-entitymanager/src/main/java/org/superbiz/injection/jpa/MoviesImpl.java|lang=java} ## The Entity bean {snippet:id=code|url=openejb3/examples/injection-of-entitymanager/src/main/java/org/superbiz/injection/jpa/Movie.java|lang=java} ## The persistence unit {snippet:id=code|url=openejb3/examples/injection-of-entitymanager/src/main/resources/META-INF/persistence.xml|lang=xml} # Writing a unit test for the example {snippet:id=code|url=openejb3/examples/injection-of-entitymanager/src/test/java/org/superbiz/injection/jpa/MoviesTest.java|lang=java} Curious on the InitialContext parameters used? See the [Injection of DataSource Example](injection-of-datasource-example.html) for an explanation of how any Resource can be configured via properties in the TestCase itself or via an openejb.xml file. # Running Running the example is fairly simple. In the "injection-of-entitymanager" directory of the [examples zip](openejb:download.html) , just run: $ mvn clean install Which should create output like the following. ------------------------------------------------------- T E S T S ------------------------------------------------------- Running org.superbiz.injection.jpa.MoviesTest Apache OpenEJB 3.0 build: 20080408-04:13 http://openejb.apache.org/ INFO - openejb.home = /Users/dblevins/work/openejb-3.0/examples/injection-of-entitymanager INFO - openejb.base = /Users/dblevins/work/openejb-3.0/examples/injection-of-entitymanager INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service) INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager) INFO - Configuring Service(id=movieDatabaseUnmanaged, type=Resource, provider-id=Default JDBC Database) INFO - Configuring Service(id=movieDatabase, type=Resource, provider-id=Default JDBC Database) INFO - Configuring Service(id=Default JDK 1.3 ProxyFactory, type=ProxyFactory, provider-id=Default JDK 1.3 ProxyFactory) INFO - Found EjbModule in classpath: /Users/dblevins/work/openejb-3.0/examples/injection-of-entitymanager/target/classes INFO - Configuring app: /Users/dblevins/work/openejb-3.0/examples/injection-of-entitymanager/target/classes INFO - Configuring Service(id=Default Stateful Container, type=Container, provider-id=Default Stateful Container) INFO - Auto-creating a container for bean Movies: Container(type=STATEFUL, id=Default Stateful Container) INFO - Configuring PersistenceUnit(name=movie-unit) INFO - Loaded Module: /Users/dblevins/work/openejb-3.0/examples/injection-of-entitymanager/target/classes INFO - Assembling app: /Users/dblevins/work/openejb-3.0/examples/injection-of-entitymanager/target/classes INFO - PersistenceUnit(name=movie-unit, provider=org.apache.openjpa.persistence.PersistenceProviderImpl) ERROR - JAVA AGENT NOT INSTALLED. The JPA Persistence Provider requested installation of a ClassFileTransformer which requires a JavaAgent. See http://openejb.apache.org/3.0/javaagent.html INFO - Jndi(name=MoviesLocal) --> Ejb(deployment-id=Movies) INFO - Created Ejb(deployment-id=Movies, ejb-name=Movies, container=Default Stateful Container) INFO - Deployed Application(path=/Users/dblevins/work/openejb-3.0/examples/injection-of-entitymanager/target/classes) Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.095 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0