Module eclipselink

Class StoredProcedureGenerator


  • public class StoredProcedureGenerator
    extends Object
    Purpose: To generate StoredProcedures from EclipseLink Projects

    Description: This Class was designed to read in a project and produce StoredProcedures. It then modifies the descriptors files of the project to use these StoredProcedures. NOTE: reads are not supported in Oracle.

    Responsibilities:

    Author:
    Gordon Yorke
    Since:
    TopLink 2.1
    • Constructor Detail

      • StoredProcedureGenerator

        public StoredProcedureGenerator​(SchemaManager schemaMngr)
    • Method Detail

      • buildIntToTypeConverterHash

        protected void buildIntToTypeConverterHash()
        INTERNAL: Build all conversions based on JDBC return values.
      • buildProcedureString

        protected String buildProcedureString​(SQLCall call)
        INTERNAL: Given a call, this method produces the stored procedure string based on the SQL string inside the call.
      • generateAmendmentClass

        public void generateAmendmentClass​(Writer outputWriter,
                                           String packageName,
                                           String className)
                                    throws ValidationException
        PUBLIC: Generate an amendment class that will set up the descriptors to use these stored procedures.
        Throws:
        ValidationException
      • generateObjectStoredProcedure

        protected StoredProcedureDefinition generateObjectStoredProcedure​(DatabaseQuery query,
                                                                          List<org.eclipse.persistence.internal.helper.DatabaseField> fields,
                                                                          String namePrefix)
        INTERNAL: Generates the object level stored procedure based on the passed in query
      • generateOneToManyMappingDeleteAllProcedure

        protected StoredProcedureDefinition generateOneToManyMappingDeleteAllProcedure​(OneToManyMapping mapping)
        INTERNAL: Generates the delete all stored procedure for this mapping
      • generateOneToManyMappingProcedures

        protected StoredProcedureDefinition generateOneToManyMappingProcedures​(OneToManyMapping mapping,
                                                                               DatabaseQuery query,
                                                                               Map<org.eclipse.persistence.internal.helper.DatabaseField,​org.eclipse.persistence.internal.helper.DatabaseField> fields,
                                                                               String namePrefix)
        INTERNAL: Generates all the stored procedures for this mapping
      • generateOneToManyMappingReadProcedure

        protected StoredProcedureDefinition generateOneToManyMappingReadProcedure​(OneToManyMapping mapping)
        INTERNAL: Generates the read all stored procedure for this mapping
      • generateReadAllStoredProcedure

        protected StoredProcedureDefinition generateReadAllStoredProcedure​(ClassDescriptor descriptor)
        INTERNAL: Generates the read all stored procedure for this descriptor
      • generateSequenceStoredProcedures

        protected void generateSequenceStoredProcedures​(Project project)
        INTERNAL: Generates the select and update stored procedures for this project. no procedures are generated for native sequencing. Note: reads are not supported in Oracle.
      • generateStoredProcedure

        protected StoredProcedureDefinition generateStoredProcedure​(DatabaseQuery query,
                                                                    List<org.eclipse.persistence.internal.helper.DatabaseField> fields,
                                                                    String name)
        INTERNAL: Generates the stored procedure for this query. A new row will be used for the check prepare.
      • generateStoredProcedure

        protected StoredProcedureDefinition generateStoredProcedure​(DatabaseQuery query,
                                                                    List<org.eclipse.persistence.internal.helper.DatabaseField> fields,
                                                                    org.eclipse.persistence.internal.sessions.AbstractRecord rowForPrepare,
                                                                    String name)
        INTERNAL: Generates the stored procedure for this query using the row passed in for the check prepare.
      • generateStoredProcedures

        public void generateStoredProcedures()
        PUBLIC: generates all the stored procedures using the schema manager. The schema manager may be set to write directly to the database or to the file. See outputDDLToWriter(Writer) and outputDDLToDatabase() on SchemaManager
      • generateStoredProcedures

        public void generateStoredProcedures​(Writer writerOrNull)
        PUBLIC: generates all the stored procedures to the writer using the schema manager outputDDLToWriter(Writer).
      • getFieldName

        protected String getFieldName​(String argumentName)
        INTERNAL: return the original field name based on the argument name.
      • getFieldType

        protected Class<?> getFieldType​(Object jdbcDataType)
        INTERNAL: return the class corresponding to the passed in JDBC type.
      • getPrefix

        public String getPrefix()
      • getSession

        public org.eclipse.persistence.internal.sessions.AbstractSession getSession()
      • getWriter

        public Writer getWriter()
      • setPrefix

        public void setPrefix​(String prefix)