Class ReflectionMappers
java.lang.Object
org.jdbi.v3.core.mapper.reflect.ReflectionMappers
- All Implemented Interfaces:
JdbiConfig<ReflectionMappers>
Configuration class for reflective mappers.
-
Constructor Summary
ConstructorsConstructorDescriptionCreate a default configuration that attempts case insensitive and snake_case matching for names. -
Method Summary
Modifier and TypeMethodDescriptionReturns a copy of this configuration object.Set the strategy Jdbi uses for Java accessibility rules to a no-op.Case change strategy for the database column names.Returns the registered column name mappers.booleanReturns whether strict column name matching is enabled.<T extends AccessibleObject>
TmakeAccessible(T accessibleObject) Use the accessibility strategy to potentially make a reflective operation accessible.setAccessibleObjectStrategy(Consumer<AccessibleObject> makeAccessible) Set the strategy Jdbi uses for Java accessibility rules.setCaseChange(UnaryOperator<String> caseChange) Sets the case change strategy for the database column names.setColumnNameMatchers(List<ColumnNameMatcher> columnNameMatchers) Replace all column name matchers with the given list.setStrictMatching(boolean strictMatching) Throw an IllegalArgumentException if a the set of fields doesn't match to columns exactly.Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface JdbiConfig
setRegistryModifier and TypeMethodDescriptiondefault voidsetRegistry(ConfigRegistry registry) The registry will inject itself into the configuration object.
-
Constructor Details
-
ReflectionMappers
public ReflectionMappers()Create a default configuration that attempts case insensitive and snake_case matching for names.
-
-
Method Details
-
getColumnNameMatchers
Returns the registered column name mappers.- Returns:
- the registered column name mappers.
-
setColumnNameMatchers
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
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
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
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 callsetAccessible(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- AConsumerinstance that implements the strategy.- See Also:
-
disableAccessibleObjectStrategy
Set the strategy Jdbi uses for Java accessibility rules to a no-op. -
makeAccessible
Use the accessibility strategy to potentially make a reflective operation accessible. -
createCopy
Description copied from interface:JdbiConfigReturns a copy of this configuration object. Changes to the copy should not modify the original, and vice-versa.- Specified by:
createCopyin interfaceJdbiConfig<ReflectionMappers>- Returns:
- a copy of this configuration object.
-