Package io.micronaut.data.model
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
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:
-
Field Summary
Fields inherited from interface io.micronaut.core.annotation.AnnotationSource
EMPTY
-
Method Summary
Modifier and TypeMethodDescription@NonNull Optional<NamingStrategy>
Find the naming strategy that is defined for the entity.@NonNull String
default @NonNull Collection<? extends Association>
A list of the associations for this entity.@Nullable PersistentProperty[]
The composite id.default @NonNull String
default @NonNull Collection<Embedded>
A list of embedded associations for this entity.@Nullable PersistentProperty
Returns the identity of the instance.default @Nullable PersistentProperty
getIdentityByName
(String name) Obtains an identity PersistentProperty instance by name.@NonNull String
getName()
The entity name including any package prefix.@NonNull NamingStrategy
Obtain the naming strategy for the entity.@Nullable PersistentEntity
Returns the parent entity of this entity.Computes a dot separated property path for the given camel case path.@NonNull Collection<? extends PersistentProperty>
A list of properties to be persisted.@NonNull Collection<String>
A list of property names that a persistent.@Nullable PersistentProperty
getPropertyByName
(String name) Obtains a PersistentProperty instance by name.default Optional<PersistentProperty>
getPropertyByPath
(String path) Return a property for a dot separated property path such asfoo.bar.prop
.default @Nullable PersistentPropertyPath
getPropertyPath
(@NonNull String path) Return aPersistentPropertyPath
by path such asfoo.bar.prop
.default @Nullable PersistentPropertyPath
getPropertyPath
(@NonNull String[] propertyPath) Return aPersistentPropertyPath
by path such asfoo.bar.prop
.default @NonNull PersistentEntity
Obtains the root entity of an inheritance hierarchy.default @NonNull String
@Nullable PersistentProperty
Returns the version property.default boolean
Has composite identity.default boolean
Has identity.default boolean
boolean
isOwningEntity
(PersistentEntity owner) Returns whether the specified entity asserts ownership over this entity.default boolean
isRoot()
Whether this entity is a root entity.default boolean
Is the entity versioned for optimistic locking.static <T> @NonNull RuntimePersistentEntity<T>
of
(@NonNull io.micronaut.core.beans.BeanIntrospection<T> introspection) Creates a new persistent entity representation of the given type.static <T> @NonNull RuntimePersistentEntity<T>
Creates a new persistent entity representation of the given type.Methods inherited from interface io.micronaut.core.annotation.AnnotationMetadataProvider
findAnnotation, findAnnotation, findDeclaredAnnotation, findDeclaredAnnotation, getAnnotationMetadata, getTargetAnnotationMetadata, isAnnotationPresent, isDeclaredAnnotationPresent, synthesize, synthesizeAll, synthesizeAnnotationsByType, synthesizeDeclared, synthesizeDeclared, synthesizeDeclaredAnnotationsByType
Methods inherited from interface io.micronaut.core.annotation.AnnotationSource
getAnnotation, getAnnotation, getDeclaredAnnotation, getDeclaredAnnotation, isAnnotationPresent, isDeclaredAnnotationPresent, synthesize, synthesizeDeclared
Methods inherited from interface io.micronaut.data.model.PersistentElement
getPersistedName
-
Method Details
-
getName
The entity name including any package prefix.- Specified by:
getName
in interfaceio.micronaut.core.naming.Named
- Returns:
- The entity name
-
getAliasName
- Returns:
- A name to use when referring to this element via an alias.
-
hasCompositeIdentity
default boolean hasCompositeIdentity()Has composite identity.- Returns:
- The true if composite identity present
-
hasIdentity
default boolean hasIdentity()Has identity.- Returns:
- The true if identity present
-
getCompositeIdentity
The composite id.- Returns:
- The composite id or null if there isn't one
-
getIdentity
Returns the identity of the instance.- Returns:
- The identity or null if there isn't one
-
getVersion
Returns the version property.- Returns:
- the property
-
isVersioned
default boolean isVersioned()Is the entity versioned for optimistic locking.- Returns:
- true if versioned
-
getPersistentProperties
A list of properties to be persisted.- Returns:
- A list of PersistentProperty instances
-
getAssociations
A list of the associations for this entity. This is typically a subset of the list returned bygetPersistentProperties()
- Returns:
- A list of associations
-
getEmbedded
A list of embedded associations for this entity. This is typically a subset of the list returned bygetPersistentProperties()
- Returns:
- A list of associations
-
getPropertyByName
Obtains a PersistentProperty instance by name.- Parameters:
name
- The name of the property- Returns:
- The PersistentProperty or null if it doesn't exist
-
getIdentityByName
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
A list of property names that a persistent.- Returns:
- A List of strings
-
isEmbeddable
default boolean isEmbeddable()- Returns:
- Is the entity embeddable.
-
getSimpleName
- Returns:
- The simple name without the package of entity
-
getDecapitalizedName
- Returns:
- Returns the name of the class decapitalized form
-
isOwningEntity
Returns whether the specified entity asserts ownership over this entity.- Parameters:
owner
- The owning entity- Returns:
- True if it does own this entity
-
getParentEntity
Returns the parent entity of this entity.- Returns:
- The ParentEntity instance
-
getPath
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
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
Return a property for a dot separated property path such asfoo.bar.prop
.- Parameters:
path
- The path- Returns:
- The property
-
getPropertyPath
Return aPersistentPropertyPath
by path such asfoo.bar.prop
. .- Parameters:
path
- The path- Returns:
- The properties
-
getPropertyPath
@Nullable default @Nullable PersistentPropertyPath getPropertyPath(@NonNull @NonNull String[] propertyPath) Return aPersistentPropertyPath
by path such asfoo.bar.prop
. .- Parameters:
propertyPath
- The path- Returns:
- The properties
-
getNamingStrategy
Obtain the naming strategy for the entity.- Returns:
- The naming strategy
-
findNamingStrategy
Find the naming strategy that is defined for the entity.- Returns:
- The optional naming strategy
-
of
Creates a new persistent entity representation of the given type. The type must be annotated withIntrospected
. 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
@NonNull static <T> @NonNull RuntimePersistentEntity<T> of(@NonNull @NonNull io.micronaut.core.beans.BeanIntrospection<T> introspection) Creates a new persistent entity representation of the given type. The type must be annotated withIntrospected
. 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
-