Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/Examples/JPA"

(Querying)
Line 43: Line 43:
 
* [[EclipseLink/Examples/JPA/DatabaseQuery | How to execute a Query using an EclipseLink native DatabaseQuery]]
 
* [[EclipseLink/Examples/JPA/DatabaseQuery | How to execute a Query using an EclipseLink native DatabaseQuery]]
 
* [[EclipseLink/Examples/JPA/QueryOptimization | How to optimize queries using batch and join fetching]]
 
* [[EclipseLink/Examples/JPA/QueryOptimization | How to optimize queries using batch and join fetching]]
* [[EclipseLink/Examples/JPA/NestedFetchGroup | How to extend EclipseLink for Nested FetchGroups (Incubator)]]
+
* [[EclipseLink/Examples/JPA/AttributeGroup | How to use FetchGroups and LoadGroups on queries, and for copying and merging]]
  
 
=== JPA 2.0 ===
 
=== JPA 2.0 ===

Revision as of 14:17, 24 January 2011



The following examples are provided to assist developers with their adoption and usage of EclipseLink's JPA and native ORM functionality. See Developing JPA Projects in the EclipseLink User's Guide for details.

Source code to several of these examples, and to other examples can be found in EclipseLink's SVN repository, here, or accessed through SVN, or downloads.

EclipseLink JPA Examples/Tutorials

General

Diagnostics

Mapping

Querying

JPA 2.0

Java SE Examples

Rich Client Platform (RCP)

Spring JPA

Using Native ORM through JPA

Using Native EclipseLink ORM API

Migration

Tutorials

Application Server Tutorials

  • The following tutorial are for enterprise developers interested in container or application managed persistence using the JPA 1.0 or 2.0 API.

Enterprise Application Servers

  • JEE5 Compliant Application Servers
  • Step by step instructions by container for a quick-start JEE EclipseLink JPA container-managed Application using a single JPA Entity on the major subset of all application servers
  • We use a standard container managed @PersistenceContext(..TransactionType dependency injected EntityManager) that is injected on a @Stateless session bean so that the container can provide a thread safe proxy wrapper around the @NotThreadSafe EntityManager and provide us with instrumented transaction management and change tracking. The client servlet gets injected with the @EJB SSB by the web container and is completely separated from the JPA persistence concern.
  • These tutorials need to be finished and/or expanded - vote for EclipseLink bug# 308477 if you would like this work to be fast tracked.
Container Version JEE Spec. Source

DDL-gen JPA Entities JAR

Issues
Oracle WebLogic Server 10.3.4.0 / 11gR1 5 + (JPA 2.0)

EAREJBWAR

- See application-scoped datasource workaround.

- TODO 20100115: Update for WebLogic 10.3.4 and JPA 2.0 - Verify weaving works in container and application managed EM modes (the current data model only uses @OneToOne and @ManyToMany)

Oracle OC4J 10.1.3.5 1.4 (with EJB 3.0)

EAREJBWAR

- Updated for version 10.1.3.5
GlassFish V3 6 - - Use V3 prelude - not TP2

- Use the 1.0.9+ snapshot plugin (with fixed library references) against a prelude server - currently at b73 which runs EclipseLink 2.0 with JPA 2.0 support out of the box

GlassFish V2.1.1 5 - - Requires GlassFish V2.1 build 32

- Current Production Release

- migrating from TopLink Essentials to EclipseLink

SUN Application Server 9.1 5 - - See GlassFish V2 which is included in Sun AS 9
SAP NetWeaver Application Server 7.2 5
JBoss 6.0.0M1 6

EAREJBWAR

- Updated for JBoss 6.0.0M1

- Dynamic weaving is disabled due to (JIRA-572)

- see static weaving workaround using the JBoss JSFEJB3 example

TODO: >rework tutorial for JBoss 6.0.0 M1

IBM WebSphere 7.0.0.5 5 309201 CM EAR

- Updated for Container Managed and Application Managed scenarios as of 20100419

- There is no WAS 7.0 Eclipse WTP Server plugin yet - you can attach the Eclipse IDE to a WebSphere 7 server in debug mode on port 7777

IBM WebSphere 6.1.0.0 1.4/5 - - Supports JPA1/EJB3 with optional feature pack on Java SE 1.5

- The WAS 6.1 Eclipse WTP Server plugin (ehr 160221) should be in the next release of Ganymede 3.4 in Dec08 - or use manual or python deployment

TMAX Jues 6 5 - 331717

Lightweight Application Servers

Container Version JEE Spec. Source

DDL-gen JPA Entities JAR

Issues

Eclipse Virgo (was SpringSource dm)

2.1 6 (WAR only) - Virgo is an OSGI enabled web container based on the recently contributed VMWare Springsource dm server and the Gemini OSGI web container (which was aimed at Springsource OSGI users.
SpringSource tc 6.0.20 5 (WAR only) - - see STS 2.3.0 as in TomCat server based
IBM WebSphere CE 2.1.0.1 5 - - WebSphere CE 2.1 is only certified on Java SE 1.5 (SUN JRE 1.6 runtime support is available)
Apache Geronimo 2.0.2 5 - - see WebSphere CE which wraps Geronimo, Derby and OpenJPA
Jetty 7  ? - - Jetty is a web-only container (source) (binary) that can be targetted the same way we target Tomcat (NoServerPlatform)
Apache Tomcat 6.0.18 5 (w/o EJB) 250476 - 2.5 Servlet container will support application managed JPA entities using RESOURCE_LOCAL or JTA transactions.

- JTA datasource (without JTATransactionController) available when running as Tomcat service

- SessionCustomizer is required for non-JTA and JTA datasource access.

- Only static weaving (instrumentation) is available.

- No @EJB or @PersistenceContext injection is available.


EclipseLink JPA Examples Matrix by Container

  • The following grid cross-references the above JPA JEE Tutorials by Application server, Database and type of presentation framework - to answer the question "How to run EclipseLink JPA on an application server against a particular database"?
Database --> Oracle MySQL Derby JavaDB HSQL DB2 Ex
WebLogic Servlet Servlet
OC4J Servlet
Glassfish Servlet
Sun AS Servlet
JBoss Servlet or JSF
IBM WebSphere 7 Servlet
Geronimo
Tomcat Servlet

Under Construction

Catnicon.gifThis section contains Examples and tutorials that are not yet complete.


Querying

Java SE Examples

Database Platform Extensions

  • Oracle: Spatial, VPD/OLS, TIMESTAMP, XDB

Advanced

Application Server specific

Using EclipseLink JPA with SEAM

Integrating EclipseLink JPA with an IDE

The following tutorials describe details on running EclipseLink JPA on a specific Java IDE.


Integrating EclipseLink JPA with a Database Platform

The following tutorials describe details on running EclipseLink JPA on a specific database platform.


Back to the top