Class PersistentEntityUtils

java.lang.Object
io.micronaut.data.model.PersistentEntityUtils

@Internal public final class PersistentEntityUtils extends Object
Persistent entity utils.
Since:
3.5.0
Author:
Denis Stepanov
  • Method Details

    • isAccessibleWithoutJoin

      public static boolean isAccessibleWithoutJoin(Association association, PersistentProperty persistentProperty)
      Check if the property is stored on the owning side, and so can be accessed without a join. This does not mirror traversePersistentProperties(List, PersistentProperty, boolean, BiConsumer), which also descends through non-foreign-key associations: a leaf several associations deep has to be checked one association at a time.
      Parameters:
      association - The association
      persistentProperty - The association's property
      Returns:
      true if can be accessed
      Since:
      4.2.0
    • traversePersistentProperties

      public static void traversePersistentProperties(PersistentProperty property, BiConsumer<List<Association>, PersistentProperty> consumer)
      Traverses properties that should be persisted.
      Parameters:
      property - The property to start traversing from
      consumer - The function to invoke on every property
    • traversePersistentProperties

      public static void traversePersistentProperties(PersistentEntity persistentEntity, BiConsumer<List<Association>, PersistentProperty> consumer)
      Traverses properties that should be persisted.
      Parameters:
      persistentEntity - The persistent entity
      consumer - The function to invoke on every property
    • traversePersistentProperties

      public static void traversePersistentProperties(PersistentEntity persistentEntity, boolean includeIdentity, boolean includeVersion, BiConsumer<List<Association>, PersistentProperty> consumer)
      Traverses properties that should be persisted.
      Parameters:
      persistentEntity - The persistent entity
      includeIdentity - Should be identifier included
      includeVersion - Should be version included
      consumer - The function to invoke on every property
    • countPersistentProperties

      public static int countPersistentProperties(PersistentProperty property)
      Count possible embedded properties.
      Parameters:
      property - The property
      Returns:
      the count
    • countPersistentProperties

      public static int countPersistentProperties(List<Association> associations, PersistentProperty property)
      Count possible embedded properties.
      Parameters:
      associations - The associations
      property - The property
      Returns:
      the count
    • traversePersistentProperties

      public static void traversePersistentProperties(List<Association> associations, PersistentProperty property, BiConsumer<List<Association>, PersistentProperty> consumerProperty)
    • traversePersistentProperties

      public static void traversePersistentProperties(PersistentPropertyPath propertyPath, BiConsumer<List<Association>, PersistentProperty> consumerProperty)
    • traverse

      public static void traverse(PersistentPropertyPath propertyPath, Consumer<PersistentPropertyPath> consumer)
    • traversePersistentProperties

      public static void traversePersistentProperties(PersistentPropertyPath propertyPath, boolean traverseEmbedded, BiConsumer<List<Association>, PersistentProperty> consumerProperty)
    • traversePersistentProperties

      public static void traversePersistentProperties(List<Association> associations, PersistentProperty property, boolean traverseEmbedded, BiConsumer<List<Association>, PersistentProperty> consumerProperty)
      Traverses the properties that should be persisted for the given property. An association contributes the columns the owning side stores for it: its identity properties, or, when the target has no identity, its own properties, as a document store stores such a target inline.
      Parameters:
      associations - The associations traversed so far, prefixed to every emitted leaf
      property - The property to traverse
      traverseEmbedded - Whether to descend into an embedded property or emit it whole
      consumerProperty - The function to invoke on every leaf property
    • getPersistentPropertyPath

      public static Optional<String> getPersistentPropertyPath(PersistentEntity entity, String path)
      Computes a dot separated property path for the given camel case path.
      Parameters:
      entity - the persistent entity
      path - The camel case path, can contain underscore to indicate how we should traverse entity properties
      Returns:
      The dot separated version or null if it cannot be computed