Class ImprovedNamingStrategy

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static NamingStrategy INSTANCE
      A convenient singleton instance
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected static java.lang.String addUnderscores​(java.lang.String name)  
      java.lang.String classToTableName​(java.lang.String className)
      Return the unqualified class name, mixed case converted to underscores
      java.lang.String collectionTableName​(java.lang.String ownerEntity, java.lang.String ownerEntityTable, java.lang.String associatedEntity, java.lang.String associatedEntityTable, java.lang.String propertyName)
      Return a collection table name ie an association having a join table
      java.lang.String columnName​(java.lang.String columnName)
      Convert mixed case to underscores
      java.lang.String foreignKeyColumnName​(java.lang.String propertyName, java.lang.String propertyEntityName, java.lang.String propertyTableName, java.lang.String referencedColumnName)
      Return the property name or propertyTableName
      java.lang.String joinKeyColumnName​(java.lang.String joinedColumn, java.lang.String joinedTable)
      Return the argument
      java.lang.String logicalCollectionColumnName​(java.lang.String columnName, java.lang.String propertyName, java.lang.String referencedColumn)
      Return the column name if explicit or the concatenation of the property name and the referenced column
      java.lang.String logicalCollectionTableName​(java.lang.String tableName, java.lang.String ownerEntityTable, java.lang.String associatedEntityTable, java.lang.String propertyName)
      Returns either the table name if explicit or if there is an associated table, the concatenation of owner entity table and associated table otherwise the concatenation of owner entity table and the unqualified property name
      java.lang.String logicalColumnName​(java.lang.String columnName, java.lang.String propertyName)
      Return the column name or the unqualified property name
      java.lang.String propertyToColumnName​(java.lang.String propertyName)
      Return the full property path with underscore separators, mixed case converted to underscores
      java.lang.String tableName​(java.lang.String tableName)
      Convert mixed case to underscores
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • INSTANCE

        public static final NamingStrategy INSTANCE
        A convenient singleton instance
    • Constructor Detail

      • ImprovedNamingStrategy

        public ImprovedNamingStrategy()
    • Method Detail

      • classToTableName

        public java.lang.String classToTableName​(java.lang.String className)
        Return the unqualified class name, mixed case converted to underscores
        Specified by:
        classToTableName in interface NamingStrategy
        Parameters:
        className - the fully-qualified class name
        Returns:
        a table name
      • propertyToColumnName

        public java.lang.String propertyToColumnName​(java.lang.String propertyName)
        Return the full property path with underscore separators, mixed case converted to underscores
        Specified by:
        propertyToColumnName in interface NamingStrategy
        Parameters:
        propertyName - a property path
        Returns:
        a column name
      • tableName

        public java.lang.String tableName​(java.lang.String tableName)
        Convert mixed case to underscores
        Specified by:
        tableName in interface NamingStrategy
        Parameters:
        tableName - a table name
        Returns:
        a table name
      • columnName

        public java.lang.String columnName​(java.lang.String columnName)
        Convert mixed case to underscores
        Specified by:
        columnName in interface NamingStrategy
        Parameters:
        columnName - a column name
        Returns:
        a column name
      • addUnderscores

        protected static java.lang.String addUnderscores​(java.lang.String name)
      • collectionTableName

        public java.lang.String collectionTableName​(java.lang.String ownerEntity,
                                                    java.lang.String ownerEntityTable,
                                                    java.lang.String associatedEntity,
                                                    java.lang.String associatedEntityTable,
                                                    java.lang.String propertyName)
        Description copied from interface: NamingStrategy
        Return a collection table name ie an association having a join table
        Specified by:
        collectionTableName in interface NamingStrategy
        ownerEntityTable - owner side table name
        associatedEntityTable - reverse side table name if any
        propertyName - collection role
      • joinKeyColumnName

        public java.lang.String joinKeyColumnName​(java.lang.String joinedColumn,
                                                  java.lang.String joinedTable)
        Return the argument
        Specified by:
        joinKeyColumnName in interface NamingStrategy
        Parameters:
        joinedColumn - joined column name (logical one) used to join with
        joinedTable - joined table name (ie the referenced table) used to join with
      • foreignKeyColumnName

        public java.lang.String foreignKeyColumnName​(java.lang.String propertyName,
                                                     java.lang.String propertyEntityName,
                                                     java.lang.String propertyTableName,
                                                     java.lang.String referencedColumnName)
        Return the property name or propertyTableName
        Specified by:
        foreignKeyColumnName in interface NamingStrategy
        Parameters:
        propertyName - the property name involved
        propertyTableName - the property table name involved (logical one)
        referencedColumnName - the referenced column name involved (logical one)
      • logicalColumnName

        public java.lang.String logicalColumnName​(java.lang.String columnName,
                                                  java.lang.String propertyName)
        Return the column name or the unqualified property name
        Specified by:
        logicalColumnName in interface NamingStrategy
        Parameters:
        columnName - given column name if any
        propertyName - property name of this column
      • logicalCollectionTableName

        public java.lang.String logicalCollectionTableName​(java.lang.String tableName,
                                                           java.lang.String ownerEntityTable,
                                                           java.lang.String associatedEntityTable,
                                                           java.lang.String propertyName)
        Returns either the table name if explicit or if there is an associated table, the concatenation of owner entity table and associated table otherwise the concatenation of owner entity table and the unqualified property name
        Specified by:
        logicalCollectionTableName in interface NamingStrategy
        Parameters:
        tableName - the metadata explicit name
        ownerEntityTable - owner table entity table name (logical one)
        associatedEntityTable - reverse side table name if any (logical one)
        propertyName - collection role
      • logicalCollectionColumnName

        public java.lang.String logicalCollectionColumnName​(java.lang.String columnName,
                                                            java.lang.String propertyName,
                                                            java.lang.String referencedColumn)
        Return the column name if explicit or the concatenation of the property name and the referenced column
        Specified by:
        logicalCollectionColumnName in interface NamingStrategy
        Parameters:
        columnName - given column name in the metadata if any
        propertyName - property name
        referencedColumn - referenced column name (logical one) in the join