Jump to: navigation, search

Difference between revisions of "EclipseLink/UserGuide/JPA/Basic JPA Development/Configuration/JPA/orm.xml"

m (Replacing page with ' '''Warning See "About Object-Relational Mapping" in the [http://www.eclipse.org/eclipselink/documentation/ EclipseLink Concepts Guide]'''')
 
Line 1: Line 1:
{{EclipseLink_UserGuide
 
|info=y
 
|toc=n
 
|api=y
 
|apis=
 
*[http://java.sun.com/xml/ns/persistence/orm_2_0.xsd orm.xml]
 
|eclipselink=y
 
|eclipselinktype=JPA}}
 
=Specifying Object-Relational Mappings Using orm.xml=
 
Use the <tt>orm.xml</tt> file to apply the metadata to the persistence unit. This metadata is a union of all the mapping files and the annotations (if there is no <tt>xml-mapping-metadata-complete</tt>  element). If you use one mapping <tt>orm.xml</tt> file for your metadata and place this file in a <tt>META-INF</tt> directory on the classpath, then you do not need to explicitly list it. The EclipseLink persistence provider will automatically search for this file (<tt>orm.xml</tt>) and use it.
 
  
The schema for the JPA 2.0 orm.xml is [http://java.sun.com/xml/ns/persistence/orm_2_0.xsd <tt>orm_2_0.xsd</tt>].
 
  
If you use a different name for your mapping files or place them in a different location, you must list them in the <tt>mapping-file</tt> element of the [[EclipseLink/UserGuide/JPA/Basic_JPA_Development/Configuration/JPA/persistence.xml|<tt>persistence.xml</tt>]] file, as shown here:
 
  
<source lang="xml">
+
'''[[Image:Elug_draft_icon.png|Warning]] See "About Object-Relational Mapping" in the [http://www.eclipse.org/eclipselink/documentation/ EclipseLink Concepts Guide]'''
<persistence-unit name="EmployeeService">
+
    <jta-data-source>jdbc/EmployeeServiceDS</jta-data-source>
+
    <mapping-file>META-INF/employee_service_queries.xml</mapping-file>
+
</persistence-unit>
+
</source>
+
{{EclipseLink_Note
+
|note=In this example, the <tt>orm.xml</tt> file is not listed -- the persistence provider finds it by default.
+
}}
+
 
+
The following is an example of an <tt>orm.xml</tt> file.
+
 
+
<source lang="xml">
+
<?xml version="1.0" encoding="UTF-8"?>
+
<entity-mappings version="2.0"
+
        xmlns="http://java.sun.com/xml/ns/persistence/orm"
+
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_2_0.xsd">
+
    <description>The minimal mappings for a persistent entity in XML.</description>
+
    <entity name="Employee" class="org.acme.Employee" access="FIELD">
+
        <attributes>
+
            <id name="id"/>
+
        </attributes>
+
    </entity>
+
</entity-mappings>
+
</source>
+
 
+
==XML Schema Validation==
+
By default the content of your orm XML file is not validated against the JPA orm XML schema.
+
 
+
During development it is a good idea to validate your orm XML file against the schema to ensure it is valid.
+
In EclipseLink orm XML schema validation can be enabled using the persistence unit property <code>"eclipselink.orm.validate.schema"</code> in your <code>persistence.xml</code> file.
+
 
+
<source lang="xml">
+
<property name="eclipselink.orm.validate.schema" value="true"/>
+
</source>
+
 
+
==Advantages and Disadvantages of Using XML==
+
Some advantages of using XML instead of [[EclipseLink/UserGuide/JPA/Basic JPA Development/Configuration/JPA/Annotations|Annotations]] include:
+
* No coupling between the metadata and the source code
+
* Compliance with the existing, pre-EJB 3.0 development process
+
* Support in IDEs and source control systems
+
 
+
The main disadvantages of mapping with XML include:
+
* Its inherent complexitiy (when compared to annotations)
+
* The need for replication of the code context
+
 
+
 
+
{{EclipseLink_JPA
+
|previous=[[EclipseLink/UserGuide/JPA/Basic JPA Development/Configuration/JPA/Annotations|Adding Metadata Using Annotations]]
+
|next=[[EclipseLink/UserGuide/JPA/Basic JPA Development/Configuration/JPA/Defaults|About the Default Configuration Values]]
+
|up=[[EclipseLink/UserGuide/JPA/Basic JPA Development/Configuration|Configuration]]
+
|version=2.2.0 DRAFT}}
+

Latest revision as of 10:49, 25 January 2013


Warning See "About Object-Relational Mapping" in the EclipseLink Concepts Guide