com.vladmihalcea.hibernate.naming
Class CamelCaseToSnakeCaseNamingStrategy

java.lang.Object
  extended by org.hibernate.cfg.DefaultNamingStrategy
      extended by com.vladmihalcea.hibernate.naming.CamelCaseToSnakeCaseNamingStrategy
All Implemented Interfaces:
Serializable, org.hibernate.cfg.NamingStrategy
Direct Known Subclasses:
CamelCaseToSnakeCaseNamingStrategy

public class CamelCaseToSnakeCaseNamingStrategy
extends org.hibernate.cfg.DefaultNamingStrategy

Maps the JPA camelCase properties to snake_case database identifiers.

For more details about how to use it, check out this article on vladmihalcea.com.

Author:
Vlad Mihalcea
See Also:
Serialized Form

Field Summary
static String CAMEL_CASE_REGEX
           
static CamelCaseToSnakeCaseNamingStrategy INSTANCE
           
static String SNAKE_CASE_PATTERN
           
 
Constructor Summary
CamelCaseToSnakeCaseNamingStrategy()
          Initialization constructor taking the default Configuration object.
CamelCaseToSnakeCaseNamingStrategy(Configuration configuration)
          Initialization constructor taking the Class and Configuration objects.
 
Method Summary
 String classToTableName(String className)
           
 String collectionTableName(String ownerEntity, String ownerEntityTable, String associatedEntity, String associatedEntityTable, String propertyName)
           
 String foreignKeyColumnName(String propertyName, String propertyEntityName, String propertyTableName, String referencedColumnName)
           
 String joinKeyColumnName(String joinedColumn, String joinedTable)
           
 String propertyToColumnName(String propertyName)
           
 
Methods inherited from class org.hibernate.cfg.DefaultNamingStrategy
columnName, logicalCollectionColumnName, logicalCollectionTableName, logicalColumnName, tableName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INSTANCE

public static final CamelCaseToSnakeCaseNamingStrategy INSTANCE

CAMEL_CASE_REGEX

public static final String CAMEL_CASE_REGEX
See Also:
Constant Field Values

SNAKE_CASE_PATTERN

public static final String SNAKE_CASE_PATTERN
See Also:
Constant Field Values
Constructor Detail

CamelCaseToSnakeCaseNamingStrategy

public CamelCaseToSnakeCaseNamingStrategy()
Initialization constructor taking the default Configuration object.


CamelCaseToSnakeCaseNamingStrategy

public CamelCaseToSnakeCaseNamingStrategy(Configuration configuration)
Initialization constructor taking the Class and Configuration objects.

Parameters:
configuration - custom Configuration object.
Method Detail

classToTableName

public String classToTableName(String className)
Specified by:
classToTableName in interface org.hibernate.cfg.NamingStrategy
Overrides:
classToTableName in class org.hibernate.cfg.DefaultNamingStrategy

propertyToColumnName

public String propertyToColumnName(String propertyName)
Specified by:
propertyToColumnName in interface org.hibernate.cfg.NamingStrategy
Overrides:
propertyToColumnName in class org.hibernate.cfg.DefaultNamingStrategy

collectionTableName

public String collectionTableName(String ownerEntity,
                                  String ownerEntityTable,
                                  String associatedEntity,
                                  String associatedEntityTable,
                                  String propertyName)
Specified by:
collectionTableName in interface org.hibernate.cfg.NamingStrategy
Overrides:
collectionTableName in class org.hibernate.cfg.DefaultNamingStrategy

joinKeyColumnName

public String joinKeyColumnName(String joinedColumn,
                                String joinedTable)
Specified by:
joinKeyColumnName in interface org.hibernate.cfg.NamingStrategy
Overrides:
joinKeyColumnName in class org.hibernate.cfg.DefaultNamingStrategy

foreignKeyColumnName

public String foreignKeyColumnName(String propertyName,
                                   String propertyEntityName,
                                   String propertyTableName,
                                   String referencedColumnName)
Specified by:
foreignKeyColumnName in interface org.hibernate.cfg.NamingStrategy
Overrides:
foreignKeyColumnName in class org.hibernate.cfg.DefaultNamingStrategy


Copyright © 2022. All rights reserved.