public interface NamingConvention
The main goal of the naming convention is to reduce the amount of configuration required in the mapping (especially when mapping between column and property names).
Note that if you do not define a NamingConvention the default one will be used and you can configure it's behaviour via properties.
Modifier and Type | Method and Description |
---|---|
String |
getColumnFromProperty(Class<?> beanClass,
String propertyName)
Return the column name given the property name.
|
String |
getForeignKey(String prefix,
String fkProperty)
Return the foreign key column given the local and foreign properties.
|
TableName |
getM2MJoinTableName(TableName lhsTable,
TableName rhsTable)
Returns the ManyToMany join table name (aka the intersection table).
|
String |
getPropertyFromColumn(Class<?> beanClass,
String dbColumnName)
Return the property name from the column name.
|
String |
getSequenceName(String tableName,
String pkColumn)
Return the sequence name given the table name (for DB's that use sequences).
|
TableName |
getTableName(Class<?> beanClass)
Returns the table name for a given Class.
|
boolean |
isUseForeignKeyPrefix()
Return true if a prefix should be used building a foreign key name.
|
void |
loadFromProperties(PropertiesWrapper properties)
Load setting from properties.
|
void |
setDatabasePlatform(DatabasePlatform databasePlatform)
Set the associated DatabasePlaform.
|
void setDatabasePlatform(DatabasePlatform databasePlatform)
This is set after the DatabasePlatform has been associated.
The purpose of this is to enable NamingConvention to be able to support database platform specific configuration.
databasePlatform
- the database platformTableName getTableName(Class<?> beanClass)
This method is always called and should take into account @Table annotations etc. This means you can choose to override the settings defined by @Table if you wish.
beanClass
- the bean classTableName getM2MJoinTableName(TableName lhsTable, TableName rhsTable)
lhsTable
- the left hand side bean tablerhsTable
- the right hand side bean tableString getColumnFromProperty(Class<?> beanClass, String propertyName)
String getPropertyFromColumn(Class<?> beanClass, String dbColumnName)
This is used to help mapping of raw SQL queries onto bean properties.
beanClass
- the bean classdbColumnName
- the db column nameString getSequenceName(String tableName, String pkColumn)
Typically you might append "_seq" to the table name as an example.
tableName
- the table nameboolean isUseForeignKeyPrefix()
This by default is true and this works well when the primary key column names are simply "id". In this case a prefix (such as "order" and "customer" etc) is added to the foreign key column producing "order_id" and "customer_id".
This should return false when your primary key columns are the same as the foreign key columns. For example, when the primary key columns are "order_id", "cust_id" etc ... and they are the same as the foreign key column names.
String getForeignKey(String prefix, String fkProperty)
prefix
- the local column used to prefix the fk columnfkProperty
- the property name of the foreign keyvoid loadFromProperties(PropertiesWrapper properties)
Copyright © 2019. All rights reserved.