Search in sources :

Example 16 with EISOneToManyMapping

use of org.eclipse.persistence.eis.mappings.EISOneToManyMapping in project eclipselink by eclipse-ee4j.

the class NestedOwnedToExternalRootProject method getEmployeeDescriptor.

private EISDescriptor getEmployeeDescriptor() {
    EISDescriptor descriptor = new EISDescriptor();
    descriptor.setJavaClass(Employee.class);
    descriptor.setDataTypeName("employee");
    descriptor.descriptorIsAggregate();
    EISDirectMapping firstNameMapping = new EISDirectMapping();
    firstNameMapping.setAttributeName("firstName");
    firstNameMapping.setXPath("first-name/text()");
    descriptor.addMapping(firstNameMapping);
    EISOneToManyMapping projectMapping = new EISOneToManyMapping();
    projectMapping.setReferenceClass(Project.class);
    projectMapping.setAttributeName("projects");
    projectMapping.dontUseIndirection();
    XQueryInteraction projectInteraction = new XQueryInteraction();
    projectInteraction.setFunctionName("read-projects");
    projectInteraction.setProperty("fileName", "project.xml");
    projectInteraction.setXQueryString("project[leader/text()='#first-name/text()']");
    projectInteraction.setOutputResultPath("result");
    projectMapping.setSelectionCall(projectInteraction);
    descriptor.addMapping(projectMapping);
    return descriptor;
}
Also used : XQueryInteraction(org.eclipse.persistence.eis.interactions.XQueryInteraction) EISDescriptor(org.eclipse.persistence.eis.EISDescriptor) EISDirectMapping(org.eclipse.persistence.eis.mappings.EISDirectMapping) EISOneToManyMapping(org.eclipse.persistence.eis.mappings.EISOneToManyMapping)

Example 17 with EISOneToManyMapping

use of org.eclipse.persistence.eis.mappings.EISOneToManyMapping in project eclipselink by eclipse-ee4j.

the class RootToRootProject method getEmployeeDescriptor.

private EISDescriptor getEmployeeDescriptor() {
    EISDescriptor descriptor = new EISDescriptor();
    descriptor.setJavaClass(Employee.class);
    descriptor.setDataTypeName("ns1:employee");
    descriptor.setPrimaryKeyFieldName("first-name/text()");
    EISDirectMapping firstNameMapping = new EISDirectMapping();
    firstNameMapping.setAttributeName("firstName");
    firstNameMapping.setXPath("first-name/text()");
    descriptor.addMapping(firstNameMapping);
    EISOneToManyMapping projectMapping = new EISOneToManyMapping();
    projectMapping.setReferenceClass(Project.class);
    projectMapping.setAttributeName("projects");
    projectMapping.dontUseIndirection();
    XQueryInteraction projectInteraction = new XQueryInteraction();
    projectInteraction.setFunctionName("read-projects");
    projectInteraction.setProperty("fileName", "project.xml");
    projectInteraction.setXQueryString("project[leader/text()='#first-name/text()']");
    projectInteraction.setOutputResultPath("result");
    projectMapping.setSelectionCall(projectInteraction);
    descriptor.addMapping(projectMapping);
    NamespaceResolver resolver = new NamespaceResolver();
    resolver.put("ns1", "myNamespace");
    descriptor.setNamespaceResolver(resolver);
    // Insert
    XQueryInteraction insertCall = new XQueryInteraction();
    insertCall.setFunctionName("insert");
    insertCall.setProperty("fileName", "employee.xml");
    insertCall.setXQueryString("ns1:employee");
    descriptor.getQueryManager().setInsertCall(insertCall);
    // Read object
    XQueryInteraction readObjectCall = new XQueryInteraction();
    readObjectCall.setFunctionName("read");
    readObjectCall.setProperty("fileName", "employee.xml");
    readObjectCall.setXQueryString("ns1:employee[first-name='#first-name/text()']");
    readObjectCall.setOutputResultPath("result");
    descriptor.getQueryManager().setReadObjectCall(readObjectCall);
    // Read all
    XQueryInteraction readAllCall = new XQueryInteraction();
    readAllCall.setFunctionName("read-all");
    readAllCall.setProperty("fileName", "employee.xml");
    readAllCall.setXQueryString("ns1:employee");
    readAllCall.setOutputResultPath("result");
    descriptor.getQueryManager().setReadAllCall(readAllCall);
    // Delete
    XQueryInteraction deleteCall = new XQueryInteraction();
    deleteCall.setFunctionName("delete");
    deleteCall.setProperty("fileName", "employee.xml");
    deleteCall.setXQueryString("ns1:employee[first-name='#first-name/text()']");
    descriptor.getQueryManager().setDeleteCall(deleteCall);
    // Update
    XQueryInteraction updateCall = new XQueryInteraction();
    updateCall.setFunctionName("update");
    updateCall.setProperty("fileName", "employee.xml");
    updateCall.setXQueryString("ns1:employee[first-name='#first-name/text()']");
    descriptor.getQueryManager().setUpdateCall(updateCall);
    return descriptor;
}
Also used : NamespaceResolver(org.eclipse.persistence.oxm.NamespaceResolver) XQueryInteraction(org.eclipse.persistence.eis.interactions.XQueryInteraction) EISDescriptor(org.eclipse.persistence.eis.EISDescriptor) EISDirectMapping(org.eclipse.persistence.eis.mappings.EISDirectMapping) EISOneToManyMapping(org.eclipse.persistence.eis.mappings.EISOneToManyMapping)

Example 18 with EISOneToManyMapping

use of org.eclipse.persistence.eis.mappings.EISOneToManyMapping in project eclipselink by eclipse-ee4j.

the class NestedOwnedToExternalRootProject method getEmployeeDescriptor.

private EISDescriptor getEmployeeDescriptor() {
    EISDescriptor descriptor = new EISDescriptor();
    descriptor.setJavaClass(Employee.class);
    descriptor.setDataTypeName("employee");
    descriptor.descriptorIsAggregate();
    EISDirectMapping firstNameMapping = new EISDirectMapping();
    firstNameMapping.setAttributeName("firstName");
    firstNameMapping.setXPath("first-name/text()");
    descriptor.addMapping(firstNameMapping);
    EISOneToManyMapping projectMapping = new EISOneToManyMapping();
    projectMapping.setReferenceClass(Project.class);
    projectMapping.setAttributeName("projects");
    projectMapping.setIsForeignKeyRelationship(true);
    projectMapping.dontUseIndirection();
    XQueryInteraction projectInteraction = new XQueryInteraction();
    projectInteraction.setFunctionName("read-projects");
    projectInteraction.setProperty("fileName", "project.xml");
    projectInteraction.setXQueryString("project[@id='#project-id/text()']");
    projectInteraction.setOutputResultPath("result");
    projectMapping.setSelectionCall(projectInteraction);
    projectMapping.addForeignKeyFieldName("project-id/text()", "@id");
    descriptor.addMapping(projectMapping);
    return descriptor;
}
Also used : XQueryInteraction(org.eclipse.persistence.eis.interactions.XQueryInteraction) EISDescriptor(org.eclipse.persistence.eis.EISDescriptor) EISDirectMapping(org.eclipse.persistence.eis.mappings.EISDirectMapping) EISOneToManyMapping(org.eclipse.persistence.eis.mappings.EISOneToManyMapping)

Example 19 with EISOneToManyMapping

use of org.eclipse.persistence.eis.mappings.EISOneToManyMapping in project eclipselink by eclipse-ee4j.

the class NestedOwnedToExternalRootProject method getEmployeeDescriptor.

private EISDescriptor getEmployeeDescriptor() {
    EISDescriptor descriptor = new EISDescriptor();
    descriptor.setJavaClass(Employee.class);
    descriptor.setDataTypeName("employee");
    descriptor.descriptorIsAggregate();
    EISDirectMapping firstNameMapping = new EISDirectMapping();
    firstNameMapping.setAttributeName("firstName");
    firstNameMapping.setXPath("first-name/text()");
    descriptor.addMapping(firstNameMapping);
    EISOneToManyMapping projectMapping = new EISOneToManyMapping();
    projectMapping.setReferenceClass(Project.class);
    projectMapping.setAttributeName("projects");
    projectMapping.setForeignKeyGroupingElement("project");
    projectMapping.dontUseIndirection();
    projectMapping.setIsForeignKeyRelationship(true);
    XQueryInteraction projectInteraction = new XQueryInteraction();
    projectInteraction.setFunctionName("read-projects");
    projectInteraction.setProperty("fileName", "project.xml");
    // projectInteraction.setXQueryString("project[@id='#project-id']");
    projectInteraction.setXQueryString("project[@id='#project-id/text()' and name/text()='#project-name/text()']");
    projectInteraction.setOutputResultPath("result");
    projectMapping.setSelectionCall(projectInteraction);
    // projectMapping.addSourceForeignKeyFieldName("project-id","@id");
    // projectMapping.addSourceForeignKeyFieldName("project-name", "name");
    projectMapping.addForeignKeyFieldName("project-id/text()", "@id");
    projectMapping.addForeignKeyFieldName("project-name/text()", "name/text()");
    descriptor.addMapping(projectMapping);
    return descriptor;
}
Also used : XQueryInteraction(org.eclipse.persistence.eis.interactions.XQueryInteraction) EISDescriptor(org.eclipse.persistence.eis.EISDescriptor) EISDirectMapping(org.eclipse.persistence.eis.mappings.EISDirectMapping) EISOneToManyMapping(org.eclipse.persistence.eis.mappings.EISOneToManyMapping)

Example 20 with EISOneToManyMapping

use of org.eclipse.persistence.eis.mappings.EISOneToManyMapping in project eclipselink by eclipse-ee4j.

the class OwnedToExternalRootProject method getEmployeeDescriptor.

private EISDescriptor getEmployeeDescriptor() {
    EISDescriptor descriptor = new EISDescriptor();
    descriptor.setJavaClass(Employee.class);
    descriptor.setDataTypeName("employee");
    descriptor.descriptorIsAggregate();
    EISDirectMapping firstNameMapping = new EISDirectMapping();
    firstNameMapping.setAttributeName("firstName");
    firstNameMapping.setXPath("first-name/text()");
    descriptor.addMapping(firstNameMapping);
    EISOneToManyMapping projectMapping = new EISOneToManyMapping();
    projectMapping.setAttributeName("projects");
    projectMapping.setReferenceClass(Project.class);
    projectMapping.setForeignKeyGroupingElement("project");
    projectMapping.setIsForeignKeyRelationship(true);
    projectMapping.dontUseIndirection();
    XQueryInteraction projectInteraction = new XQueryInteraction();
    projectInteraction.setFunctionName("read-projects");
    projectInteraction.setProperty("fileName", "project.xml");
    projectInteraction.setXQueryString("project[@id='#project-id/text()' and name/text()='#project-name/text()']");
    projectInteraction.setOutputResultPath("result");
    projectMapping.setSelectionCall(projectInteraction);
    projectMapping.addForeignKeyFieldName("project-name/text()", "name/text()");
    projectMapping.addForeignKeyFieldName("project-id/text()", "@id");
    descriptor.addMapping(projectMapping);
    return descriptor;
}
Also used : XQueryInteraction(org.eclipse.persistence.eis.interactions.XQueryInteraction) EISDescriptor(org.eclipse.persistence.eis.EISDescriptor) EISDirectMapping(org.eclipse.persistence.eis.mappings.EISDirectMapping) EISOneToManyMapping(org.eclipse.persistence.eis.mappings.EISOneToManyMapping)

Aggregations

EISOneToManyMapping (org.eclipse.persistence.eis.mappings.EISOneToManyMapping)29 EISDescriptor (org.eclipse.persistence.eis.EISDescriptor)27 XQueryInteraction (org.eclipse.persistence.eis.interactions.XQueryInteraction)27 EISDirectMapping (org.eclipse.persistence.eis.mappings.EISDirectMapping)27 ReadAllQuery (org.eclipse.persistence.queries.ReadAllQuery)9 CollectionMapping (org.eclipse.persistence.mappings.CollectionMapping)2 ManyToManyMapping (org.eclipse.persistence.mappings.ManyToManyMapping)2 DatabaseMapping (org.eclipse.persistence.mappings.DatabaseMapping)1 NamespaceResolver (org.eclipse.persistence.oxm.NamespaceResolver)1