Created
December 21, 2018 07:04
-
-
Save pangda0xff/e6bc634c68e8eed89651a686dc95f109 to your computer and use it in GitHub Desktop.
Hibernate camel to underscore
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.keruyun.ca.monitor.utils; | |
import org.hibernate.boot.model.naming.Identifier; | |
import org.hibernate.boot.model.naming.PhysicalNamingStrategy; | |
import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; | |
public class CustomPhysicalNamingStrategy implements PhysicalNamingStrategy { | |
@Override | |
public Identifier toPhysicalCatalogName(final Identifier identifier, final JdbcEnvironment jdbcEnv) { | |
if(identifier == null) { | |
return jdbcEnv.getCurrentCatalog(); | |
} else { | |
return convertToSnakeCase(identifier); | |
} | |
} | |
@Override | |
public Identifier toPhysicalColumnName(final Identifier identifier, final JdbcEnvironment jdbcEnv) { | |
return convertToSnakeCase(identifier); | |
} | |
@Override | |
public Identifier toPhysicalSchemaName(final Identifier identifier, final JdbcEnvironment jdbcEnv) { | |
return convertToSnakeCase(identifier); | |
} | |
@Override | |
public Identifier toPhysicalSequenceName(final Identifier identifier, final JdbcEnvironment jdbcEnv) { | |
return convertToSnakeCase(identifier); | |
} | |
@Override | |
public Identifier toPhysicalTableName(final Identifier identifier, final JdbcEnvironment jdbcEnv) { | |
return convertToSnakeCase(identifier); | |
} | |
private Identifier convertToSnakeCase(final Identifier identifier) { | |
final String regex = "([a-z])([A-Z])"; | |
final String replacement = "$1_$2"; | |
final String newName = identifier.getText() | |
.replaceAll(regex, replacement) | |
.toLowerCase(); | |
return Identifier.toIdentifier(newName); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment