javax.persistence.metamodel

## Interface IdentifiableType<X>

Type Parameters:
  `X` - The represented entity or mapped superclass type.

All Superinterfaces:
  ManagedType<X>, Type<X>

All Known Subinterfaces:
  EntityType<X>, MappedSuperclassType<X>

    public interface IdentifiableType<X>
    extends ManagedType<X>

Instances of the type `IdentifiableType` represent entity or mapped superclass types.

Since:
  Java Persistence 2.0

### Nested Class Summary

### Nested classes/interfaces inherited from interface javax.persistence.metamodel.Type

`Type.PersistenceType`

### Method Summary

All Methods Instance Methods Abstract Methods
`<Y> SingularAttribute<X,Y>` `getDeclaredId(java.lang.Class<Y> type)` Return the attribute that corresponds to the id attribute declared by the entity or mapped superclass.
`<Y> SingularAttribute<X,Y>` `getDeclaredVersion(java.lang.Class<Y> type)` Return the attribute that corresponds to the version attribute declared by the entity or mapped superclass.
`<Y> SingularAttribute<? super X,Y>` `getId(java.lang.Class<Y> type)` Return the attribute that corresponds to the id attribute of the entity or mapped superclass.
`java.util.Set<SingularAttribute<? super X,?>>` `getIdClassAttributes()` Return the attributes corresponding to the id class of the identifiable type.
`Type<?>` `getIdType()` Return the type that represents the type of the id.
`IdentifiableType<? super X>` `getSupertype()` Return the identifiable type that corresponds to the most specific mapped superclass or entity extended by the entity or mapped superclass.
`<Y> SingularAttribute<? super X,Y>` `getVersion(java.lang.Class<Y> type)` Return the attribute that corresponds to the version attribute of the entity or mapped superclass.
`boolean` `hasSingleIdAttribute()` Whether the identifiable type has a single id attribute.
`boolean` `hasVersionAttribute()` Whether the identifiable type has a version attribute.

### Methods inherited from interface javax.persistence.metamodel.ManagedType

`getAttribute, getAttributes, getCollection, getCollection, getDeclaredAttribute, getDeclaredAttributes, getDeclaredCollection, getDeclaredCollection, getDeclaredList, getDeclaredList, getDeclaredMap, getDeclaredMap, getDeclaredPluralAttributes, getDeclaredSet, getDeclaredSet, getDeclaredSingularAttribute, getDeclaredSingularAttribute, getDeclaredSingularAttributes, getList, getList, getMap, getMap, getPluralAttributes, getSet, getSet, getSingularAttribute, getSingularAttribute, getSingularAttributes`

### Methods inherited from interface javax.persistence.metamodel.Type

`getJavaType, getPersistenceType`

### Method Detail

#### getId

    <Y> SingularAttribute<? super X,Y> getId(java.lang.Class<Y> type)

Return the attribute that corresponds to the id attribute of the entity or mapped superclass.

Parameters:
  `type` - the type of the represented id attribute
Returns:
  id attribute
Throws:
  `java.lang.IllegalArgumentException` - if id attribute of the given type is not present in the identifiable type or if the identifiable type has an id class

#### getDeclaredId

    <Y> SingularAttribute<X,Y> getDeclaredId(java.lang.Class<Y> type)

Return the attribute that corresponds to the id attribute declared by the entity or mapped superclass.

Parameters:
  `type` - the type of the represented declared id attribute
Returns:
  declared id attribute
Throws:
  `java.lang.IllegalArgumentException` - if id attribute of the given type is not declared in the identifiable type or if the identifiable type has an id class

#### getVersion

    <Y> SingularAttribute<? super X,Y> getVersion(java.lang.Class<Y> type)

Return the attribute that corresponds to the version attribute of the entity or mapped superclass.

Parameters:
  `type` - the type of the represented version attribute
Returns:
  version attribute
Throws:
  `java.lang.IllegalArgumentException` - if version attribute of the given type is not present in the identifiable type

#### getDeclaredVersion

    <Y> SingularAttribute<X,Y> getDeclaredVersion(java.lang.Class<Y> type)

Return the attribute that corresponds to the version attribute declared by the entity or mapped superclass.

Parameters:
  `type` - the type of the represented declared version attribute
Returns:
  declared version attribute
Throws:
  `java.lang.IllegalArgumentException` - if version attribute of the type is not declared in the identifiable type

#### getSupertype

    IdentifiableType<? super X> getSupertype()

Return the identifiable type that corresponds to the most specific mapped superclass or entity extended by the entity or mapped superclass.

Returns:
  supertype of identifiable type or null if no such supertype

#### hasSingleIdAttribute

    boolean hasSingleIdAttribute()

Whether the identifiable type has a single id attribute. Returns true for a simple id or embedded id; returns false for an idclass.

Returns:
  boolean indicating whether the identifiable type has a single id attribute

#### hasVersionAttribute

    boolean hasVersionAttribute()

Whether the identifiable type has a version attribute.

Returns:
  boolean indicating whether the identifiable type has a version attribute

#### getIdClassAttributes

    java.util.Set<SingularAttribute<? super X,?>> getIdClassAttributes()

Return the attributes corresponding to the id class of the identifiable type.

Returns:
  id attributes
Throws:
  `java.lang.IllegalArgumentException` - if the identifiable type does not have an id class

#### getIdType

    Type<?> getIdType()

Return the type that represents the type of the id.

Returns:
  type of id