Имя класса Entity преобразуется в имя таблицы SQL с символами подчеркивания
У меня определено следующее сущность:
@Entity
@Table(name = "EmailTemplate")
public class EmailTemplate {
Несмотря на аннотацию таблицы, я получаю java.sql.SQLException: недопустимое имя объекта 'email_template'. Как я могу предотвратить преобразование класса сущности, такого как EmailTemplate, в имя таблицы email_template?
Edit:
Я использую Spring Boot: запустите JPA. Из файла build.gradle,
compile("org.springframework.boot:spring-boot-starter-data-jpa")
Ответы
Ответ 1
Spring по умолчанию использует org.springframework.boot.orm.jpa.SpringNamingStrategy
, который разделяет имена случаев верблюда с подчеркиванием. Попробуйте установить spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.EJB3NamingStrategy
в application.properties
. Ознакомьтесь с этим и для получения дополнительной информации.
Ответ 2
Для hibernate v5:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
Ответ 3
Использование
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.DefaultNamingStrategy