Package com.valqueries.automapper
Interface SqlDialect
- All Known Implementing Classes:
H2SqlDialect
,MariaSqlDialect
,MssqlSqlDialect
public interface SqlDialect
-
Method Summary
Modifier and TypeMethodDescriptiondefault ColumnToken
Do not use directly.boolean
allowsConversion
(Clazz<?> sqlType, String type) default <T> String
buildSelectSql
(String tableAlias, T type, MappingHelper mappingHelper, TypeDescriber<T> typeDescriber, List<Element> elementList, List<SortElement> sortElementList, Integer limit, int offset, Collection<RelationDescriber> eagers, boolean deferLimits, String... columns) default ColumnToken
default String
default String
describe
(TableToken tablename) default String
describeIndex
(TableToken tablename) default String
dropTableStatement
(Clazz<?> clazz) escapeColumnOrTable
(String name) default String
default String
generateDeleteStatement
(String tableAlias, TableToken table, List<Element> elements, Integer limit) default String
generateDeleteStatement
(String tableAlias, TypeDescriber<?> typeDescriber, List<Element> elements, Integer limit) default <T> String
generateDistinctSelectStatement
(String tableAlias, T target, MappingHelper mappingHelper, TypeDescriber<T> typeDescriber, List<Element> elements, List<SortElement> sortElements, Integer limit, Integer offset, Collection<RelationDescriber> eagers, Property<?> field) generateDropIndexStatement
(TableToken tableName, IndexToken index, boolean isPrimary) generateIndexStatement
(TableToken tablename, KeySet key) generatePrimaryKeyStatement
(TableToken name, KeySet keyset) generateUpdateStatement
(TableToken table, List<Element> elements, List<Property.PropertyValue<?>> newPropertyValues, List<Property.PropertyValue<?>> incrementPropertyValues) default String
generateUpdateStatement
(TypeDescriber<?> typeDescriber, List<Element> elements, List<Property.PropertyValue<?>> newPropertyValues, List<Property.PropertyValue<?>> incrementPropertyValues) default String
<O> String
getCustomUpsert
(CompoundColumnizer<O> columnizer, Class<O> modelType, List<Property.PropertyValue<?>> newValues, List<Property.PropertyValue<?>> incrementValues, List<Property<?>> setObjValues, List<Property<?>> incrementByObjValues) getDescribeDbResult
(OrmResultSet ormResultSet) default <O> String
getInsert
(CompoundColumnizer<O> columnizer, Class<O> oClass) default <O> String
getInsertAutoIncrement
(CompoundColumnizer<O> columnizer, Class<O> oClass, List<Boolean> keyNulls) getLimitDefinition
(int offset, int limit) default String
getSqlType
(Property<?> property) default TableToken
getTableName
(Clazz<?> modelType) default <O> String
getUniqueKeyCheck
(CompoundColumnizer<O> columnizer, Class<O> oClass, KeySet uniqueKeySet, List<String> parameters) Get the SQL statement to check whether a set of unique keys is already present in the database.<O> String
getUpsert
(CompoundColumnizer<O> columnizer, Class<O> oClass) default <O> String
getUpsertAutoIncrement
(CompoundColumnizer<O> columnizer, Class<O> oClass, List<Boolean> keyNulls) default String
groupConcat
(Property<?> resultProperty, String separator) default Object
harmonizeLikeValue
(Object value) Harmonize the value to be used in a LIKE statement.boolean
Check whether an exception was caused by a duplicate value for primary or unique key.default boolean
default String
operator
(BinaryOperator operator) default String
operator
(ListOperator operator) default String
operator
(UnaryOperator operator) default String
prepareColumnOrTable
(String name) default TableToken
-
Method Details
-
escapeColumnOrTable
-
prepareColumnOrTable
-
getTableName
-
column
-
_column
Do not use directly. It is an easy way to introduce a bug becauseDbName
is not respected -
table
-
getSqlType
-
operator
-
operator
-
operator
-
getUpsert
-
getUpsertAutoIncrement
default <O> String getUpsertAutoIncrement(CompoundColumnizer<O> columnizer, Class<O> oClass, List<Boolean> keyNulls) -
getLimitDefinition
-
generateUpdateStatement
String generateUpdateStatement(TableToken table, List<Element> elements, List<Property.PropertyValue<?>> newPropertyValues, List<Property.PropertyValue<?>> incrementPropertyValues) -
generateUpdateStatement
default String generateUpdateStatement(TypeDescriber<?> typeDescriber, List<Element> elements, List<Property.PropertyValue<?>> newPropertyValues, List<Property.PropertyValue<?>> incrementPropertyValues) -
getInsert
-
getInsertAutoIncrement
default <O> String getInsertAutoIncrement(CompoundColumnizer<O> columnizer, Class<O> oClass, List<Boolean> keyNulls) -
generateDeleteStatement
-
generateDeleteStatement
-
getAddColumnStatement
-
generateAlterColumnPartStatement
-
generateIndexStatement
-
generateDropIndexStatement
-
describe
-
describeIndex
-
getDescribeDbResult
-
getDescribeIndexResult
-
generatePrimaryKeyStatement
-
dropTableStatement
-
allowsConversion
-
groupConcat
-
isDuplicateKeyEntry
Check whether an exception was caused by a duplicate value for primary or unique key.- Parameters:
e
- the exception to be tested- Returns:
- whether the exception was caused by a unique constraint violation
-
getUniqueKeyCheck
default <O> String getUniqueKeyCheck(CompoundColumnizer<O> columnizer, Class<O> oClass, KeySet uniqueKeySet, List<String> parameters) Get the SQL statement to check whether a set of unique keys is already present in the database.- Parameters:
columnizer
- the columnizer to be used, containing the values to be checkedoClass
- the class of the objects to be checkeduniqueKeySet
- the set of unique keys to be checked- Returns:
- the SQL statement
-
harmonizeLikeValue
Harmonize the value to be used in a LIKE statement.Some databases (e.g. MSSQL) allow for a broader range of special operations to be performed in a LIKE statement. This method takes in the value to be used in a LIKE statement and returns a value that performs the same operation in the current database.
For example, in MSSQL, the value "a[bc]" would match "a", "ab", or "ac", but in MySQL, it would match "a[bc]". As such the value "a[bc]" would need to be harmonized to "a[[]bc]" when used in a LIKE statement in MSSQL.
- Parameters:
value
- the value to be harmonized- Returns:
- the harmonized value
-
isOrderRequiredForOffset
default boolean isOrderRequiredForOffset() -
defaultOrderStatement
-
getCustomUpsert
<O> String getCustomUpsert(CompoundColumnizer<O> columnizer, Class<O> modelType, List<Property.PropertyValue<?>> newValues, List<Property.PropertyValue<?>> incrementValues, List<Property<?>> setObjValues, List<Property<?>> incrementByObjValues) -
buildSelectSql
default <T> String buildSelectSql(String tableAlias, T type, MappingHelper mappingHelper, TypeDescriber<T> typeDescriber, List<Element> elementList, List<SortElement> sortElementList, Integer limit, int offset, Collection<RelationDescriber> eagers, boolean deferLimits, String... columns) -
generateDistinctSelectStatement
default <T> String generateDistinctSelectStatement(String tableAlias, T target, MappingHelper mappingHelper, TypeDescriber<T> typeDescriber, List<Element> elements, List<SortElement> sortElements, Integer limit, Integer offset, Collection<RelationDescriber> eagers, Property<?> field)
-