Class ReflectionMappers

java.lang.Object
org.jdbi.v3.core.mapper.reflect.ReflectionMappers
All Implemented Interfaces:
JdbiConfig<ReflectionMappers>

public class ReflectionMappers extends Object implements JdbiConfig<ReflectionMappers>
Configuration class for reflective mappers.
  • Constructor Details

    • ReflectionMappers

      public ReflectionMappers()
      Create a default configuration that attempts case insensitive and snake_case matching for names.
  • Method Details

    • getColumnNameMatchers

      public List<ColumnNameMatcher> getColumnNameMatchers()
      Returns the registered column name mappers.
      Returns:
      the registered column name mappers.
    • setColumnNameMatchers

      public ReflectionMappers setColumnNameMatchers(List<ColumnNameMatcher> columnNameMatchers)
      Replace all column name matchers with the given list.
      Parameters:
      columnNameMatchers - the column name matchers to use
      Returns:
      this
    • isStrictMatching

      public boolean isStrictMatching()
      Returns whether strict column name matching is enabled.
      Returns:
      True if strict column name matching is enabled.
    • setStrictMatching

      public ReflectionMappers setStrictMatching(boolean strictMatching)
      Throw an IllegalArgumentException if a the set of fields doesn't match to columns exactly. Reflection mappers with prefixes will only check those columns that begin with the mapper's prefix.
      Parameters:
      strictMatching - whether to enable strict matching
      Returns:
      this
    • getCaseChange

      public UnaryOperator<String> getCaseChange()
      Case change strategy for the database column names. By default, the row names are lowercased using the system locale.
      Returns:
      The current case change strategy.
      See Also:
    • setCaseChange

      public ReflectionMappers setCaseChange(UnaryOperator<String> caseChange)
      Sets the case change strategy for the database column names. By default, the row names are lowercased using the system locale.
      Parameters:
      caseChange - The strategy to use. Must not be null.
      See Also:
    • setAccessibleObjectStrategy

      @Alpha public ReflectionMappers setAccessibleObjectStrategy(Consumer<AccessibleObject> makeAccessible)
      Set the strategy Jdbi uses for Java accessibility rules. The legacy default is to call setAccessible(true) in certain cases when we try to use a Constructor, Method, or Field. In the future, this default will be changed to a no-op, to better interact with the Java module system.
      Parameters:
      makeAccessible - A Consumer instance that implements the strategy.
      See Also:
    • disableAccessibleObjectStrategy

      @Alpha public ReflectionMappers disableAccessibleObjectStrategy()
      Set the strategy Jdbi uses for Java accessibility rules to a no-op.
    • makeAccessible

      @Alpha public <T extends AccessibleObject> T makeAccessible(T accessibleObject)
      Use the accessibility strategy to potentially make a reflective operation accessible.
    • createCopy

      public ReflectionMappers createCopy()
      Description copied from interface: JdbiConfig
      Returns a copy of this configuration object. Changes to the copy should not modify the original, and vice-versa.
      Specified by:
      createCopy in interface JdbiConfig<ReflectionMappers>
      Returns:
      a copy of this configuration object.