Class ObjectRelationalDatabaseField

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, org.eclipse.persistence.internal.core.helper.CoreField

    public class ObjectRelationalDatabaseField
    extends org.eclipse.persistence.internal.helper.DatabaseField
    INTERNAL: A database field of object-relational type: either a java.sql.Array, java.sql.Struct, or java.sql.Ref. Oracle drivers require the user defined field type name for these fields, along with the generic sqlType: ARRAY, STRUCT, or REF. Toplink can only recognize primitive field types like Integer or String, but here custom java objects are being written to a single field. Thus instead of DatabaseField#type the driver needs a string representing the user defined type of the structure on the database, and the type of field: either ARRAY, STRUCT, or REF. Added for bug 2730536.
    See Also:
    Serialized Form
    Author:
    Stephen McRitchie
    Since:
    OracleAS TopLink 10g (9.0.4)
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.eclipse.persistence.internal.helper.DatabaseField nestedTypeField  
      protected java.lang.String sqlTypeName  
      • Fields inherited from class org.eclipse.persistence.internal.helper.DatabaseField

        columnDefinition, index, isCreatable, isInsertable, isNullable, isPrimaryKey, isTranslated, isUnique, isUpdatable, keepInRow, length, name, nameForComparisons, NULL_SQL_TYPE, precision, qualifiedName, scale, sqlType, table, type, typeName, useDelimiters, useUpperCaseForComparisons
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void convertClassNamesToClasses​(java.lang.ClassLoader classLoader)  
      org.eclipse.persistence.internal.helper.DatabaseField getNestedTypeField()
      ADVANCED: For ARRAY fields, this field's type represents the type contained in the ARRAY.
      java.lang.String getSqlTypeName()
      ADVANCED: For ARRAY and STRUCT fields, this is the user defined type for the field.
      boolean isObjectRelationalDatabaseField()
      PUBLIC: Return if this is an ObjectRelationalDatabaseField.
      void setNestedTypeField​(org.eclipse.persistence.internal.helper.DatabaseField nestedTypeField)
      ADVANCED: For ARRAY fields, this field's type represents the type contained in the ARRAY.
      void setSqlTypeName​(java.lang.String sqlTypeName)
      ADVANCED: For ARRAY and STRUCT fields, this is the user defined type for the field.
      • Methods inherited from class org.eclipse.persistence.internal.helper.DatabaseField

        clone, equals, equals, getColumnDefinition, getIndex, getLength, getName, getNameDelimited, getNameForComparisons, getPrecision, getQualifiedName, getQualifiedNameDelimited, getScale, getSqlType, getTable, getTableName, getType, getTypeName, getUseUpperCaseForComparisons, hashCode, hasTableName, initDDLFields, isCreatable, isInsertable, isNullable, isPrimaryKey, isReadOnly, isTranslated, isUnique, isUpdatable, keepInRow, resetQualifiedName, setColumnDefinition, setCreatable, setIndex, setInsertable, setIsTranslated, setKeepInRow, setLength, setName, setName, setName, setNameForComparisons, setNullable, setPrecision, setPrimaryKey, setScale, setSqlType, setTable, setTableName, setType, setTypeName, setUnique, setUpdatable, setUseDelimiters, shouldUseDelimiters, toString, useUpperCaseForComparisons
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • sqlTypeName

        protected java.lang.String sqlTypeName
      • nestedTypeField

        protected org.eclipse.persistence.internal.helper.DatabaseField nestedTypeField
    • Constructor Detail

      • ObjectRelationalDatabaseField

        public ObjectRelationalDatabaseField​(org.eclipse.persistence.internal.helper.DatabaseField field)
      • ObjectRelationalDatabaseField

        public ObjectRelationalDatabaseField​(java.lang.String name)
    • Method Detail

      • convertClassNamesToClasses

        public void convertClassNamesToClasses​(java.lang.ClassLoader classLoader)
        Overrides:
        convertClassNamesToClasses in class org.eclipse.persistence.internal.helper.DatabaseField
      • getSqlTypeName

        public java.lang.String getSqlTypeName()
        ADVANCED: For ARRAY and STRUCT fields, this is the user defined type for the field. For REF fields, this is the user defined type of entity is points to.
      • isObjectRelationalDatabaseField

        public boolean isObjectRelationalDatabaseField()
        PUBLIC: Return if this is an ObjectRelationalDatabaseField.
        Overrides:
        isObjectRelationalDatabaseField in class org.eclipse.persistence.internal.helper.DatabaseField
      • setSqlTypeName

        public void setSqlTypeName​(java.lang.String sqlTypeName)
        ADVANCED: For ARRAY and STRUCT fields, this is the user defined type for the field. For REF fields, this is the user defined type of entity is points to.
      • getNestedTypeField

        public org.eclipse.persistence.internal.helper.DatabaseField getNestedTypeField()
        ADVANCED: For ARRAY fields, this field's type represents the type contained in the ARRAY.
      • setNestedTypeField

        public void setNestedTypeField​(org.eclipse.persistence.internal.helper.DatabaseField nestedTypeField)
        ADVANCED: For ARRAY fields, this field's type represents the type contained in the ARRAY.