반응형
나는 최대 절전 모드 (버전 5.1) 명명 전략에 약간 혼란스러워합니다. 즉, 테이블 이름이 변경되므로이를 피하고 싶습니다. 또한- spring.jpa.hibernate.naming_strategy
는 intelij에 따라 더 이상 사용되지 않는 것처럼 보이지만 올바르게 구성하는 (다른) 방법을 찾을 수 없습니다.
application.properties에 다음 구성이 있습니다.
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.jpa.properties.hibernate.current_session_context_class=thread
첫 번째는 말했듯이 사용되지 않음으로 표시됩니다.
이제 엔티티가 있습니다.
@Entity
@Table(name = "usaUploadTable", schema = "usertable201", catalog = "")
public class UsaUploadTable {
....
}
테이블 이름은 @Table (name = "")
usaUploadTable과 같습니다.
이제 애플리케이션을 실행하면
테이블 'usertable201.usa_upload_table'이 존재하지 않습니다.
맞습니다-최대 절전 모드가 변경하는 것과 같은 이름이 아닙니다.
최대 절전 모드에서 내 테이블 이름을 올바르게 사용하려면 어떻게해야합니까?
편집하다:
나는 또한 시도했다
DefaultNamingStrategy
ImprovedNamingStrategy
그들 모두가 그것을 바꿔
버전 :
spring-boot-1.4.0.RELEASE
hibernate 5.1
javax-transaction-api 1.2
hibernate-validator 5.2.4
javassist 3.20
해결 방법
package com.foo;
import org.hibernate.boot.model.naming.Identifier;
import org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl;
import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
import java.io.Serializable;
import java.util.Locale;
public class RealNamingStrategyImpl extends org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy implements Serializable {
public static final PhysicalNamingStrategyImpl INSTANCE = new PhysicalNamingStrategyImpl();
@Override
public Identifier toPhysicalTableName(Identifier name, JdbcEnvironment context) {
return new Identifier(name.getText(), name.isQuoted());
}
@Override
public Identifier toPhysicalColumnName(Identifier name, JdbcEnvironment context) {
return new Identifier(name.getText(), name.isQuoted());
}
}
그리고 application.properties
에서 사용되지 않는 줄을 다음과 같이 변경했습니다.
spring.jpa.properties.hibernate.physical_naming_strategy=<package>.RealNamingStrategyImpl
이제 엔터티 파일에있는 그대로 테이블 및 열 이름을 사용합니다.
참조 페이지 https://stackoverflow.com/questions/39162976
반응형
'MySql' 카테고리의 다른 글
MySQL 이벤트 스케줄러 상태 확인 방법 mysql (0) | 2020.11.02 |
---|---|
MySQL 테이블에 값을 삽입 할 때이 MySQL 쿼리에서 "오류 1136"이 발생하는 이유 (0) | 2020.11.02 |
MySQL 한 mysql 데이터베이스에서 다른 mysql 데이터베이스로 테이블을 복사하는 방법 (0) | 2020.11.02 |
MySQL 대소 문자를 구분하지 않는 선택 (0) | 2020.11.02 |
MySQL 부트 스트랩 양식을 데이터베이스에 연결하는 방법 (0) | 2020.11.02 |
댓글