Open minkukjo opened 1 year ago
persistence.xml
file. With Spring Boot, this file is not necessary and “Entity Scanning” is used instead.JdbcEnvironmentInitiator
: JdbcEnvironment
(JDBC API 이용할 때 필요한 정보를 담는 interface)를 만들어 냄DialectFactoryImpl
-> DialectResolver
-> Database
방향으로 사용한다. DataBase enum에서 resolveDialect
method를 보면, 각 Relational DB가 어떻게 Dialect를 선택하는지 알 수 있다. Mysql의 경우, 다음과 같다.
MYSQL {
@Override
public Class<? extends Dialect> latestDialect() {
return MySQL8Dialect.class;
}
@Override
public Dialect resolveDialect(DialectResolutionInfo info) {
final String databaseName = info.getDatabaseName();
if ( "MySQL".equals( databaseName ) ) {
final int majorVersion = info.getDatabaseMajorVersion();
final int minorVersion = info.getDatabaseMinorVersion();
if ( majorVersion < 5 ) {
return new MySQLDialect();
}
else if ( majorVersion == 5 ) {
if ( minorVersion < 5 ) {
return new MySQL5Dialect();
}
else if ( minorVersion < 7 ) {
return new MySQL55Dialect();
}
else {
return new MySQL57Dialect();
}
}
else if ( majorVersion < 8 ) {
// There is no MySQL 6 or 7.
// Adding this just in case.
return new MySQL57Dialect();
}
else if ( majorVersion == 8 ) {
return new MySQL8Dialect();
}
return latestDialectInstance( this );
}
return null;
}
느낀 점
궁금한 점