문서의 이전 판입니다!
create-only
: 생성만하고, drop은 하지 않는다. 개발 모드에서 최초에 한 번 이걸로 실행하고, 다음에는 update
로 변경하면 될 듯. Hibernate 5.2 이상에서만 지원하는 것으로 보임.create
: Session factory가 실행될 때에 스키마를 지우고 다시 생성. 클래스패스에 import.sql 이 존재하면 찾아서, 해당 SQL도 함께 실행함.create-drop
: create와 같지만 session factory가 내려갈 때 스키마 삭제. 클래스패스에 import.sql 이 존재하면 찾아서, 해당 SQL도 함께 실행함.update
: 시작시, 도메인과 스키마 비교하여 필요한 컬럼 추가 등의 작업 실행. 데이터는 삭제하지 않음.validate
: Session factory 실행시 스키마가 적합한지 검사함. 문제가 있으면 예외 발생.settings.put( AvailableSettings.JDBC_TIME_ZONE, TimeZone.getTimeZone( "UTC" ) ); // or Session session = sessionFactory() .withOptions() .jdbcTimeZone( TimeZone.getTimeZone( "UTC" ) ) .openSession();
hibernate.temp.use_jdbc_metadata_defaults=false
로 두어야 한다.JdbcServicesImpl.java
주석.// 'hibernate.temp.use_jdbc_metadata_defaults' is a temporary magic value. // The need for it is intended to be alleviated with future development, thus it is // not defined as an Environment constant... // // it is used to control whether we should consult the JDBC metadata to determine // certain Settings default values; it is useful to *not* do this when the database // may not be available (mainly in tools usage). boolean useJdbcMetadata = ConfigurationHelper.getBoolean( "hibernate.temp.use_jdbc_metadata_defaults", configValues, true );
hibernate.enable_lazy_load_no_trans=true|false
사용하지 말 것. Open Session In View와 비슷한 역할.