Top Description Methods
org.hibernate.annotations

public @Interface Any

extends Annotation
Annotations
@Target:METHOD, FIELD
@Retention:RUNTIME
Imports
java.lang.annotation.Retention, javax.persistence.Column, .FetchType

Defines a ToOne-style association pointing to one of several entity types depending on a local discriminator, as opposed to discriminated inheritance where the discriminator is kept as part of the entity hierarchy. For example, if you consider an Order entity containing Payment information where Payment might be of type CashPayment or CreditCardPayment the @Any approach would be to keep that discriminator and matching value on the Order itself. Thought of another way, the "foreign-key" really is made up of the value and discriminator (there is no physical foreign key here as databases do not support this):
   @Entity
   class Order {
       ...
       @Any( metaColumn = @Column( name="payment_type" ) )
       @AnyMetDef(
               idType = "long"
               metaValues = {
                       @MetaValue( value="C", targetEntity=CashPayment.class ),
                       @MetaValue( value="CC", targetEntity=CreditCardPayment.class ),
               }
       )
       pubic Payment getPayment() { ... }
   }
}
Authors
Emmanuel Bernard, Steve Ebersole
See Also
AnyMetaDef

Method Summary

Modifier and TypeMethod and Description
public FetchType
fetch()

Defines whether the value of the field or property should be lazily loaded or must be eagerly fetched.

public Column
metaColumn()

Identifies the discriminator column.

public String
metaDef()

Metadata definition used.

public boolean
optional()

Whether the association is optional.

Inherited from java.lang.annotation.Annotation:
annotationTypeequalshashCodetoString

Method Detail

fetchback to summary
public FetchType fetch()

Defines whether the value of the field or property should be lazily loaded or must be eagerly fetched. The EAGER strategy is a requirement on the persistence provider runtime that the value must be eagerly fetched. The LAZY strategy is applied when bytecode enhancement is used. If not specified, defaults to EAGER.

metaColumnback to summary
public Column metaColumn()

Identifies the discriminator column. This column will hold the value that identifies the targeted entity.

metaDefback to summary
public String metaDef()

Metadata definition used. If defined, should point to a @AnyMetaDef name If not defined, the local (ie in the same field or property) @AnyMetaDef is used

optionalback to summary
public boolean optional()

Whether the association is optional. If set to false then a non-null relationship must always exist.