Package org.jdbi.v3.core.mapper.reflect
Class ReflectionMappers
java.lang.Object
org.jdbi.v3.core.mapper.reflect.ReflectionMappers
- All Implemented Interfaces:
JdbiConfig<ReflectionMappers>
Configuration class for reflective mappers.
-
Constructor Summary
ConstructorDescriptionCreate 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.boolean
Returns 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 java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.jdbi.v3.core.config.JdbiConfig
setRegistry
-
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
- AConsumer
instance 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:JdbiConfig
Returns a copy of this configuration object. Changes to the copy should not modify the original, and vice-versa.- Specified by:
createCopy
in interfaceJdbiConfig<ReflectionMappers>
- Returns:
- a copy of this configuration object.
-