Search in sources :

Example 26 with PLSQLrecord

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

the class PLSQLProject method buildAddressOutObjectQuery.

protected DatabaseQuery buildAddressOutObjectQuery() {
    PLSQLrecord record = buildAddressRowTypeRecord();
    PLSQLStoredProcedureCall call = new PLSQLStoredProcedureCall();
    call.setProcedureName("PLSQL_ADDRESS_OUT");
    call.addNamedOutputArgument("P_ADDRESS", record);
    DataReadQuery query = new DataReadQuery();
    query.setCall(call);
    return query;
}
Also used : PLSQLStoredProcedureCall(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall) PLSQLrecord(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord) DataReadQuery(org.eclipse.persistence.queries.DataReadQuery)

Example 27 with PLSQLrecord

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

the class PLSQLProject method buildAddressRowTypeRecord.

protected PLSQLrecord buildAddressRowTypeRecord() {
    PLSQLrecord record = buildAddressRowTypeDataRecord();
    record.setCompatibleType("PLSQL_P_PLSQL_ADDRESS_REC");
    record.setJavaType(Address.class);
    return record;
}
Also used : PLSQLrecord(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord)

Example 28 with PLSQLrecord

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

the class PLSQLProject method buildAddressListInQuery.

protected DatabaseQuery buildAddressListInQuery() {
    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_IN");
    call.addNamedArgument("P_ADDRESS_LIST", collection);
    call.addNamedArgument("P_CITY", JDBCTypes.VARCHAR_TYPE);
    DataModifyQuery query = new DataModifyQuery();
    query.addArgument("P_ADDRESS_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 29 with PLSQLrecord

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

the class PLSQLProject method buildAddressOutDataQuery.

protected DatabaseQuery buildAddressOutDataQuery() {
    PLSQLrecord record = buildAddressRowTypeDataRecord();
    PLSQLStoredProcedureCall call = new PLSQLStoredProcedureCall();
    call.setProcedureName("PLSQL_ADDRESS_OUT_DATA");
    call.addNamedOutputArgument("P_ADDRESS", record);
    call.addNamedOutputArgument("P_LOCAL", JDBCTypes.VARCHAR_TYPE, 30);
    DataReadQuery query = new DataReadQuery();
    query.dontMaintainCache();
    query.setCall(call);
    return query;
}
Also used : PLSQLStoredProcedureCall(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLStoredProcedureCall) PLSQLrecord(org.eclipse.persistence.platform.database.oracle.plsql.PLSQLrecord) DataReadQuery(org.eclipse.persistence.queries.DataReadQuery)

Example 30 with PLSQLrecord

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

the class PLSQLrecordWithCompatibleTypeInTestSet 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(Z IN EMP%ROWTYPE)
    PLSQLStoredProcedureCall call = new PLSQLStoredProcedureCall();
    call.setProcedureName("REC_TEST");
    call.addNamedArgument("Z", r1);
    DataModifyQuery query = new DataModifyQuery();
    query.addArgument("Z", Struct.class);
    query.setCall(call);
    project.getDescriptor(PLSQLEmployeeType.class).getQueryManager().addQuery("PLSQLrecordWithCompatibleTypeIn", 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_IN_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) 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) DataModifyQuery(org.eclipse.persistence.queries.DataModifyQuery) 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