문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
java:hibernate:configuration [2016/09/24 15:01] kwon37xi |
java:hibernate:configuration [2020/06/30 14:12] kwon37xi [hibernate.globally_quoted_identifiers=true] |
||
---|---|---|---|
줄 2: | 줄 2: | ||
* http:// | * http:// | ||
* hibernate properties, property | * hibernate properties, property | ||
- | ====== hibernate.hbm2ddl.auto 프라퍼티 | + | ===== hibernate.hbm2ddl.auto 프라퍼티 ===== |
* http:// | * http:// | ||
- | * create : Session factory가 실행될 때에 스키마를 지우고 다시 생성. 클래스패스에 import.sql 이 존재하면 찾아서, 해당 SQL도 함께 실행함. | + | * [[https:// |
- | * create-drop : create와 같지만 session factory가 내려갈 때 스키마 삭제. | + | * '' |
- | * update : 시작시, 도메인과 스키마 비교하여 필요한 컬럼 추가 등의 작업 실행. 데이터는 삭제하지 않음. | + | * '' |
- | * validate : Session factory 실행시 스키마가 적합한지 검사함. 문제가 있으면 예외 발생. | + | * '' |
+ | * '' | ||
+ | * '' | ||
* 개발시에는 create가, 운영시에는 auto 설정을 빼거나 validate 정도로 두는 것이 좋아 보인다. update로 둘 경우에, 개발자들의 스키마가 마구 꼬여서 결국은 drop 해서 새로 만들어야 하는 사태가 발생한다. | * 개발시에는 create가, 운영시에는 auto 설정을 빼거나 validate 정도로 두는 것이 좋아 보인다. update로 둘 경우에, 개발자들의 스키마가 마구 꼬여서 결국은 drop 해서 새로 만들어야 하는 사태가 발생한다. | ||
- | ====== hibernate.use_sql_comments 프라퍼티 | + | ===== hibernate.use_sql_comments 프라퍼티 ===== |
* Native SQL 쿼리로 변환할 때 쿼리에 대한 주석을 함께 달아준다. | * Native SQL 쿼리로 변환할 때 쿼리에 대한 주석을 함께 달아준다. | ||
- | ====== hibernate.jdbc.time_zone | + | ===== hibernate.jdbc.time_zone ===== |
* [[http:// | * [[http:// | ||
+ | * Hibernate 5.2.3 부터 Timestamp, Calendar 저장시 원하는 Timezone 으로 저장하도록 할 수 있다. | ||
+ | <code java> | ||
+ | settings.put( | ||
+ | AvailableSettings.JDBC_TIME_ZONE, | ||
+ | TimeZone.getTimeZone( " | ||
+ | ); | ||
+ | |||
+ | // or | ||
+ | Session session = sessionFactory() | ||
+ | .withOptions() | ||
+ | .jdbcTimeZone( TimeZone.getTimeZone( " | ||
+ | .openSession(); | ||
+ | </ | ||
+ | |||
+ | ===== hibernate.temp.use_jdbc_metadata_defaults ===== | ||
+ | * DB Sharding 처리를 Spring 차원에서 하고자할 때 '' | ||
+ | * [[http:// | ||
+ | * Hibernate 4 '' | ||
+ | // ' | ||
+ | // The need for it is intended to be alleviated with future development, | ||
+ | // 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.enable_lazy_load_no_trans=true 금지 ===== | ||
+ | * '' | ||
+ | * [[https:// | ||
+ | |||
+ | ===== hibernate.globally_quoted_identifiers=true ===== | ||
+ | < | ||
+ | hibernate.globally_quoted_identifiers=true | ||
+ | hibernate.globally_quoted_identifiers_skip_column_definitions=true | ||
+ | </ | ||
+ | |||
+ | * column, table 이름 등이 DB의 keyword 와 충돌할 때 대비하여 기본적으로 quote 시켜준다. DB별로 다른 quote 사용. | ||
+ | * 단, '' | ||
+ | * [[https:// | ||
+ | |||
+ | ===== hibernate.query.in_clause_parameter_padding ===== | ||
+ | ===== hibernate.query.plan_cache_max_size ===== | ||
+ | * [[java: | ||
+ |