Привет, Хабр! Представляю вашему вниманию перевод статьи "Different Hibernate Naming Strategy" автора Dhiraj Ray.
В этой статье обсуждаются различные стратегии именования, предоставляемые hibernate, а также переход стратегии именования от hibernate.ejb.naming_strategy в hibernate 4 до hibernate.implicit_naming_strategy и hibernate.physical_naming_strategy в hibernate 5. А в конце мы будем изучать реализацию пользовательской стратегии именования и конфигурацию для запуска с помощью Spring Boot.
Hibernate использует эту стратегию для сопоставления сущности и атрибута java с соответствующим именем реляционной базы данных и столбцов. В hibernate 4 использовалась стратегия именования hibernate.ejb.naming_strategy. Эта стратегия использует EJB3NamingStrategy, ImprovedNamingStrategy, DefaultComponentSafeNamingStrategy и DefaultNamingStrategy для сопоставления имен. EJB3NamingStrategy — используемая по умолчанию стратегия наименования, и она предоставляет имена полей и таблиц в стиле camelCase. В то время как именование столбца внешнего ключа использует нижнее подчеркивание (_) как разделение. Например, если у вас есть таблица с именем и таблица1 с именами столбцов id и name, то во второй таблице столбец внешнего ключа будет создан как table1_id, таким образом EJB3NamingStrategy реализует интерфейс NamingStrategy.
В этой статье обсуждаются различные стратегии именования, предоставляемые hibernate, а также переход стратегии именования от hibernate.ejb.naming_strategy в hibernate 4 до hibernate.implicit_naming_strategy и hibernate.physical_naming_strategy в hibernate 5. А в конце мы будем изучать реализацию пользовательской стратегии именования и конфигурацию для запуска с помощью Spring Boot.
Стратегия именования Hibernate 4
Hibernate использует эту стратегию для сопоставления сущности и атрибута java с соответствующим именем реляционной базы данных и столбцов. В hibernate 4 использовалась стратегия именования hibernate.ejb.naming_strategy. Эта стратегия использует EJB3NamingStrategy, ImprovedNamingStrategy, DefaultComponentSafeNamingStrategy и DefaultNamingStrategy для сопоставления имен. EJB3NamingStrategy — используемая по умолчанию стратегия наименования, и она предоставляет имена полей и таблиц в стиле camelCase. В то время как именование столбца внешнего ключа использует нижнее подчеркивание (_) как разделение. Например, если у вас есть таблица с именем и таблица1 с именами столбцов id и name, то во второй таблице столбец внешнего ключа будет создан как table1_id, таким образом EJB3NamingStrategy реализует интерфейс NamingStrategy.