Interface PersistentEntity

All Superinterfaces:
io.micronaut.core.annotation.AnnotationMetadataProvider, io.micronaut.core.annotation.AnnotationSource, io.micronaut.core.naming.Named, PersistentElement
All Known Implementing Classes:
AbstractPersistentEntity, RuntimePersistentEntity, SourcePersistentEntity

public interface PersistentEntity extends PersistentElement
Models a persistent entity and provides an API that can be used both within the compiler and at runtime. The AnnotationMetadata provided is consistent both at runtime and compilation time.
Since:
1.0
Author:
Graeme Rocher
See Also:
  • Method Details

    • getName

      String getName()
      The entity name including any package prefix.
      Specified by:
      getName in interface io.micronaut.core.naming.Named
      Returns:
      The entity name
    • getAliasName

      String getAliasName()
      Returns:
      A name to use when referring to this element via an alias.
    • hasCompositeIdentity

      boolean hasCompositeIdentity()
      Has composite identity.
      Returns:
      The true if composite identity present
    • hasIdentity

      boolean hasIdentity()
      Has identity.
      Returns:
      The true if identity present
    • getCompositeIdentity

      PersistentProperty[] getCompositeIdentity()
      The composite id. The method will throw an exception if there is none or one identity. hasCompositeIdentity() should be used to check for presence of identity.
      Returns:
      The composite id or null if there isn't one
    • getIdentity

      PersistentProperty getIdentity()
      Returns the identity of the instance. The method will throw an exception if there is none or more than one identity. hasIdentity() should be used to check for presence of identity.
      Returns:
      The identity or null if there isn't one
    • getIdentityProperties

      default List<PersistentProperty> getIdentityProperties()
      Returns all identity properties.
      Returns:
      The identity properties
    • getVersion

      PersistentProperty getVersion()
      Returns the version property. The method will throw an exception if there is no version property. Use hasVersion() to check for presence of version.
      Returns:
      the property
    • hasVersion

      boolean hasVersion()
      Is the entity versioned for optimistic locking.
      Returns:
      true if versioned
    • getPersistentProperties

      Collection<? extends PersistentProperty> getPersistentProperties()
      A list of properties to be persisted.
      Returns:
      A list of PersistentProperty instances
    • getAssociations

      default Collection<? extends Association> getAssociations()
      A list of the associations for this entity. This is typically a subset of the list returned by getPersistentProperties()
      Returns:
      A list of associations
    • getEmbedded

      default Collection<Embedded> getEmbedded()
      A list of embedded associations for this entity. This is typically a subset of the list returned by getPersistentProperties()
      Returns:
      A list of associations
    • getPropertyByName

      @Nullable PersistentProperty getPropertyByName(String name)
      Gets a PersistentProperty instance by name.
      Parameters:
      name - The name of the property
      Returns:
      The PersistentProperty or null if it doesn't exist
    • getPropertyByNameIgnoreCase

      @Nullable PersistentProperty getPropertyByNameIgnoreCase(String name)
      Gets a PersistentProperty instance by name ignoring the case.
      Parameters:
      name - The name of the property
      Returns:
      The PersistentProperty or null if it doesn't exist
    • getIdentityByName

      default @Nullable PersistentProperty getIdentityByName(String name)
      Obtains an identity PersistentProperty instance by name.
      Parameters:
      name - The name of the identity property
      Returns:
      The PersistentProperty or null if it doesn't exist
    • getPersistentPropertyNames

      Collection<String> getPersistentPropertyNames()
      A list of property names that a persistent.
      Returns:
      A List of strings
    • isEmbeddable

      default boolean isEmbeddable()
      Returns:
      Is the entity embeddable.
    • getSimpleName

      default String getSimpleName()
      Returns:
      The simple name without the package of entity
    • getDecapitalizedName

      default String getDecapitalizedName()
      Returns:
      Returns the name of the class decapitalized form
    • isOwningEntity

      boolean isOwningEntity(PersistentEntity owner)
      Returns whether the specified entity asserts ownership over this entity.
      Parameters:
      owner - The owning entity
      Returns:
      True if it does own this entity
    • getParentEntity

      @Nullable PersistentEntity getParentEntity()
      Returns the parent entity of this entity.
      Returns:
      The ParentEntity instance
    • getPath

      default Optional<String> getPath(String camelCasePath)
      Computes a dot separated property path for the given camel case path.
      Parameters:
      camelCasePath - The camel case path
      Returns:
      The dot separated version or null if it cannot be computed
    • getRootEntity

      default PersistentEntity getRootEntity()
      Obtains the root entity of an inheritance hierarchy.
      Returns:
      The root entity
    • isRoot

      default boolean isRoot()
      Whether this entity is a root entity.
      Returns:
      True if it is a root entity
    • getPropertyByPath

      default Optional<PersistentProperty> getPropertyByPath(String path)
      Return a property for a dot separated property path such as foo.bar.prop .
      Parameters:
      path - The path
      Returns:
      The property
    • getPropertyPath

      default @Nullable PersistentPropertyPath getPropertyPath(String path)
      Return a PersistentPropertyPath by path such as foo.bar.prop. .
      Parameters:
      path - The path
      Returns:
      The properties
    • getPropertyPath

      default @Nullable PersistentPropertyPath getPropertyPath(String[] propertyPath)
      Return a PersistentPropertyPath by path such as foo.bar.prop. .
      Parameters:
      propertyPath - The path
      Returns:
      The properties
    • getNamingStrategy

      NamingStrategy getNamingStrategy()
      Obtain the naming strategy for the entity.
      Returns:
      The naming strategy
    • findNamingStrategy

      Optional<NamingStrategy> findNamingStrategy()
      Find the naming strategy that is defined for the entity.
      Returns:
      The optional naming strategy
    • of

      static <T> RuntimePersistentEntity<T> of(Class<T> type)
      Creates a new persistent entity representation of the given type. The type must be annotated with Introspected. This method will create a new instance on demand and does not cache.
      Type Parameters:
      T - The generic type
      Parameters:
      type - The type
      Returns:
      The entity
    • of

      static <T> RuntimePersistentEntity<T> of(io.micronaut.core.beans.BeanIntrospection<T> introspection)
      Creates a new persistent entity representation of the given type. The type must be annotated with Introspected. This method will create a new instance on demand and does not cache.
      Type Parameters:
      T - The generic type
      Parameters:
      introspection - The introspection
      Returns:
      The entity