Module eclipselink

Class StoredProcedureGenerator

java.lang.Object
org.eclipse.persistence.tools.schemaframework.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
  • Field Details

  • Constructor Details

    • StoredProcedureGenerator

      public StoredProcedureGenerator(SchemaManager schemaMngr)
  • Method Details

    • 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
    • generateDeleteStoredProcedure

      protected StoredProcedureDefinition generateDeleteStoredProcedure(ClassDescriptor descriptor)
      INTERNAL: Generates the delete stored procedure for this descriptor
    • generateInsertStoredProcedure

      protected StoredProcedureDefinition generateInsertStoredProcedure(ClassDescriptor descriptor)
      INTERNAL: Generates the insert stored procedure for this descriptor
    • generateMappingStoredProcedures

      protected Map<String,Map<String,StoredProcedureDefinition>> generateMappingStoredProcedures(ClassDescriptor descriptor)
      INTERNAL: Generates the mapping stored procedures for this descriptor. currently only 1:1 and 1:M are supported
    • 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
    • generateReadStoredProcedure

      protected StoredProcedureDefinition generateReadStoredProcedure(ClassDescriptor descriptor)
      INTERNAL: Generates the read 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).
    • generateUpdateStoredProcedure

      protected StoredProcedureDefinition generateUpdateStoredProcedure(ClassDescriptor descriptor)
      INTERNAL: Generates the update stored procedure for this descriptor
    • 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)
    • verify

      protected void verify() throws ValidationException
      INTERNAL: Verify that this project and descriptors do not have optimistic locking.
      Throws:
      ValidationException
    • writeDefinition

      public void writeDefinition(StoredProcedureDefinition definition)