<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://kwonnam.pe.kr/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://kwonnam.pe.kr/wiki/feed.php">
        <title>권남 java:hibernate</title>
        <description></description>
        <link>https://kwonnam.pe.kr/wiki/</link>
        <image rdf:resource="https://kwonnam.pe.kr/wiki/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-05-13T17:35:18+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/%EC%9E%90%EB%8F%99%EC%83%9D%EC%84%B1?rev=1633611937&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/4?rev=1436146037&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/5?rev=1546402862&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/6?rev=1677133452&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/7?rev=1747794220&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/annotations?rev=1642617729&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/batch?rev=1668348826&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/cache?rev=1536816533&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/configuration?rev=1688363610&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/dialect?rev=1597985715&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/dirty_checking?rev=1668753425&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/envers?rev=1619682783&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/equalsandhashcode?rev=1582101874&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/generated?rev=1633611631&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/genericdao?rev=1377671430&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/gotchas?rev=1688363661&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/gradle_plugin?rev=1669391103&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/hibernate_flightrecorder?rev=1718149178&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/hql?rev=1537172627&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/id_generator?rev=1686272536&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/interceptor?rev=1652686658&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/lazy_to_one?rev=1603372259&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/log?rev=1703385499&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/mssqlserver?rev=1536554662&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/multitenant?rev=1436417124&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/naturalid?rev=1714458926&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/performance?rev=1709524053&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/reactive?rev=1635428830&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/soft_delete?rev=1512049901&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/spatial?rev=1547713375&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/statistics?rev=1512049574&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/test?rev=1474699289&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/tsid?rev=1676590940&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/types?rev=1594698198&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/usertype?rev=1540344363&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/valuegenerationtype?rev=1633611854&amp;do=diff"/>
                <rdf:li rdf:resource="https://kwonnam.pe.kr/wiki/java/hibernate/valuegenerator?rev=1633610911&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://kwonnam.pe.kr/wiki/lib/tpl/dokuwiki/images/favicon.ico">
        <title>권남</title>
        <link>https://kwonnam.pe.kr/wiki/</link>
        <url>https://kwonnam.pe.kr/wiki/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/%EC%9E%90%EB%8F%99%EC%83%9D%EC%84%B1?rev=1633611937&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-07T22:05:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:자동생성</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/%EC%9E%90%EB%8F%99%EC%83%9D%EC%84%B1?rev=1633611937&amp;do=diff</link>
        <description>Hibernate와 값의 자동 생성

	*  Hibernate에서 필드의 값을 DB를 통해서건, JVM 메모리 값 기반이건 자동생성하는 여러가지 방법들
	*  Hibernate Primary Key (ID) Generator
	*  Hibernate @Generated
	*  ValueGenerator
	*  Hibernate @ValueGenerationType</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/4?rev=1436146037&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-07-06T10:27:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:4</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/4?rev=1436146037&amp;do=diff</link>
        <description>Hibernate 4

	*  Hibernate 4 JSE 구동 코드
	*  Spring 3.1 and Hibernate 4.1
	*  Hibernate 4 with Spring

문제점

Statement 2중 close 문제

 최신 버전에서는 4.2.x, 4.3.x 모두 해결된 상태이다.

현재 4.2.15버전에서 Comoposite Key 사용시에 Insert 등의 작업시에 closed statement에 대해 getWarnings를 호출하는 문제가 있어보인다. 예외를 잡아서 debug로그로 남기고 그냥 넘어가기 때문에 실질적인 문제는 안되지만 성능상 안 좋아보인다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/5?rev=1546402862&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-02T13:21:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:5</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/5?rev=1546402862&amp;do=diff</link>
        <description>Hibernate 5

	*  Hibernate ORM 5.0.0.CR1 Release
	*  Second Candidate Release for 5.0
	*  Third Candidate Release for ORM 5.0
	*  Fourth Candidate Release for ORM 5.0
	*  Hibernate ORM 5.0 has gone Final!
	*  How to use Java 8's Optional with Hibernate
	*  How to get query results as a Stream with Hibernate 5.2
	*  5 Hibernate 5 features every developer should know - YouTube

Properties

	*  Hibernate Configurations
	*  hibernate.implicit_naming_strategy
	*  hibernate.explicit_naming_strategy

M…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/6?rev=1677133452&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-23T15:24:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:6</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/6?rev=1677133452&amp;do=diff</link>
        <description>Hibernate 6

	*  Hibernate 6.0 Final - In Relation To
	*  Hibernate 6 and JPQL Window Functions - Vlad Mihalcea
	*  Hot features of Hibernate ORM 6.1 - In Relation To
	*  The best way to do the Spring 6 migration - Vlad Mihalcea</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/7?rev=1747794220&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-21T11:23:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:7</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/7?rev=1747794220&amp;do=diff</link>
        <description>Hibernate 7 - JPA 3.2

	*  Hibernate 7 (and Hibernate Validator 9) - In Relation To
	*  JPA 3.2 기반의 Hibernate 7
	*  What’s New in 7.0
	*  7.0 Migration Guide
	*  A Short Guide to Hibernate 7</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/annotations?rev=1642617729&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-20T03:42:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:annotations</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/annotations?rev=1642617729&amp;do=diff</link>
        <description>Hibernate Annotations

	*  하이버네이트 전용 어노테이션들
	*  All Hibernate Annotations: Mapping Annotations - DZone Java

CRUD 쿼리 직접 지정

	*  3.4.11. Custom SQL for CRUD operations


@Entity
@Table(name=&quot;CHAOS&quot;)
@SQLInsert( sql=&quot;INSERT INTO CHAOS(size, name, nickname, id) VALUES(?,upper(?),?,?)&quot;) @SQLUpdate( sql=&quot;UPDATE CHAOS SET size = ?, name = upper(?), nickname = ? WHERE id = ?&quot;) @SQLDelete( sql=&quot;DELETE CHAOS WHERE id = ?&quot;) @SQLDeleteAll( sql=&quot;DELETE CHAOS&quot;) @Loader(namedQuery = &quot;chaos&quot;)
@NamedNativeQuery…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/batch?rev=1668348826&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-13T23:13:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:batch</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/batch?rev=1668348826&amp;do=diff</link>
        <description>Hibernate Batch/Bulk Insert/Update

	*  Chapter 15. Batch processing
	*  JPA batch inserts (using Hibernate and Spring Data JPA) • my2cents
	*  java - Hibernate batch size confusion - Hibernate batch 작동원리
	*  Performance_Tuning_Guide-Entity_Beans-Batching_Database_Operations
	*  4.5.3. Batch Inserts
	*  How to batch INSERT and UPDATE statements with Hibernate - Vlad Mihalcea

작동 원리

	*  Hibernate는 평소에는 PreparedStatement#execute(String)으로 쿼리를 실행하는데, batch 모드가 되면 JDBC 표준 PreparedStatement#addBatch…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/cache?rev=1536816533&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-13T14:28:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:cache</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/cache?rev=1536816533&amp;do=diff</link>
        <description>Hibernate Cache

	*  Chapter 20. Improving performance
	*  JBossCache hibernate caching : JBossCache에 관한 문서이지만, Hibernate Cache에 관한 설명을 많이 포함하고 있음.
	*  hibernate4-memcached - hibernate4 memcached 구현체.
		*  Entity클래스 변경에 대한 방어돼 있음.
		*  Memcached임에도 Region(namespace) 지원</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/configuration?rev=1688363610&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-03T14:53:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:configuration</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/configuration?rev=1688363610&amp;do=diff</link>
        <description>Hibernate Configurations

	*  hibernate properties, property
	*  org.hibernate.cfg.AvailableSettings 설정 상수 모음
	*  org.hibernate.cfg.Environemnt 설정 상수 모음

hibernate.hbm2ddl.auto 프라퍼티

	*  &lt;http://gyumee.egloos.com/2483659&gt; 참조.
	*  schema Action
	*  create-only : 생성만하고, drop은 하지 않는다. 개발 모드에서 최초에 한 번 이걸로 실행하고, 다음에는</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/dialect?rev=1597985715&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-21T13:55:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:dialect</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/dialect?rev=1597985715&amp;do=diff</link>
        <description>Hibernate Dialect

registerHibernate

	*  registerHibernateType은 Hibernate 컬럼의 기본 매핑타입을 지정한다.
	*  현재 추측으로는 SQL Query에서 SELECT의 결과로 나오는 값의 타입이 JDBC의 java.sql.Types 중에 어떤 것일 경우, 해당 타입을 Hibernate의</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/dirty_checking?rev=1668753425&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-18T15:37:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:dirty_checking</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/dirty_checking?rev=1668753425&amp;do=diff</link>
        <description>Hibernate Dirty Checking

	*  The anatomy of Hibernate dirty checking mechanism - Vlad Mihalcea
	*  How to customize Hibernate dirty checking mechanism - Vlad Mihalcea
	*  How to enable bytecode enhancement dirty checking in Hibernate - Vlad Mihalcea

주의! : 읽기만 했는데 dirty checking 에 의해 update 발생

	*  Hibernate 는 Entity 조회시에 조회한 Entity 의 복제본을 저장하고 이후에 equals로 각 필드를 비교해서 dirty checking 을 한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/envers?rev=1619682783&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-29T16:53:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:envers</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/envers?rev=1619682783&amp;do=diff</link>
        <description>Hibernate Envers

	*  Envers
	*  Hibernate/JPA Entity의 변경 사항을 추적할 수 있게 별도 테이블에 변경 사항을 자동 저장해준다.
	*  Spring Data Envers Hibernate Envers 의 변경 사항을 쉽게 조회할 수 있게 해준다.

REV 를 long 으로 변경해야한다</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/equalsandhashcode?rev=1582101874&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-19T17:44:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:equalsandhashcode</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/equalsandhashcode?rev=1582101874&amp;do=diff</link>
        <description>Hibernate and equals &amp; hashCode

	*  Java equals &amp;amp; hashCode
	*  How to implement equals and hashCode using the JPA entity identifier (primary key)
	*  Hibernate Facts: Equals and HashCode
	*  Don't Let Hibernate Steal Your Identity
	*  코틀린(Kotlin) data class를 JPA에서 사용시 주의할 점
	*  4.3. Implementing equals() and hashCode() JBoss Enterprise Application Platform 4.3 | Red Hat Customer Portal
	*  Hibernate ORM 5.3.15.Final User Guide</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/generated?rev=1633611631&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-07T22:00:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:generated</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/generated?rev=1633611631&amp;do=diff</link>
        <description>Hibernate @Generated

	*  @Generated 
	*  테이블 생성시에 TIMESTAMP 자동 생성을 하도록 하는 것처럼, DB에 의해 insert/update 시에 자동으로 값이 생성, 업데이트 되는 필드를 지정한다.
	*  주로 TIMESTAMP에 지정될 것으로 보인다. 하지만, DB 자체에 테이블 선언시 특정 컬럼을 자동 생성가능하게 하는 기능이 있다면, 해당되는 컬럼에 다 사용할 수 있다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/genericdao?rev=1377671430&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2013-08-28T15:30:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:genericdao</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/genericdao?rev=1377671430&amp;do=diff</link>
        <description>Hibernate Generic Dao

	*  &lt;https://community.jboss.org/wiki/GenericDataAccessObjects&gt;

Generic Dao Interface


public interface GenericDAO&lt;T, ID extends Serializable&gt; {  
  
    T findById(ID id, boolean lock);  
  
    List&lt;T&gt; findAll();  
  
    List&lt;T&gt; findByExample(T exampleInstance);  
  
    T makePersistent(T entity);  
  
    void makeTransient(T entity);  
}</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/gotchas?rev=1688363661&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-03T14:54:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:gotchas</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/gotchas?rev=1688363661&amp;do=diff</link>
        <description>Hibernate/JPA Gotcha

하이버네이트/JPA에 관해 항상 기억해둬야 할 사항들을 정리해 둔다.

hashCode와 equals를 항상 구현한다

hashCode와 equals를 항상 구현해야 한다.

이때 DB Primary Key(ID)가 아닌 항상 변치 않고 해당 객체를 대표하는 의미를 가질 수 있는 비즈니스 키(business key)를 hashCode와 equals의 대상으로 삼도록 노력한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/gradle_plugin?rev=1669391103&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-26T00:45:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:gradle_plugin</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/gradle_plugin?rev=1669391103&amp;do=diff</link>
        <description>hibernate-gradle-plugin

	*  &lt;https://github.com/hibernate/hibernate-orm/tree/main/tooling/hibernate-gradle-plugin&gt;
	*  Hibernate ORM User Guide - Gradle Plugin
	*  Gradle에서 JPA 2 MetaModel 생성
	*  Bytecode Enhancement 지원.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/hibernate_flightrecorder?rev=1718149178&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-06-12T08:39:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:hibernate_flightrecorder</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/hibernate_flightrecorder?rev=1718149178&amp;do=diff</link>
        <description>Hibernate Flight Recorder

	*  Hibernate를 Java Flight Recorder 로 모니터링 할 수 있다.
	*  Hibernate 6.4 부터 지원


&lt;dependency&gt;
    &lt;groupId&gt;org.hibernate.orm&lt;/groupId&gt;
    &lt;artifactId&gt;hibernate-jfr&lt;/artifactId&gt;
    &lt;version&gt;6.4.4.Final&lt;/version&gt;
&lt;/dependency&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/hql?rev=1537172627&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-17T17:23:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:hql</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/hql?rev=1537172627&amp;do=diff</link>
        <description>Hibernate HQL

HQL 결과를 사용자 정의 객체로 전환

	*  Mapping A Hibernate Query To A Custom Class | Baeldung
	*  HQL Constructor 

Query&lt;Result&gt; query = session.createQuery(&quot;select new com.baeldung.hibernate.pojo.Result(m.name, m.department.name)&quot;
  + &quot; from com.baeldung.hibernate.entities.DeptEmployee m&quot;);
List&lt;Result&gt; results = query.list();</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/id_generator?rev=1686272536&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-09T10:02:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:id_generator</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/id_generator?rev=1686272536&amp;do=diff</link>
        <description>Hibernate Primary Key (ID) Generator

	*  How to Implement a Custom, Sequence-Based IdGenerator
	*  JPA Generated Values (@GeneratedValue, @SequenceGenerator, @TableGenerator)

hibernate.id.new_generator_mappings

	*  최신버전에서는 hibernate.id.new_generator_mappings=true 프라퍼티를 통해 JPA에 호환성에 부합하는 새로운 방식으로 ID를 생성할 수 있다. 보통은 이 값이 true이면 sequence 시도 안되면 table 시도로 선택한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/interceptor?rev=1652686658&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-16T16:37:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:interceptor</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/interceptor?rev=1652686658&amp;do=diff</link>
        <description>Hibernate Interceptor with JPA

	*  &lt;http://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html/ch14.html&gt;
	*  &lt;http://docs.jboss.org/hibernate/core/4.2/javadocs/org/hibernate/Interceptor.html&gt; : EmptyInterceptor를 상속해서 필요한 것만 구현할 것
	*  Hibernate 5 - Interceptor example | BORAJI.COM

(아마도 Hibernate 3.3부터 추가된) onPrepareStatement 를 통해 쿼리를 변경하는것이 가능하다.

&lt;http://www.mkyong.com/hibernate/hibernate-interceptor-example-audit-log/&gt;

with JPA

	*  &lt;http://nsinfra.blogspot.kr/2013/10/audit-logging-using-hib…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/lazy_to_one?rev=1603372259&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-22T22:10:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:lazy_to_one</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/lazy_to_one?rev=1603372259&amp;do=diff</link>
        <description>@LazyToOne

	*  JPA One-To-One 참조
	*  Hibernate 5.x Bytecode enahcement with Gradle/Maven
	*  Some explanations on lazy loading (one-to-one) |JBoss Developer
	*  @LazyToOne
	*  Proxies and lazy loading in Hibernate

NO_PROXY

	*  NO_PROXY 는 기본적으로 bytecode enhancer를 사용해서 자동으로 구현하는 방식. Bytecode Enhancer 활성화를 해줘야 한다.
	*  Hibernate Bytecode Enhancement - DZone Java
	*  Bytecode Enhancement
	*  java - Hibernate Lazy Loading with @LazyToOne(LazyToOneOption.NO_PROXY) - Stack Overflow class_enhancer(Ava…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/log?rev=1703385499&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-24T11:38:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:log</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/log?rev=1703385499&amp;do=diff</link>
        <description>Hibernate Log 남기기

Hibernate는 Log4j 옵션 설정을 통해 SQL 실행 로그 등을 세세히 남기도록 조정할 수 있다.

	*  hibernate 프라퍼티중 hibernate.show_sql=true 로 설정하면 로거용 로그와 hibernate가 System.out 으로 찍는 로그 두개씩 찍힌다. 따라서 로거를 사용할 때는 hibernate.show_sql=false 로 설정해야 한다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/mssqlserver?rev=1536554662&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-10T13:44:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:mssqlserver</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/mssqlserver?rev=1536554662&amp;do=diff</link>
        <description>Hibernate &amp; MS SQL Server

	*  Hibernate와 MS SQL Server

NVARCHAR Dialect 매핑

	*  Hibernate가 MS SQLServer의 NVARCHAR를 인식하지 못하는 문제 발생시 아래 오류 발생

org.hibernate.MappingException: No Dialect mapping for JDBC type: -9


	*  MS SQL Server에서 JPA NativeQuery 사용시 유니코드(Unicode) 문제
	*  java - JPA SQL Server No Dialect mapping for JDBC type: -9</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/multitenant?rev=1436417124&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2015-07-09T13:45:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:multitenant</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/multitenant?rev=1436417124&amp;do=diff</link>
        <description>Hibernate Multi Tenant

	*  Chapter 16. Multi-tenancy
	*  데이터베이스 샤딩을 자동화 해준다.

참조문서

	*  Sandeep Gupta: Making Application Multi-Tenant with Spring-Data-JPA, Hibernate
	*  Multitenancy and current session</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/naturalid?rev=1714458926&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-30T15:35:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:naturalid</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/naturalid?rev=1714458926&amp;do=diff</link>
        <description>@NaturalId

	*  @Id 대신 사용할 수 있는 자연키.
	*  unique 해야한다.
	*  @Id 를 인조키로 사용할 때 대체로 사용할 수 있다.
	*  Hibernate 어노테이션이므로 JPA에서 사용할 때는 hiber session을 통해 조회해야 한 PK 처럼</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/performance?rev=1709524053&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-04T12:47:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:performance</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/performance?rev=1709524053&amp;do=diff</link>
        <description>Hibernate Performance Tuning

	*  Chapter 20. Improving performance
	*  Hibernate Performance Tuning and Best Practices
	*  Hibernate Cache - JPA Second Level Cache
	*  Hibernate Batch/Bulk Insert/Update
	*  JPA @EntityGraph

Hibernate 성능 분석

	*  Hibernate Statistics
	*  QuickPerf 로 lazy loading 발생여부 확인 가능(실제로는 쿼리가 날라간 갯수를 테스트 코드로 검증가능)

N+1

	*  adgadev/jplusone: Tool for automatic detection and asserting &quot;N+1 SELECT problem&quot; occurences in JPA based Spring Boot Java applications and finding ori…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/reactive?rev=1635428830&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-28T22:47:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:reactive</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/reactive?rev=1635428830&amp;do=diff</link>
        <description>Hibernate Reactive

	*  &lt;http://hibernate.org/reactive/&gt;

참조

	*  Introducing Hibernate Reactive - In Relation To
	*  Hibernate Reactive 1.0.0.Final is now available - In Relation To
	*  Hibernate Reactive: is it worth it? - In Relation To</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/soft_delete?rev=1512049901&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-11-30T22:21:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:soft_delete</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/soft_delete?rev=1512049901&amp;do=diff</link>
        <description>Hibernate/JPA Soft Delete

	*  실제 삭제는 하지 않고 삭제 됐다고 해당 row 에 표시만 하는 방식.
	*  삭제를 표시하는 컬럼을 두고, 
		*  @SQLDelete 로 삭제대신 컬럼 update,
		*  @Where로 Entity 읽을 때 삭제된 것 제외하도록 처리하고,</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/spatial?rev=1547713375&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-17T17:22:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:spatial</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/spatial?rev=1547713375&amp;do=diff</link>
        <description>Hibernate Spatial

	*  Hibernate Geometry, Geographical 데이터를 다룰 수 있다.
	*  Hibernate 5.2.x 이후? 부터는 org.hibernate:hibernate-spatial만 추가하면 된다.
	*  geolatte-geom 혹은 jts 데이터 타입 지원. geolatte-geo 이 더 최신 인 걸로 보임</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/statistics?rev=1512049574&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-11-30T22:16:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:statistics</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/statistics?rev=1512049574&amp;do=diff</link>
        <description>Hibernate Statistics

	*  Hibernate는 자신의 정보를 MBean으로 내보내주는 기능을 가지고 있다.
	*  또한, SessionFactory.getStatistics()를 통해 통계 정보를 볼 수도 있다.

설정

프라퍼티에 등록해주는 것으로 끝. jconsole 등으로 보면된다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/test?rev=1474699289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-09-24T15:11:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:test</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/test?rev=1474699289&amp;do=diff</link>
        <description>Hibernate Test

	*  Testing Databases with JUnit and Hibernate Part 1: One to Rule them
	*  Testing Databases with JUnit and Hibernate Part 2: The Mother of All Things
	*  Testing Databases with JUnit and Hibernate Part 3: Cleaning up and Further Ideas

Hibernate Test Case Template

	*  Hibernate Issue Reporting 등을 할 때 테스트 케이스를 만들어서 제공해야 한다.
	*  Hibernate Test Case Templates
		*  hibernate-test-case-templates github
		*  자기가 테스트하고자하는 버전의 Template을 다운로드하여 자신만의 프로젝트에 복사해 넣고 이미 만들어져 있는 테스트 케이스 파일을 …</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/tsid?rev=1676590940&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-17T08:42:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:tsid</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/tsid?rev=1676590940&amp;do=diff</link>
        <description>TSID - hibernate

	*  Time-Sorted Identifiers
	*  The best way to generate a TSID entity identifier with JPA and Hibernate
	*  The best UUID type for a database Primary Key - Vlad Mihalcea
	*  &lt;https://github.com/vladmihalcea/hypersistence-tsid&gt;</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/types?rev=1594698198&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-14T12:43:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:types</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/types?rev=1594698198&amp;do=diff</link>
        <description>Hibernate Types

	*  Hibernate types
	*  Hibernate Mapping Types Example
	*  vladmihalcea/hibernate-types 각종 추가 Hibernate custom types.
	*  An Inside Look at Hibernate Types
	*  &lt;http://www.tutorialspoint.com/hibernate/hibernate_mapping_types.htm&gt;
	*  &lt;http://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html/ch06.html&gt;
	*  Hibernate User Type
	*  특정 Java 타입에 대해 강제로 Hibernate Type을 사용하게 하려면 @org.hibernate.annotations.Type(type = “HibernateType”) 을 사용한다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/usertype?rev=1540344363&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-24T10:26:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:usertype</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/usertype?rev=1540344363&amp;do=diff</link>
        <description>Hibernate User Type

	*  UserType, ParameterizedType 을 통해 사용자 정의 타입을 만들 수 있다.
	*  vladmihalcea/hibernate-types: The Hibernate Types repository gives you extra types that are not supported by the Hibernate ORM core.
	*  Hibernate Generic Enum UserType
	*  StringDate Hibernate UserType
	*  StringBoolean Hibernate UserType
	*  UserType의 nullSafeSet과 nullSafeGet에서 값에 대한 로그를 trace 레벨로 남겨주어 쿼리 결과나 쿼리를 날릴 때의 로그로 해당 값을 Hibernate가 자동으로 남겨주는 다른 값들과 함께 로그로 남긴다.…</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/valuegenerationtype?rev=1633611854&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-07T22:04:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:valuegenerationtype</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/valuegenerationtype?rev=1633611854&amp;do=diff</link>
        <description>Hibernate @ValueGenerationType

	*  Hibernate에서 필드의 값을 자동으로 생성하는 기법
	*  ValueGenerationType (Hibernate JavaDocs) 는 메타 어노테이션으로 다른 어노테이션을 값을 자동생성하는 어노테이션으로 지정해준다.
	*  AnnotationValueGeneration 를 구현하여 실제로 값을 생성해주고, 이렇게 생성된 값이 필드의 값으로 자동으로 들어간다.</description>
    </item>
    <item rdf:about="https://kwonnam.pe.kr/wiki/java/hibernate/valuegenerator?rev=1633610911&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-07T21:48:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java:hibernate:valuegenerator</title>
        <link>https://kwonnam.pe.kr/wiki/java/hibernate/valuegenerator?rev=1633610911&amp;do=diff</link>
        <description>ValueGenerator

	*  @GeneratorType과 ValueGenerator  조합으로 엔티티의 값(ID말고)을 원하는대로 자동 생성할 수 있다.

Example


@Column(name = &quot;created_by&quot;)
@GeneratorType(
    type = LoggedUserGenerator.class,
    when = GenerationTime.INSERT
)
private String createdBy;
---
// 생성기
// Hibernate session 으로 생성가능
public class LoggedUserGenerator
        implements ValueGenerator&lt;String&gt; {
    @Override
    public String generateValue(
            Session session, Object owner) {
        return LoggedUser.get();
    }
}…</description>
    </item>
</rdf:RDF>
