Interface PersistenceGenerator.StatementGenerator

Enclosing interface:
PersistenceGenerator

public static interface PersistenceGenerator.StatementGenerator
Persistence code snippets generator.
  • Method Details

    • executorType

      TypeName executorType()
      Repository executor type.
      Returns:
      the type of the executor
    • addPersist

      void addPersist(Method.Builder builder, String identifier)
      Add code to persist single entity.
      Parameters:
      builder - method builder
      identifier - entity identifier
    • addMerge

      void addMerge(Method.Builder builder, String identifier)
      Add code to merge single entity.
      Parameters:
      builder - method builder
      identifier - entity identifier
    • addPersistCollection

      void addPersistCollection(Method.Builder builder, String identifier)
      Add code to persist entities Collection.
      Parameters:
      builder - method builder
      identifier - entity identifier
    • addMergeCollection

      void addMergeCollection(Method.Builder builder, String identifier, String merged)
      Add code to merge entities Collection.
      Parameters:
      builder - method builder
      identifier - entity identifier
      merged - merged collection identifier
    • addRemove

      void addRemove(Method.Builder builder, String identifier)
      Add code to remove single entity.
      Parameters:
      builder - method builder
      identifier - entity identifier
    • addRemoveCollection

      void addRemoveCollection(Method.Builder builder, String identifier)
      Add code to remove entities Collection.
      Parameters:
      builder - method builder
      identifier - entity identifier
    • addFind

      void addFind(Method.Builder builder, String identifier, TypeName entity)
      Add code to find entity by primary key.
      Parameters:
      builder - method builder
      identifier - primary key identitifer
      entity - entity class name
    • addUpdate

      void addUpdate(Method.Builder builder, String executor, String identifier, TypeName entity)
      Add code to update entity.
      Parameters:
      builder - method builder
      executor - executor identifier
      identifier - entity identifier
      entity - entity class name
    • addUpdateAll

      void addUpdateAll(Method.Builder builder, String executor, String srcEntities, String updatedEntities, TypeName entity)
      Add code to update entity.
      Parameters:
      builder - method builder
      executor - executor identifier
      srcEntities - source entities collection identifier
      updatedEntities - updated entities collection identifier
      entity - entity class name
    • addExecuteSimpleQueryItem

      void addExecuteSimpleQueryItem(Method.Builder builder, String query, TypeName returnType)
      Add code to execute query on entity and return single returnType instance.
      Parameters:
      builder - method builder
      query - query string
      returnType - query result type
    • addExecuteSimpleQueryList

      void addExecuteSimpleQueryList(Method.Builder builder, String query, TypeName entity)
      Add code to execute query on entity and return List of entity instances.
      Parameters:
      builder - method builder
      query - query string
      entity - entity class name
    • addExecuteSimpleQueryStream

      void addExecuteSimpleQueryStream(Method.Builder builder, String query, TypeName entity)
      Add code to execute query on entity and return Stream of entity instances.
      Parameters:
      builder - method builder
      query - query string
      entity - entity class name
    • addExecuteQueryItem

      void addExecuteQueryItem(Method.Builder builder, PersistenceGenerator.Query query, TypeName returnType)
      Add code to execute query and return single returnType instance.
      Parameters:
      builder - method builder
      query - query generated code
      returnType - query result type
    • addExecuteDynamicQueryItem

      void addExecuteDynamicQueryItem(Method.Builder builder, RepositoryInfo repositoryInfo, TypedElementInfo methodInfo, MethodParams methodParams, DataQuery dataQuery, TypeName returnType)
      Add code to execute query and return single returnType instance.
      Parameters:
      builder - method builder
      repositoryInfo - data repository interface info
      methodInfo - method descriptor
      methodParams - method parameters
      dataQuery - query abstract model
      returnType - query result type
    • addExecuteQueryItemOrNull

      void addExecuteQueryItemOrNull(Method.Builder builder, PersistenceGenerator.Query query, TypeName returnType)
      Add code to execute query and return single returnType instance or null. Requires Jakarta Persistence 3.2.
      Parameters:
      builder - method builder
      query - query generated code
      returnType - query result type
    • addExecuteDynamicQueryItemOrNull

      void addExecuteDynamicQueryItemOrNull(Method.Builder builder, RepositoryInfo repositoryInfo, TypedElementInfo methodInfo, MethodParams methodParams, DataQuery dataQuery, TypeName returnType)
      Add code to execute query and return single returnType instance or null. Requires Jakarta Persistence 3.2.
      Parameters:
      builder - method builder
      repositoryInfo - data repository interface info
      methodInfo - method descriptor
      methodParams - method parameters
      dataQuery - query abstract model
      returnType - query result type
    • addExecuteQueryList

      void addExecuteQueryList(Method.Builder builder, PersistenceGenerator.Query query, TypeName returnType)
      Add code to execute query and return List of returnType instances.
      Parameters:
      builder - method builder
      query - query generated code
      returnType - query result type
    • addExecuteDynamicQueryList

      void addExecuteDynamicQueryList(Method.Builder builder, RepositoryInfo repositoryInfo, TypedElementInfo methodInfo, MethodParams methodParams, DataQuery dataQuery, TypeName returnType)
      Add code to execute dynamic query and return List of returnType instances.
      Parameters:
      builder - method builder
      repositoryInfo - data repository interface info
      methodInfo - method descriptor
      methodParams - method parameters
      dataQuery - query abstract model
      returnType - query result type
    • addExecuteQueryStream

      void addExecuteQueryStream(Method.Builder builder, PersistenceGenerator.Query query, TypeName returnType)
      Add code to execute query and return Stream of returnType instances.
      Parameters:
      builder - method builder
      query - query generated code
      returnType - query result type
    • addExecuteDynamicQueryStream

      void addExecuteDynamicQueryStream(Method.Builder builder, RepositoryInfo repositoryInfo, TypedElementInfo methodInfo, MethodParams methodParams, DataQuery dataQuery, TypeName returnType)
      Add code to execute dynamic query and return Stream of returnType instances.
      Parameters:
      builder - method builder
      repositoryInfo - data repository interface info
      methodInfo - method descriptor
      methodParams - method parameters
      dataQuery - query abstract model
      returnType - query result type
    • addQueryItem

      void addQueryItem(Method.Builder builder, PersistenceGenerator.Query query, TypeName returnType)
      Add query from provided query.
      Parameters:
      builder - method builder
      query - query generated code
      returnType - query result type
    • addQueryPage

      void addQueryPage(Method.Builder builder, PersistenceGenerator.Query query, TypeName returnType, String firstResult, String maxResults)
      Add code to create query and return List of returnType instances with pagination applied.
      Parameters:
      builder - method builder
      query - query generated code
      returnType - query result type
      firstResult - position of the first result to retrieve
      maxResults - maximum number of results to retrieve
    • addQueryPage

      void addQueryPage(Method.Builder builder, Consumer<Method.Builder> queryContent, List<PersistenceGenerator.QuerySettings> settings, TypeName returnType, String firstResult, String maxResults)
      Add code to create query and return List of returnType instances with pagination applied.
      Parameters:
      builder - method builder
      queryContent - query parameter content
      settings - query settings
      returnType - query result type
      firstResult - position of the first result to retrieve
      maxResults - maximum number of results to retrieve
    • addQueryCount

      void addQueryCount(Method.Builder builder, PersistenceGenerator.Query query)
      Add COUNT query from provided query.
      Parameters:
      builder - method builder
      query - query generated code
    • addQueryCount

      void addQueryCount(Method.Builder builder, Consumer<Method.Builder> queryContent, List<PersistenceGenerator.QuerySettings> settings, TypeName returnType)
      Add COUNT query from provided query.
      Parameters:
      builder - method builder
      queryContent - query parameter content
      settings - query settings
      returnType - query result type
    • addDynamicSliceQuery

      List<PersistenceGenerator.QuerySettings> addDynamicSliceQuery(Method.Builder builder, RepositoryInfo repositoryInfo, TypedElementInfo methodInfo, MethodParams methodParams, DataQuery dataQuery, String dataQueryStatement, TypeName returnType)
      Add code to create dynamic query for Slice. Slice requires data query to return List of returnType instances.
      Parameters:
      builder - method builder
      repositoryInfo - data repository interface info
      methodInfo - method descriptor
      methodParams - method parameters
      dataQuery - query abstract model
      dataQueryStatement - name of the data query statement (used in following code to create Page)
      returnType - query result type
      Returns:
      settings query settings
    • addDynamicPageQueries

      List<PersistenceGenerator.QuerySettings> addDynamicPageQueries(Method.Builder builder, RepositoryInfo repositoryInfo, TypedElementInfo methodInfo, MethodParams methodParams, DataQuery dataQuery, String dataQueryStatement, String countQueryStatement, TypeName returnType)
      Add code to create dynamic queries for Page. Page requires data query to return List of returnType instances and additional query to count size of the query result across all pages.
      Parameters:
      builder - method builder
      repositoryInfo - data repository interface info
      methodInfo - method descriptor
      methodParams - method parameters
      dataQuery - query abstract model
      dataQueryStatement - name of the data query statement (used in following code to create Page)
      countQueryStatement - name of the count query statement (used in following code to create Page)
      returnType - query result type
      Returns:
      settings query settings
    • addExecuteSimpleDml

      void addExecuteSimpleDml(Method.Builder builder, String dml)
      Add code to execute DML statement with no parameters.
      Parameters:
      builder - method builder
      dml - DML statement string
    • addExecuteDml

      void addExecuteDml(Method.Builder builder, PersistenceGenerator.Query dml)
      Add code to execute DML statement.
      Parameters:
      builder - method builder
      dml - DML statement string
    • addDynamicDml

      void addDynamicDml(Method.Builder builder, RepositoryInfo repositoryInfo, TypedElementInfo methodInfo, MethodParams methodParams, DataQuery dataQuery, TypeName returnType)
      Add code to execute dynamic DML statement.
      Parameters:
      builder - method builder
      repositoryInfo - data repository interface info
      methodInfo - method descriptor
      methodParams - method parameters
      dataQuery - query abstract model
      returnType - query result type
    • addSessionLambda

      void addSessionLambda(Method.Builder builder, Consumer<Method.Builder> content)
      Add code with persistence session lambda expression.
      Parameters:
      builder - method builder
      content - additional statement content
    • addSessionLambdaBlock

      void addSessionLambdaBlock(Method.Builder builder, Consumer<Method.Builder> content)
      Add code with persistence session lambda block.
      Parameters:
      builder - method builder
      content - additional statement content