14 Kasım 2018 Çarşamba

SpringBoot spring.jpa Hibernate'e Özel Ayarlar

Giriş
Hibernate'e Özel Ayarlar spring.jpa.properties.XXX şeklindedir.

cache Alanı

connection Alanı
auto-commit false olsun diye şöyle yaparız
spring.datasource.hikari.auto-commit=false
spring.jpa.properties.hibernate
  .connection.provider_disables_autocommit=true
current_session_context_class Alanı
Spring ile kullanmak için bu değerin hep org.springframework.orm.hibernate5.SpringSessionContext olması gerekir
Şöyle yaparız.
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.properties.hibernate.current_session_context_class=
  org.springframework.orm.hibernate5.SpringSessionContext
default_schema Alanı
Örnek
Şöyle yaparız
spring.jpa.properties.hibernate.default_schema=myschema
dialect Alanı
MySQL
org.hibernate.dialect.MySQL8Dialect
org.hibernate.dialect.MySQL5Dialect
org.hibernate.dialect.MySQL5InnoDBDialect
olabilir
Örnek
Şöyle yaparız.
# Show or not log for each sql query
spring.jpa.show-sql = true

# Hibernate ddl auto (create, create-drop, update)
spring.jpa.hibernate.ddl-auto = update

# Naming strategy
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy

# Use spring.jpa.properties.* for Hibernate native properties (the prefix is
# stripped before adding them to the entity manager)

# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
Örnek
Şöyle yaparız.
spring.jpa.database=MYSQL
spring.jpa.hibernate.ddl-auto = update
spring.jpa.show-sql=false
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
Örnek
Şöyle yaparız.
# The SQL dialect makes Hibernate generate better SQL for the chosen database
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
PostgreSQL
Şöyle yaparız
spring.datasource.url=jdbc:postgresql://...
spring.datasource.username=...
spring.datasource.password= ...
spring.datasource.driver-class= ...

spring.jpa-show-sql=false
spring.jpa.properties.hibernate.temp_use_jdbc_metadata_defaults=false
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.PostgreSQLDialect
format-sql Alanı
Şöyle yaparız.
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLDialect
spring.jpa.properties.hibernate.id.new_generator_mappings = true
spring.jpa.properties.hibernate.format_sql = true

hbm2ddl.auto Alanı

jdbc.batch_size Alanı
SpringBoot spring.jpa Hibernate'e Özel Ayarlar - Batch Ayarları yazısına taşıdım

jdbc.time_zone Alanı
Veri tabanına yazılan ve veri tabanından okunan tarih ve saatin UTC olmasını sağlar.
Örnek
Şöyle yaparız
spring.jpa.properties.hibernate.jdbc.time_zone=UTC
metadata_builder_contributor Alanı
Kendi tanımladığımı MetadataBuilderContributor nesnesini tanıtır. Böylece veri tabanına özel fonksiyonları da Repository ile kullanabiliriz.
Örnek
Şöyle yaparız
spring.jpa.properties.hibernate.metadata_builder_contributor= com.abhicodes.customdialect.util.SQLFunctionContributor
naming.physical-strategy Alanı
Hibernate Naming Strategies yazısına taşıdım

naming-strategy Alanı
Şöyle yaparız
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
order_inserts Alanı

order_updates Alanı

temp.use_jdbc_metadata_default

false yapabiliriz.

use-new-id-generator-mapping
Örnek
Şöyle yaparız
server.port=4767 spring.datasource.url=jdbc:mysql://localhost:3307/blog?serverTimezone=UTC&useSSL=false spring.datasource.username=root spring.datasource.password=secretpswd ## Hibernate properties spring.jpa.hibernate.use-new-id-generator-mappings=false spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=false spring.jpa.open-in-view=false


Hiç yorum yok:

Yorum Gönder