Class DBWSModel

java.lang.Object
org.eclipse.persistence.internal.xr.XRServiceModel
org.eclipse.persistence.dbws.DBWSModel

public class DBWSModel extends org.eclipse.persistence.internal.xr.XRServiceModel

PUBLIC: model object for eclipselink-dbws.xml descriptor file. A DBWS (also known as an XRServiceAdapter) requires the following resources:

  • metadata in the form of a descriptor file called eclipselink-dbws.xml in the META-INF/ directory
    (inside a .jar file, as an external 'exploded' directory on the classpath
    or in the WEB-INF/classes/META-INF/ directory inside a .war file).
  • an XML Schema Definition (.xsd) file called eclipselink-dbws-schema.xsd
    located at the root directory of a .jar file, at the root of the first directory on the
    classpath or in the WEB-INF/wsdl/ directory of a .war file
  • an EclipseLink sessions.xml file called eclipselink-dbws-sessions.xml (in the META-INF/ directory)
      the naming convention for the sessions.xml files can be overridden by the
    optional <sessions-file> entry in the eclipselink-dbws.xml descriptor file.
  • EclipseLink metadata in the form of a EclipseLink Project (either deployment XML located
    in the META-INF/ directory or Java classes on the classpath or in the
    WEB-INF/classes directory inside a .war file).
     

    A typical DBWS requires two projects: one to represent the O-R side, the other to represent the O-X side.
    The O-R and O-X Projects metadata must have:
    i) identical case-sensitive Project names:

     <?xml version="1.0" encoding="UTF-8"?>
     <eclipselink:object-persistence version="Eclipse Persistence Services ..."
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:eclipselink="http://xmlns.oracle.com/ias/xsds/eclipselink"
       >
       <eclipselink:name>example</eclipselink:name>
     or
     ...
     import org.eclipse.persistence.sessions.Project;
     public class SomeORProject extends Project {
       public SomeORProject () {
         setName("Example");
         ...
     }
     public class SomeOXProject extends Project {
       public SomeOXProject () {
         setName("Example");
         ...
     }
     
    ii) identical case-sensitive aliases for Descriptors that are common between the projects:
     <eclipselink:class-mapping-descriptor xsi:type="eclipselink:relational-class-mapping-descriptor">
       <eclipselink:class>some.package.SomeClass</eclipselink:class>
       <eclipselink:alias>SomeAlias</eclipselink:alias>
     ...
     <eclipselink:class-mapping-descriptor xsi:type="eclipselink:xml-class-mapping-descriptor">
       <eclipselink:class>some.package.SomeClass</eclipselink:class>
       <eclipselink:alias>SomeAlias</eclipselink:alias>
     
An example eclipselink-dbws.xml descriptor file:
 <?xml version="1.0" encoding="UTF-8"?>
 <dbws
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   >
   <name>example</name>
   <sessions-file>example-dbws-sessions.xml</sessions-file>
   <query>
     <name>countEmployees</name>
     <result>
       <type>xsd:int</type>
       <simple-xml-format>
         <simple-xml-format-tag>employee-info</simple-xml-format-tag>
         <simple-xml-tag>aggregate-info</simple-xml-tag>
       </simple-xml-format>
     </result>
     <sql><![CDATA[select count(*) from EMP]]></sql>
   </query>
   <query>
     <name>findAllEmployees</name>
     <result isCollection="true">
       <type>empType</type>
     </result>
     <sql><![CDATA[select * from EMP]]></sql>
   </query>
 </dbws>
 
Author:
Mike Norman - michael.norman@oracle.com
  • Field Summary

    Fields inherited from class org.eclipse.persistence.internal.xr.XRServiceModel

    name, operations, sessionsFile
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Methods inherited from class org.eclipse.persistence.internal.xr.XRServiceModel

    getName, getOperation, getOperations, getOperationsList, getSessionsFile, setName, setOperations, setSessionsFile

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • DBWSModel

      public DBWSModel()