SecondaryKeyMetadata (Oracle - Berkeley DB Java Edition API)
Date: 2014-12-16

com.sleepycat.persist.model

## Class SecondaryKeyMetadata

- java.lang.Object
- - com.sleepycat.persist.model.FieldMetadata
  - - com.sleepycat.persist.model.SecondaryKeyMetadata

- All Implemented Interfaces:
    Serializable

      public class SecondaryKeyMetadata
      extends FieldMetadata

  The metadata for a secondary key field. A secondary key may be specified with the `SecondaryKey` annotation.

  `SecondaryKeyMetadata` objects are thread-safe. Multiple threads may safely call the methods of a shared `SecondaryKeyMetadata` object.

  Author:
    Mark Hayes
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SecondaryKeyMetadata(String name, String className, String declaringClassName, String elementClassName, String keyName, Relationship relationship, String relatedEntity, DeleteAction deleteAction)` Used by an `EntityModel` to construct secondary key metadata.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object other)`
    `DeleteAction` | `getDeleteAction()` Returns the action to take when a related entity is deleted having a primary key value that exists as a secondary key value for this entity.
    `String` | `getElementClassName()` Returns the class name of the array or collection element for a `ONE_TO_MANY` or `MANY_TO_MANY` relationship, or null for a Relationship#ONE_TO_ONE ONE_TO_ONE} or `MANY_TO_ONE` relationship.
    `String` | `getKeyName()` Returns the key name, which may be different from the field name.
    `String` | `getRelatedEntity()` Returns the class name of the related (foreign) entity, for which foreign key constraints are specified using the `SecondaryKey.relatedEntity()` annotation.
    `Relationship` | `getRelationship()` Returns the relationship between instances of the entity class and the secondary keys.
    `int` | `hashCode()`

    - ### Methods inherited from class com.sleepycat.persist.model.FieldMetadata

      `getClassName, getDeclaringClassName, getName, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### SecondaryKeyMetadata

          public SecondaryKeyMetadata(String name,
                              String className,
                              String declaringClassName,
                              String elementClassName,
                              String keyName,
                              Relationship relationship,
                              String relatedEntity,
                              DeleteAction deleteAction)

      Used by an `EntityModel` to construct secondary key metadata.

  - ### Method Detail

    - #### getElementClassName

          public String getElementClassName()

      Returns the class name of the array or collection element for a `ONE_TO_MANY` or `MANY_TO_MANY` relationship, or null for a Relationship#ONE_TO_ONE ONE_TO_ONE} or `MANY_TO_ONE` relationship.

    - #### getKeyName

          public String getKeyName()

      Returns the key name, which may be different from the field name.

    - #### getRelationship

          public Relationship getRelationship()

      Returns the relationship between instances of the entity class and the secondary keys. This may be specified using the `SecondaryKey.relate()` annotation.

    - #### getRelatedEntity

          public String getRelatedEntity()

      Returns the class name of the related (foreign) entity, for which foreign key constraints are specified using the `SecondaryKey.relatedEntity()` annotation.

    - #### getDeleteAction

          public DeleteAction getDeleteAction()

      Returns the action to take when a related entity is deleted having a primary key value that exists as a secondary key value for this entity. This may be specified using the `SecondaryKey.onRelatedEntityDelete()` annotation.

    - #### equals

          public boolean equals(Object other)

      Overrides:
        `equals` in class `FieldMetadata`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `FieldMetadata`

Copyright (c) 2004, 2014 Oracle and/or its affiliates. All rights reserved.