<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://egovframe.go.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="http://egovframe.go.kr/wiki/feed.php">
        <title>eGovFrame egovframework:rte:psl:orm</title>
        <description></description>
        <link>http://egovframe.go.kr/wiki/</link>
        <image rdf:resource="http://egovframe.go.kr/wiki/lib/images/favicon.ico" />
       <dc:date>2025-06-17T01:53:06+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:association_mapping&amp;rev=1703136096&amp;do=diff"/>
                <rdf:li rdf:resource="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:cache_handling&amp;rev=1703136096&amp;do=diff"/>
                <rdf:li rdf:resource="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:concurrency&amp;rev=1703136096&amp;do=diff"/>
                <rdf:li rdf:resource="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:entities&amp;rev=1703136096&amp;do=diff"/>
                <rdf:li rdf:resource="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:entity_operation&amp;rev=1703136096&amp;do=diff"/>
                <rdf:li rdf:resource="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:fetch_strategy&amp;rev=1703136096&amp;do=diff"/>
                <rdf:li rdf:resource="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:jpa_configuration&amp;rev=1703136096&amp;do=diff"/>
                <rdf:li rdf:resource="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:native_sql&amp;rev=1703136096&amp;do=diff"/>
                <rdf:li rdf:resource="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:query_language&amp;rev=1703136096&amp;do=diff"/>
                <rdf:li rdf:resource="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:spring_integration&amp;rev=1703136096&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://egovframe.go.kr/wiki/lib/images/favicon.ico">
        <title>eGovFrame</title>
        <link>http://egovframe.go.kr/wiki/</link>
        <url>http://egovframe.go.kr/wiki/lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:association_mapping&amp;rev=1703136096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:36+00:00</dc:date>
        <title>egovframework:rte:psl:orm:association_mapping</title>
        <link>http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:association_mapping&amp;rev=1703136096&amp;do=diff</link>
        <description>두 클래스 사이의 Association 유형별 매핑 방법에 대해서 살펴보고자 한다. 그리고 다양한 Collection의 매핑 방법 및 Collection의 주요속성인 inverse,cascade에 대해서 샘플코드를 중심으로 살펴본다.</description>
    </item>
    <item rdf:about="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:cache_handling&amp;rev=1703136096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:36+00:00</dc:date>
        <title>egovframework:rte:psl:orm:cache_handling</title>
        <link>http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:cache_handling&amp;rev=1703136096&amp;do=diff</link>
        <description>입력 인자로 전달된 객체를 정의된 테이블로 매핑시켜 데이터 액세스 처리를 수행해야 하는데 JPA에서는 이로 인해 발생 가능한 성능 이슈를 개선하기 위해 Cache를 활용한다. 현재 표준버전에서는 1 level Cache 만을 정의하고 있다. JPA 2.0에서는 2level Cache 정의 추가됨.</description>
    </item>
    <item rdf:about="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:concurrency&amp;rev=1703136096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:36+00:00</dc:date>
        <title>egovframework:rte:psl:orm:concurrency</title>
        <link>http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:concurrency&amp;rev=1703136096&amp;do=diff</link>
        <description>동시에 동일한 데이터에 접근할 때에 데이터에 대한 접근을 제어하기 위해 Optimistic Locking을 지원한다. 한편 Hibernate의 Native API를 통해서는 지원 가능한 Pessimistic Locking 은 JPA2.0 버전에 정의될 예정이다.</description>
    </item>
    <item rdf:about="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:entities&amp;rev=1703136096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:36+00:00</dc:date>
        <title>egovframework:rte:psl:orm:entities</title>
        <link>http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:entities&amp;rev=1703136096&amp;do=diff</link>
        <description>ORM 서비스를 구성하는 가장 기초적인 클래스로 어플리케이션에서 다루고자 하는 테이블에 대응하여 구성할 수 있으며 테이블이 포함하는 컬럼에 대응한 속성들을 가지고 있다. 


기본 필요 요건

Entity를 구성하기 위한 아래와 같은 요건이 있다.(JPA요건)</description>
    </item>
    <item rdf:about="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:entity_operation&amp;rev=1703136096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:36+00:00</dc:date>
        <title>egovframework:rte:psl:orm:entity_operation</title>
        <link>http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:entity_operation&amp;rev=1703136096&amp;do=diff</link>
        <description>ORM서비스를 이용하여 특정 DB에 데이터를 입력,수정,조회,삭제,배치입력하는 방법에 대해 알아보도록 한다.

입 력

EntityManager의 persist()메소드를 호출하여 DB에 단건의 데이터를 추가할 수 있다. persist() 메소드 호출시 대상이 되는 Entity를 입력 인자로 전달해야 한다.</description>
    </item>
    <item rdf:about="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:fetch_strategy&amp;rev=1703136096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:36+00:00</dc:date>
        <title>egovframework:rte:psl:orm:fetch_strategy</title>
        <link>http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:fetch_strategy&amp;rev=1703136096&amp;do=diff</link>
        <description>ORM 서비스는  기본적으로 Entity간의 연관관계를 정의하고 정의된 연관관계를 가지고 관련 Entity를 추출하여 사용한다. 관련 Entity를 추출하는데 기본적으로 Lazy Loading이란 기법을 통해서 객체가 실제로 필요하기 전까지 SQL을 실행하지 않고 Proxy 객체로 리턴하도록 하고 한다. 그러나 이러한 Lazy Loading으로 처리하게 되면 Lazy Loading을 하지 않는 것에 대비하여 필요시점에 쿼리를 여러번 수행해야 하는 문제가 발생한다. 이런 문제를 해결하기 위한 여러가지 Fetch 전략이 존재하는데 Batch를 이용하여 데이터 조회, Sub-Query를 이용하여 데이터 조회, Join Fetch를 이용하여 데이터 한꺼번에 조회하는 방법이 있다. 하지만 이 서비스는 JPA표준이 아닌 구현체인 Hibernate에 정의된 사항이다.…</description>
    </item>
    <item rdf:about="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:jpa_configuration&amp;rev=1703136096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:36+00:00</dc:date>
        <title>egovframework:rte:psl:orm:jpa_configuration</title>
        <link>http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:jpa_configuration&amp;rev=1703136096&amp;do=diff</link>
        <description>JPA는 실행 속성을 포함하고 있는 persistence.xml을 기반으로 하여 동작하도록 구성되어 있다. persistence.xml 파일의 주요 구성 요소와 속성 정의 방법에 대해 살펴보기로 한다. 먼저, persistence.xml 파일은 가장 상위에 &lt;persistence&gt; 태그를 포함하고 있으며 &lt;persistence&gt; 태그 내에 여러개의 &lt;persistence-unit&gt;를 포함할 수 있다.</description>
    </item>
    <item rdf:about="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:native_sql&amp;rev=1703136096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:36+00:00</dc:date>
        <title>egovframework:rte:psl:orm:native_sql</title>
        <link>http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:native_sql&amp;rev=1703136096&amp;do=diff</link>
        <description>기본적으로 CRUD 작업을 할 때 JPA 기본 API를 사용하거나 QL을 이용하여 수행한다. 그러나 특정 DBMS에서 제공하는 기능을 사용할 수 있도록 하기 위해 Native SQL 사용을 지원한다. 


기본적인 사용 방법

entityManager.createNativeQuery() 메소드를 이용하여 Native SQL을 실행할 수 있다.</description>
    </item>
    <item rdf:about="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:query_language&amp;rev=1703136096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:36+00:00</dc:date>
        <title>egovframework:rte:psl:orm:query_language</title>
        <link>http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:query_language&amp;rev=1703136096&amp;do=diff</link>
        <description>JPA에는 별도의 Query Language를 제공함으로써 객체 지향 관점에서 특정 객체에 대한 조회와 DB 유형에 독립적인 Query 정의를 가능하도록 한다. 구성요소 및 작성 방법은 아래와 같다.


구성요소

QL Statement 유형으로는 SELECT 문과 Update and Delete 문 두가지가 있다.</description>
    </item>
    <item rdf:about="http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:spring_integration&amp;rev=1703136096&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:36+00:00</dc:date>
        <title>egovframework:rte:psl:orm:spring_integration</title>
        <link>http://egovframe.go.kr/wiki/doku.php?id=egovframework:rte:psl:orm:spring_integration&amp;rev=1703136096&amp;do=diff</link>
        <description>Spring에서는 JPA 기반에서 DAO 클래스를 쉽게 구현할 수 있도록 하기 위해 JdbcTemplate,HibernateTemplate등처럼 JpaTemplate을 제공한다. 하지만 JPA에 있어서는 Entity Manager의 Method를 직접 이용하는 것(plain JPA)에 대한 것도 가이드한다. 이에 두가지 방법에 대한 설정 및 사용방법에 대해서 설명하고자 한다. Spring JPA</description>
    </item>
</rdf:RDF>
