Search in sources :

Example 11 with PLSQLrecord

use of org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord in project eclipselink by eclipse-ee4j.

the class PLSQLProject method buildAddressRecord.

protected PLSQLrecord buildAddressRecord() {
    PLSQLrecord record = new PLSQLrecord();
    record.setTypeName("PLSQL_P.PLSQL_ADDRESS_REC");
    record.setCompatibleType("PLSQL_P_PLSQL_ADDRESS_REC");
    record.addField("ADDRESS_ID", JDBCTypes.NUMERIC_TYPE, 10, 0);
    record.addField("STREET_NUM", JDBCTypes.NUMERIC_TYPE, 10, 0);
    record.addField("STREET", JDBCTypes.VARCHAR_TYPE, 30);
    record.addField("CITY", JDBCTypes.VARCHAR_TYPE, 30);
    record.addField("STATE", JDBCTypes.VARCHAR_TYPE, 30);
    record.setJavaType(Address.class);
    return record;
}
Also used : PLSQLrecord(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord)

Example 12 with PLSQLrecord

use of org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord in project eclipselink by eclipse-ee4j.

the class PLSQLProject method buildAddressListOutQuery.

protected DatabaseQuery buildAddressListOutQuery() {
    PLSQLrecord record = buildAddressRecord();
    PLSQLCollection collection = new PLSQLCollection();
    collection.setTypeName("PLSQL_P.PLSQL_ADDRESS_LIST");
    collection.setCompatibleType("PLSQL_P_PLSQL_ADDRESS_LIST");
    collection.setNestedType(record);
    PLSQLStoredProcedureCall call = new PLSQLStoredProcedureCall();
    call.setProcedureName("PLSQL_P.PLSQL_ADDRESS_LIST_OUT");
    call.addNamedOutputArgument("P_ADDRESS_LIST", collection);
    call.addNamedOutputArgument("P_CITY", JDBCTypes.VARCHAR_TYPE);
    DataReadQuery query = new DataReadQuery();
    query.setCall(call);
    return query;
}
Also used : PLSQLStoredProcedureCall(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall) PLSQLCollection(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLCollection) PLSQLrecord(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord) DataReadQuery(org.eclipse.persistence.queries.DataReadQuery)

Example 13 with PLSQLrecord

use of org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord in project eclipselink by eclipse-ee4j.

the class PLSQLProject method buildEmployeeListInQuery.

protected DatabaseQuery buildEmployeeListInQuery() {
    PLSQLrecord record = buildEmployeeRecord();
    PLSQLCollection collection = new PLSQLCollection();
    collection.setTypeName("PLSQL_P.PLSQL_EMP_LIST");
    collection.setCompatibleType("PLSQL_P_PLSQL_EMP_LIST");
    collection.setNestedType(record);
    PLSQLStoredProcedureCall call = new PLSQLStoredProcedureCall();
    call.setProcedureName("PLSQL_P.PLSQL_EMP_LIST_IN");
    call.addNamedArgument("P_EMP_LIST", collection);
    call.addNamedArgument("P_CITY", JDBCTypes.VARCHAR_TYPE);
    DataModifyQuery query = new DataModifyQuery();
    query.addArgument("P_EMP_LIST", java.sql.Array.class);
    query.addArgument("P_CITY", String.class);
    query.setCall(call);
    return query;
}
Also used : PLSQLStoredProcedureCall(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall) PLSQLCollection(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLCollection) PLSQLrecord(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord) DataModifyQuery(org.eclipse.persistence.queries.DataModifyQuery)

Example 14 with PLSQLrecord

use of org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord in project eclipselink by eclipse-ee4j.

the class PLSQLrecordWithCompatibleTypeInOutTestSet method writeToXml.

@Test
public void writeToXml() {
    PLSQLrecord r1 = new PLSQLrecord();
    r1.setTypeName("emp%ROWTYPE");
    r1.setCompatibleType("EMP_TYPE");
    r1.addField("EMPNO", JDBCTypes.NUMERIC_TYPE, 4, 0);
    r1.addField("ENAME", JDBCTypes.VARCHAR_TYPE, 10);
    r1.addField("JOB", JDBCTypes.VARCHAR_TYPE, 9);
    r1.addField("MGR", JDBCTypes.NUMERIC_TYPE, 4, 0);
    r1.addField("HIREDATE", JDBCTypes.DATE_TYPE);
    r1.addField("SAL", JDBCTypes.FLOAT_TYPE, 7, 2);
    r1.addField("COMM", JDBCTypes.NUMERIC_TYPE, 7, 2);
    r1.addField("DEPTNO", JDBCTypes.NUMERIC_TYPE, 2, 0);
    // PROCEDURE REC_TEST_INOUT(Z IN OUT EMP%ROWTYPE)
    PLSQLStoredProcedureCall call = new PLSQLStoredProcedureCall();
    call.setProcedureName("REC_TEST_INOUT");
    call.addNamedInOutputArgument("Z", r1);
    ReadObjectQuery query = new ReadObjectQuery(PLSQLEmployeeType.class);
    query.addArgument("Z", Struct.class);
    query.doNotCacheQueryResults();
    query.dontMaintainCache();
    query.setCall(call);
    project.getDescriptor(PLSQLEmployeeType.class).getQueryManager().addQuery("PLSQLrecordWithCompatibleTypeInOut", query);
    Project projectToXml = project.clone();
    // trim off login 'cause it changes under test - this way, a comparison
    // can be done to a control document
    projectToXml.setDatasourceLogin(null);
    XMLContext context = new XMLContext(workbenchXMLProject);
    XMLMarshaller marshaller = context.createMarshaller();
    Document doc = marshaller.objectToXML(projectToXml);
    Document controlDoc = xmlParser.parse(new StringReader(PLSQLRECORD_WITHCOMPATIBLETYPE_INOUT_PROJECT_XML));
    assertTrue("control document not same as instance document", comparer.isNodeEqual(controlDoc, doc));
}
Also used : ObjectPersistenceWorkbenchXMLProject(org.eclipse.persistence.internal.sessions.factories.ObjectPersistenceWorkbenchXMLProject) Project(org.eclipse.persistence.sessions.Project) PLSQLrecordTestHelper.buildTestProject(org.eclipse.persistence.testing.tests.plsqlrecord.PLSQLrecordTestHelper.buildTestProject) PLSQLrecordTestHelper.buildWorkbenchXMLProject(org.eclipse.persistence.testing.tests.plsqlrecord.PLSQLrecordTestHelper.buildWorkbenchXMLProject) PLSQLStoredProcedureCall(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall) ReadObjectQuery(org.eclipse.persistence.queries.ReadObjectQuery) XMLContext(org.eclipse.persistence.oxm.XMLContext) XMLMarshaller(org.eclipse.persistence.oxm.XMLMarshaller) PLSQLrecord(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord) StringReader(java.io.StringReader) Document(org.w3c.dom.Document) Test(org.junit.Test)

Example 15 with PLSQLrecord

use of org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord in project eclipselink by eclipse-ee4j.

the class PLSQLrecordWithCompatibleTypeOutTestSet method writeToXml.

@Test
public void writeToXml() {
    PLSQLrecord r1 = new PLSQLrecord();
    r1.setTypeName("emp%ROWTYPE");
    r1.setCompatibleType("EMP_TYPE");
    r1.addField("EMPNO", JDBCTypes.NUMERIC_TYPE, 4, 0);
    r1.addField("ENAME", JDBCTypes.VARCHAR_TYPE, 10);
    r1.addField("JOB", JDBCTypes.VARCHAR_TYPE, 9);
    r1.addField("MGR", JDBCTypes.NUMERIC_TYPE, 4, 0);
    r1.addField("HIREDATE", JDBCTypes.DATE_TYPE);
    r1.addField("SAL", JDBCTypes.FLOAT_TYPE, 7, 2);
    r1.addField("COMM", JDBCTypes.NUMERIC_TYPE, 7, 2);
    r1.addField("DEPTNO", JDBCTypes.NUMERIC_TYPE, 2, 0);
    // PROCEDURE REC_TEST_OUT(Z OUT EMP%ROWTYPE)
    PLSQLStoredProcedureCall call = new PLSQLStoredProcedureCall();
    call.setProcedureName("REC_TEST_OUT");
    call.addNamedOutputArgument("Z", r1);
    ReadObjectQuery query = new ReadObjectQuery(PLSQLEmployeeType.class);
    query.doNotCacheQueryResults();
    query.dontMaintainCache();
    query.setCall(call);
    project.getDescriptor(PLSQLEmployeeType.class).getQueryManager().addQuery("PLSQLrecordWithCompatibleTypeOut", query);
    Project projectToXml = project.clone();
    // trim off login 'cause it changes under test - this way, a comparison
    // can be done to a control document
    projectToXml.setDatasourceLogin(null);
    XMLContext context = new XMLContext(workbenchXMLProject);
    XMLMarshaller marshaller = context.createMarshaller();
    Document doc = marshaller.objectToXML(projectToXml);
    Document controlDoc = xmlParser.parse(new StringReader(PLSQLRECORD_WITHCOMPATIBLETYPE_OUT_PROJECT_XML));
    assertTrue("control document not same as instance document", comparer.isNodeEqual(controlDoc, doc));
}
Also used : ObjectPersistenceWorkbenchXMLProject(org.eclipse.persistence.internal.sessions.factories.ObjectPersistenceWorkbenchXMLProject) Project(org.eclipse.persistence.sessions.Project) PLSQLrecordTestHelper.buildTestProject(org.eclipse.persistence.testing.tests.plsqlrecord.PLSQLrecordTestHelper.buildTestProject) PLSQLrecordTestHelper.buildWorkbenchXMLProject(org.eclipse.persistence.testing.tests.plsqlrecord.PLSQLrecordTestHelper.buildWorkbenchXMLProject) PLSQLStoredProcedureCall(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall) ReadObjectQuery(org.eclipse.persistence.queries.ReadObjectQuery) XMLContext(org.eclipse.persistence.oxm.XMLContext) XMLMarshaller(org.eclipse.persistence.oxm.XMLMarshaller) PLSQLrecord(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord) StringReader(java.io.StringReader) Document(org.w3c.dom.Document) Test(org.junit.Test)

Aggregations

PLSQLrecord (org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord)33 PLSQLStoredProcedureCall (org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall)24 DataReadQuery (org.eclipse.persistence.queries.DataReadQuery)14 PLSQLCollection (org.eclipse.persistence.platform.database.oracle.plsql.PLSQLCollection)10 DataModifyQuery (org.eclipse.persistence.queries.DataModifyQuery)8 StringReader (java.io.StringReader)6 ObjectPersistenceWorkbenchXMLProject (org.eclipse.persistence.internal.sessions.factories.ObjectPersistenceWorkbenchXMLProject)6 XMLContext (org.eclipse.persistence.oxm.XMLContext)6 XMLMarshaller (org.eclipse.persistence.oxm.XMLMarshaller)6 Project (org.eclipse.persistence.sessions.Project)6 PLSQLrecordTestHelper.buildTestProject (org.eclipse.persistence.testing.tests.plsqlrecord.PLSQLrecordTestHelper.buildTestProject)6 PLSQLrecordTestHelper.buildWorkbenchXMLProject (org.eclipse.persistence.testing.tests.plsqlrecord.PLSQLrecordTestHelper.buildWorkbenchXMLProject)6 Test (org.junit.Test)6 Document (org.w3c.dom.Document)6 ReadObjectQuery (org.eclipse.persistence.queries.ReadObjectQuery)3 ComplexDatabaseType (org.eclipse.persistence.internal.helper.ComplexDatabaseType)2 OracleObjectType (org.eclipse.persistence.platform.database.oracle.jdbc.OracleObjectType)2 PLSQLStoredFunctionCall (org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredFunctionCall)2 PLSQLargument (org.eclipse.persistence.platform.database.oracle.plsql.PLSQLargument)2 CompositeDatabaseType (org.eclipse.persistence.tools.oracleddl.metadata.CompositeDatabaseType)2