Class AbstractNamingConvention
- java.lang.Object
-
- io.ebean.config.AbstractNamingConvention
-
- All Implemented Interfaces:
NamingConvention
- Direct Known Subclasses:
MatchingNamingConvention
,UnderscoreNamingConvention
public abstract class AbstractNamingConvention extends Object implements NamingConvention
Provides some base implementation for NamingConventions.- Author:
- emcgreal
-
-
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_SEQ_FORMAT
The Constant DEFAULT_SEQ_FORMAT.
-
Constructor Summary
Constructors Constructor Description AbstractNamingConvention()
Construct with the default sequence format ("{table}_seq") and useForeignKeyPrefix as true.AbstractNamingConvention(String sequenceFormat)
Construct with a sequence format.AbstractNamingConvention(String sequenceFormat, boolean useForeignKeyPrefix)
Construct with a sequence format and useForeignKeyPrefix setting.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
deriveM2MColumn(String tableName, String dbColumn)
Derive a DB Column from a FK table and column.String
getCatalog()
Return the catalog.TableName
getM2MJoinTableName(TableName lhsTable, TableName rhsTable)
Returns the ManyToMany join table name (aka the intersection table).String
getSchema()
Return the schema.String
getSequenceFormat()
Returns the sequence format.String
getSequenceName(String rawTableName, 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 entity bean.String
getTableName(String catalog, String schema, String name)
Return the full table name taking into account quoted identifiers.boolean
isUseForeignKeyPrefix()
Return true if a prefix should be used building a foreign key name.void
loadFromProperties(PropertiesWrapper properties)
Load settings from properties.void
setCatalog(String catalog)
Sets the catalog.void
setDatabasePlatform(DatabasePlatform databasePlatform)
Set the associated DatabasePlaform.void
setSchema(String schema)
Sets the schema.void
setSequenceFormat(String sequenceFormat)
Set the sequence format used to generate the sequence name.void
setUseForeignKeyPrefix(boolean useForeignKeyPrefix)
Set this to false when the primary key columns matching your foreign key columns.-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.ebean.config.NamingConvention
getColumnFromProperty, getForeignKey
-
-
-
-
Field Detail
-
DEFAULT_SEQ_FORMAT
public static final String DEFAULT_SEQ_FORMAT
The Constant DEFAULT_SEQ_FORMAT.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AbstractNamingConvention
public AbstractNamingConvention(String sequenceFormat, boolean useForeignKeyPrefix)
Construct with a sequence format and useForeignKeyPrefix setting.
-
AbstractNamingConvention
public AbstractNamingConvention(String sequenceFormat)
Construct with a sequence format.- Parameters:
sequenceFormat
- the sequence format
-
AbstractNamingConvention
public AbstractNamingConvention()
Construct with the default sequence format ("{table}_seq") and useForeignKeyPrefix as true.
-
-
Method Detail
-
setDatabasePlatform
public void setDatabasePlatform(DatabasePlatform databasePlatform)
Description copied from interface:NamingConvention
Set the associated DatabasePlaform.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.
- Specified by:
setDatabasePlatform
in interfaceNamingConvention
- Parameters:
databasePlatform
- the database platform
-
getSequenceName
public String getSequenceName(String rawTableName, String pkColumn)
Description copied from interface:NamingConvention
Return the sequence name given the table name (for DB's that use sequences).Typically you might append "_seq" to the table name as an example.
- Specified by:
getSequenceName
in interfaceNamingConvention
- Parameters:
rawTableName
- the table name- Returns:
- the sequence name
-
getCatalog
public String getCatalog()
Return the catalog.
-
setCatalog
public void setCatalog(String catalog)
Sets the catalog.
-
getSequenceFormat
public String getSequenceFormat()
Returns the sequence format.
-
setSequenceFormat
public void setSequenceFormat(String sequenceFormat)
Set the sequence format used to generate the sequence name.The format should include "{table}". When generating the sequence name {table} is replaced with the actual table name.
- Parameters:
sequenceFormat
- string containing "{table}" which is replaced with the actual table name to generate the sequence name.
-
isUseForeignKeyPrefix
public boolean isUseForeignKeyPrefix()
Return true if a prefix should be used building a foreign key name.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.
- Specified by:
isUseForeignKeyPrefix
in interfaceNamingConvention
-
setUseForeignKeyPrefix
public void setUseForeignKeyPrefix(boolean useForeignKeyPrefix)
Set this to false when the primary key columns matching your foreign key columns.
-
getTableName
public TableName getTableName(Class<?> beanClass)
Returns the table name for a given entity bean.This first checks for the @Table annotation and if not present uses the naming convention to define the table name.
- Specified by:
getTableName
in interfaceNamingConvention
- Parameters:
beanClass
- the bean class- Returns:
- the table name for the entity class
- See Also:
getTableNameFromAnnotation(Class)
,getTableNameByConvention(Class)
-
getM2MJoinTableName
public TableName getM2MJoinTableName(TableName lhsTable, TableName rhsTable)
Description copied from interface:NamingConvention
Returns the ManyToMany join table name (aka the intersection table).- Specified by:
getM2MJoinTableName
in interfaceNamingConvention
- Parameters:
lhsTable
- the left hand side bean tablerhsTable
- the right hand side bean table- Returns:
- the many to many join table name
-
deriveM2MColumn
public String deriveM2MColumn(String tableName, String dbColumn)
Description copied from interface:NamingConvention
Derive a DB Column from a FK table and column.- Specified by:
deriveM2MColumn
in interfaceNamingConvention
-
getTableName
public String getTableName(String catalog, String schema, String name)
Description copied from interface:NamingConvention
Return the full table name taking into account quoted identifiers.- Specified by:
getTableName
in interfaceNamingConvention
-
loadFromProperties
public void loadFromProperties(PropertiesWrapper properties)
Load settings from properties.- Specified by:
loadFromProperties
in interfaceNamingConvention
-
-