|
Hibernate example source code file (quickstart.po)
This example Hibernate source code file (quickstart.po) is included in the DevDaily.com
"Java Source Code
Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.
The Hibernate quickstart.po source code
#, fuzzy
msgid ""
msgstr ""
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Content-Type: text/plain; charset=utf-8\n"
#: index.docbook:5
msgid "appended paragraph 1"
msgstr "Tomcat으로 ë¹ ë¥¸ 시작"
#: index.docbook:8
msgid "appended paragraph 2"
msgstr "Hibernate 시작하기"
#: index.docbook:10
msgid "appended paragraph 3"
msgstr "ì´ íŠœí† ë¦¬ì–¼ì€ ì›¹ ê¸°ë°˜ì˜ ì–´í”Œë¦¬ì¼€ì´ì…˜ ìš© Apache Tomcat 서블릿 컨테ì´ë„ˆì— 대한 Hibernate 3.0 ì…‹ì—…ì„ ì„¤ëª…í•œë‹¤(우리는 ë²„ì „ 4.1ì„ ì‚¬ìš©í–ˆë‹¤. 5.0ì— ëŒ€í•œ ì°¨ì´ì ë“¤ì€ ì ì„ ê²ƒì´ë‹¤). Hibernate는 ëª¨ë“ ì£¼ìš” J2EE 어플리케ì´ì…˜ ì„œë²„ë“¤ì˜ ê´€ë¦¬ë˜ëŠ” 환경ì—ì„œ 잘 ë™ìž‘í•˜ê³ , ë˜ëŠ” 심지어 ìŠ¤íƒ ë“œì–¼ë¡ ì–´í”Œë¦¬ì¼€ì´ì…˜ë“¤ì—ì„œë„ ìž˜ ë™ìž‘ 한다. ì´ íŠœí† ë¦¬ì–¼ì— ì‚¬ìš©ë˜ëŠ” ë°ì´í„°ë² ì´ìŠ¤ ì‹œìŠ¤í…œì€ PostgreSQL 7.4ì´ê³ , 다른 ë°ì´í„°ë² ì´ìŠ¤ì— 대한 지ì›ì€ 단지 Hibernate SQL dialect 구성과 커넥션 프로í¼í‹°ë“¤ì„ 변경시키는 것ì—만 관계ëœë‹¤."
#: index.docbook:18
msgid "appended paragraph 4"
msgstr "ë¨¼ì € 우리는 ëª¨ë“ í•„ìˆ˜ì ì¸ ë¼ì´ë¸ŒëŸ¬ë¦¬ë“¤ì„ Tomcat 설치 ìž¥ì†Œì— ë³µì‚¬í•´ì•¼ 한다. 우리는 ì´ íŠœí† ë¦¬ì–¼ì„ ìœ„í•´ 별ë„ì˜ ì›¹ 컨í…스트(<literal>webapps/quickstart)를 사용하며, ë”°ë¼ì„œ 우리는 ì „ì— ë¼ì´ë¸ŒëŸ¬ë¦¬ 검색 경로 (TOMCAT/common/lib)와 webapps/quickstart/WEB-INF/lib (JAR 파ì¼ë“¤ì˜ 경우)와 webapps/quickstart/WEB-INF/classes ë‚´ ì— ìžˆëŠ” 컨í…스트 ë ˆë²¨ì—ì„œ í´ëž˜ìŠ¤ë¡œë” ì–‘ìžë¥¼ ê³ ë ¤í•´ì•¼ 한다. 우리는 ë‘ ê°œì˜ í´ëž˜ìŠ¤ë¡œë” ë ˆë²¨ë“¤ì„ ì „ì— classpath와 컨í…스트 classpath로서 언급한다."
#: index.docbook:27
msgid "appended paragraph 5"
msgstr "ì´ì œ ë¼ì´ë¸ŒëŸ¬ë¦¬ë“¤ì„ ë‘ ê°œì˜ classpathë“¤ì— ë³µì‚¬í•˜ë¼:"
#: index.docbook:33
msgid "appended paragraph 6"
msgstr "ë°ì´í„°ë² ì´ìŠ¤ ìš© JDBC ë“œë¼ì´ë²„를 ì „ì— classpathë¡œ 복사하ë¼. ì´ê²ƒì€ Tomcatì— ë²ˆë“¤ë¡œêµ¬ì„±ëœ DBCP 커넥션 í’€ ì†Œí”„íŠ¸ì›¨ì–´ì— í•„ìš”í•˜ë‹¤. Hibernate는 ë°ì´í„°ë² ì´ìŠ¤ ìƒì—ì„œ SQLì„ ì‹¤í–‰ì‹œí‚¤ëŠ”ë° JDBC ì»¤ë„¥ì…˜ë“¤ì„ ì‚¬ìš©í•˜ë¯€ë¡œ, ë‹¹ì‹ ì€ í’€ë§ëœ JDBC ì»¤ë„¥ì…˜ë“¤ì„ ì œê³µí•´ì•¼ 하거나, ì§ì ‘ 지ì›ë˜ëŠ” 풀들(C3P0, Proxool) 중 하나를 사용하기 위해 Hibernate를 구성해야 한다. ì´ íŠœí† ë¦¬ì–¼ì„ ìœ„í•´, (PostgreSQL 7.4와 JDK 1.4ìš©) <literal>pg74jdbc3.jar ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ ì „ì— classloaders 경로로 복사하ë¼. ë§Œì¼ ë‹¹ì‹ ì´ ë‹¤ë¥¸ ë°ì´í„°ë² ì´ìŠ¤ë¥¼ ì‚¬ìš©í•˜ê³ ìž ì›í• 경우, 간단하게 ê·¸ê²ƒì˜ ì ì ˆí•œ JDBC ë“œë¼ì´ë²„를 복사하ë¼."
#: index.docbook:43
msgid "appended paragraph 7"
msgstr "ê·¸ ë°–ì˜ ì–´ë–¤ ê²ƒì„ Tomcat ë‚´ì˜ ì „ì— í´ëž˜ìŠ¤ë¡œë” ê²½ë¡œì— ë³µì‚¬í•˜ì§€ ë§ë¼. ë˜ëŠ” ë‹¹ì‹ ì€ Log4j, commons-logging ê·¸ë¦¬ê³ ë‹¤ë¥¸ ê²ƒë“¤ì„ í¬í•¨í•˜ëŠ” 여러 가지 ë„êµ¬ë“¤ì— ê´€ë ¨ëœ ë¬¸ì œì ë“¤ì„ ì–»ê²Œ ë 것ì´ë‹¤. ê°ê°ì˜ 웹 어플리케ì´ì…˜ì— 대해 컨í…스트 classpath를 사용하ë¼. 즉 ë¼ì´ë¸ŒëŸ¬ë¦¬ë“¤ì„ <literal>WEB-INF/libì— ë³µì‚¬í•˜ê³ , ë‹¹ì‹ ìžì‹ ì˜ í´ëž˜ìŠ¤ë“¤ê³¼ 구성 파ì¼ë“¤/프로í¼í‹° 파ì¼ë“¤ì„ WEB-INF/classesì— ë³µì‚¬í•˜ë¼. ë‘ ë””ë ‰í† ë¦¬ë“¤ ì–‘ìžëŠ” ë””í´íŠ¸ë¡œ 컨í…스트 classpath ë‚´ì— ìžˆë‹¤."
#: index.docbook:52
msgid "appended paragraph 8"
msgstr "Hibernate는 JAR ë¼ì´ë¸ŒëŸ¬ë¦¬ë¡œì„œ 패키지화 ë˜ì–´ 있다. <literal>hibernate3.jar 파ì¼ì€ 어플리케ì´ì…˜ì˜ 다른 í´ëž˜ìŠ¤ë“¤ê³¼ 함께 컨í…스트 classpath ì†ì— 복사ë˜ì–´ì•¼ 한다. Hibernate는 실행 ì‹œì— ì–´ë–¤ ì œ 3ì˜ ë¼ì´ë¸ŒëŸ¬ë¦¬ë“¤ì„ í•„ìš”ë¡œí•˜ê³ , ì´ê²ƒë“¤ì€ lib/ ë””ë ‰í† ë¦¬ ë‚´ì˜ Hibernate ë°°í¬ë³¸ì— 번들화ë˜ì–´ 있다; 를 ë³´ë¼. 필요한 ì œ3ì˜ ë¼ì´ë¸ŒëŸ¬ë¦¬ë“¤ì„ 컨í…스트 classpathë¡œ 복사하ë¼."
#: index.docbook:62
msgid "appended paragraph 9"
msgstr "Hibernate ì œ3ì˜ ë¼ì´ë¸ŒëŸ¬ë¦¬"
#: index.docbook:70
msgid "appended paragraph 10"
msgstr "ë¼ì´ë¸ŒëŸ¬ë¦¬"
#: index.docbook:73
msgid "appended paragraph 11"
msgstr "<entry>설명"
#: index.docbook:80
msgid "appended paragraph 12"
msgstr "antlr (필수)"
#: index.docbook:83
msgid "appended paragraph 13"
msgstr "Hibernate는 ì§ˆì˜ íŒŒì„œë“¤ì„ ì‚°ì¶œí•˜ëŠ”ë° ANTLRì„ ì‚¬ìš©í•˜ê³ , ì´ ë¼ì´ë¸ŒëŸ¬ë¦¬ëŠ” ë˜í•œ 실행 ì‹œì— í•„ìš”í•˜ë‹¤."
#: index.docbook:89
msgid "appended paragraph 14"
msgstr "dom4j (필수)"
#: index.docbook:92
msgid "appended paragraph 15"
msgstr "Hibernate는 XML 구성과 XML 매핑 메타ë°ì´í„° 파ì¼ë“¤ì„ íŒŒì‹±í•˜ëŠ”ë° dom4j를 사용 한다."
#: index.docbook:98
msgid "appended paragraph 16"
msgstr "CGLIB, asm (필수)"
#: index.docbook:101
msgid "appended paragraph 17"
msgstr "Hibernate는 (Java reflectionê³¼ 결합하여) 런타임 ì‹œì— í´ëž˜ìŠ¤ë“¤ì„ ê³ ì–‘ì‹œí‚¤ëŠ”ë° ì½”ë“œ ìƒì„± ë¼ì´ë¸ŒëŸ¬ë¦¬ë¥¼ 사용한다."
#: index.docbook:107
msgid "appended paragraph 18"
msgstr "Commons Collections, Commons Logging (필수)"
#: index.docbook:110
msgid "appended paragraph 19"
msgstr "Hibernate는 Apache Jakarta Commons 프로ì 트로부터 다양한 ìœ í‹¸ë¦¬í‹° ë¼ì´ë¸ŒëŸ¬ë¦¬ ë“¤ì„ ì‚¬ìš©í•œë‹¤."
#: index.docbook:116
msgid "appended paragraph 20"
msgstr "EHCache (필수)"
#: index.docbook:119
msgid "appended paragraph 21"
msgstr "Hibernate는 second-level ìºì‹œë¥¼ 위한 다양한 ìºì‹œ 프로바ì´ë”ë“¤ì„ ì‚¬ìš©í• ìˆ˜ 있다. ë§Œì¼ êµ¬ì„±ì—ì„œ 변하지 ì•Šì„ ê²½ìš° EHCacheê°€ ë””í´íŠ¸ ìºì‹œ 프로바ì´ë”ì´ë‹¤."
#: index.docbook:125
msgid "appended paragraph 22"
msgstr "Log4j (옵션)"
#: index.docbook:128
msgid "appended paragraph 23"
msgstr "Hibernate는 기본 로깅 메커니즘으로서 Log4j를 ì‚¬ìš©í• ìˆ˜ 있는, Commons Logging API를 사용한다. ë§Œì¼ Log4j ë¼ì´ë¸ŒëŸ¬ë¦¬ê°€ 컨í…스트 ë¼ì´ë¸ŒëŸ¬ë¦¬ ë””ë ‰í† ë¦¬ ì†ì—ì„œ ì´ìš© 가능하다면, Commons Loggingì€ Log4j와 컨í…스트 classpath ë‚´ì— ìžˆëŠ” <literal>log4j.properties êµ¬ì„±ì„ ì‚¬ìš©í• ê²ƒì´ë‹¤. Log4jì— ëŒ€í•œ ì˜ˆì œ properties 파ì¼ì€ Hibernate ë°°í¬ë³¸ì— 번들화 ë˜ì–´ 있다. ë”°ë¼ì„œ ë‹¹ì‹ ì´ ì´ë©´ì—ì„œ ë¬´ì—‡ì´ ì§„í–‰ë˜ëŠ” ì§€ì„ ë³´ê³ ìž ì›í• ê²½ìš°ì— log4j.jar와 (src/ì— ìžˆëŠ”) 구성 파ì¼ì„ ë‹¹ì‹ ì˜ ì»¨í…스트 classpath ì†ìœ¼ë¡œ 복사하ë¼."
#: index.docbook:138
msgid "appended paragraph 24"
msgstr "필수 여부?"
#: index.docbook:141
msgid "appended paragraph 25"
msgstr "Hibernate ë°°í¬ë³¸ ë‚´ì— ìžˆëŠ” <literal>lib/README.txt 파ì¼ì„ 살펴보ë¼. ì´ê²ƒì€ Hibernateì— ë°°í¬ëœ ì œ 3ì˜ ë¼ì´ë¸ŒëŸ¬ë¦¬ë“¤ì˜ ìµœì‹ ëª©ë¡ì´ë‹¤. ë‹¹ì‹ ì€ ê·¸ê³³ì— ì—´ê±°ëœ ëª¨ë“ í•„ìˆ˜ ë¼ì´ë¸ŒëŸ¬ë¦¬ë“¤ê³¼ 옵션 ë¼ì´ë¸ŒëŸ¬ë¦¬ë“¤ì„ 찾게 ë 것ì´ë‹¤(여기서 \"빌드 ì‹œ 필요함\"ì€ ë‹¹ì‹ ì˜ ì–´í”Œë¦¬ì¼€ì´ì…˜ì´ ì•„ë‹ˆë¼ Hibernateì— ëŒ€í•œ ì˜ë¯¸ìž„ì„ ë…¸íŠ¸í•˜ë¼)."
#: index.docbook:152
msgid "appended paragraph 26"
msgstr "우리는 ì´ì œ Tomcatê³¼ Hibernate ì–‘ìžì—ì„œ ë°ì´í„°ë² ì´ìŠ¤ 커넥션 í’€ë§ê³¼ ê³µìœ ë¥¼ ì„¤ì •í•œë‹¤. ì´ê²ƒì€ Tomcatì´ (ê·¸ê²ƒì˜ ë¯¸ë¦¬ 빌드ë˜ì–´ 있는 DBCP í’€ë§ íŠ¹ì§•ì„ ì‚¬ìš©í•˜ì—¬) í’€ë§ëœ JDBC ì»¤ë„¥ì…˜ë“¤ì„ ì œê³µí• ê²ƒì´ê³ , Hibernateê°€ JNDI를 통해 ì´ë“¤ ì»¤ë„¥ì…˜ë“¤ì„ ìš”ì²í•œë‹¤ëŠ” ê²ƒì„ ì˜ë¯¸í•œë‹¤. 달리 ë‹¹ì‹ ì€ Hibernateë¡œ 하여금 커넥션 í’€ì„ ê´€ë¦¬í•˜ë„ë¡ í• ìˆ˜ 있다. Tomcatì€ ê·¸ê²ƒì˜ ì»¤ë„¥ì…˜ í’€ì„ JNDIì— ë°”ì¸ë“œ 시킨다; 우리는 리소스 ì„ ì–¸ì„ Tomcat ë©”ì¸ êµ¬ì„± 파ì¼ì¸ <literal>TOMCAT/conf/server.xmlì— ì¶”ê°€í•œë‹¤:"
#: index.docbook:160
msgid "appended paragraph 27"
msgstr ""
"<![CDATA[\n"
" <value>org.apache.commons.dbcp.BasicDataSourceFactory\n"
" </parameter>\n"
"\n"
" <!-- DBCP database connection settings -->\n"
" <parameter>\n"
" <name>url\n"
" <value>jdbc:postgresql://localhost/quickstart\n"
" </parameter>\n"
" <parameter>\n"
" <name>driverClassNameorg.postgresql.Driver\n"
" </parameter>\n"
" <parameter>\n"
" <name>username\n"
" <value>quickstart\n"
" </parameter>\n"
" <parameter>\n"
" <name>password\n"
" <value>secret\n"
" </parameter>\n"
"\n"
" <!-- DBCP connection pooling options -->\n"
" <parameter>\n"
" <name>maxWait\n"
" <value>3000\n"
" </parameter>\n"
" <parameter>\n"
" <name>maxIdle\n"
" <value>100\n"
" </parameter>\n"
" <parameter>\n"
" <name>maxActive\n"
" <value>10\n"
" </parameter>\n"
" </ResourceParams>\n"
"</Context>]]>"
#: index.docbook:162
msgid "appended paragraph 28"
msgstr "우리가 ì´ ì˜ˆì œì—ì„œ 구성하는 컨í…스트는 <literal>quickstartë¡œ 명명ë˜ê³ , ê·¸ê²ƒì˜ ë² ì´ìŠ¤ëŠ” TOMCAT/webapp/quickstart ë””ë ‰í† ë¦¬ì´ë‹¤. ìž„ì˜ì˜ ì„œë¸”ë¦¿ë“¤ì— ì ‘ê·¼í•˜ê¸° 위해, (ë¬¼ë¡ ë‹¹ì‹ ì˜ web.xml ì†ì— ë§¤í•‘ëœ ì„œë¸”ë¦¿ì˜ ì´ë¦„ì„ ì¶”ê°€í•˜ì—¬) ë‹¹ì‹ ì˜ ë¸Œë¼ìš°ì €ì—ì„œ http://localhost:8080/quickstart 경로를 호출하ë¼. ë‹¹ì‹ ì€ ë˜í•œ ê³„ì† ì§„í–‰í•˜ê³ ì´ì œ ê³µë°±ì˜ process() 메소드를 가진 간단한 ì„œë¸”ë¦¿ì„ ìƒì„±ì‹œí‚¬ 수 있다."
#: index.docbook:170
msgid "appended paragraph 29"
msgstr "Tomcatì€ ì´ì œ <literal>java:comp/env/jdbc/quickstartë¡œ JNDIì„ í†µí•´ ì»¤ë„¥ì…˜ë“¤ì„ ì œê³µí•œë‹¤. ë§Œì¼ ë‹¹ì‹ ì´ ì‹¤í–‰ ì¤‘ì¸ ì»¤ë„¥ì…˜ í’€ì„ ì–»ëŠ” ê²ƒì— ë¬¸ì œê°€ 있다면 Tomcat 문서를 참조하ë¼. ë‹¹ì‹ ì´ JDBC ë“œë¼ì´ë²„ 예외ìƒí™© 메시지를 ì–»ì„ ê²½ìš°, ë¨¼ì € Hibernate ì—†ì´ JDBC 커넥션 í’€ì„ ì…‹ì—…í•˜ë¼. Tomcat & JDBC íŠœí† ë¦¬ì–¼ë“¤ì€ ê·¸ 웹 ì„œì´íŠ¸ì—ì„œ ì´ìš© 가능하다."
#: index.docbook:177
msgid "appended paragraph 30"
msgstr "ë‹¹ì‹ ì˜ ë‹¤ìŒ ë‹¨ê³„ëŠ” Hibernate를 구성하는 것ì´ë‹¤. Hibernate는 ê·¸ê²ƒì´ JDBC ì»¤ë„¥ì…˜ë“¤ì„ ì–»ëŠ” ë°©ë²•ì„ ì•Œê³ ìžˆì–´ì•¼ 한다. 우리는 Hibernateì˜ XML 기반 êµ¬ì„±ì„ ì‚¬ìš©í•œë‹¤. properties 파ì¼ì„ 사용하는 다른 ì ‘ê·¼ë²•ì€ ê±°ì˜ ë™ì¼í•˜ì§€ë§Œ XML êµ¬ë¬¸ì´ í—ˆìš©í•˜ëŠ” 몇몇 íŠ¹ì§•ë“¤ì„ ëˆ„ë½í•˜ê³ 있다. XML 구성 파ì¼ì€ <literal>hibernate.cfg.xml로서 컨í…스트 classpath (WEB-INF/classes) ë‚´ì— ìœ„ì¹˜í•´ 있다:"
#: index.docbook:184
msgid "appended paragraph 31"
msgstr ""
"<![CDATA[\n"
" <property name=\"show_sql\">false\n"
" <property name=\"dialect\">org.hibernate.dialect.PostgreSQLDialect\n"
"\n"
" <!-- Mapping files -->\n"
" <mapping resource=\"Cat.hbm.xml\"/>\n"
"\n"
" </session-factory>\n"
"\n"
"</hibernate-configuration>]]>"
#: index.docbook:186
msgid "appended paragraph 32"
msgstr "우리는 SQL ëª…ë ¹ë“¤ì— ëŒ€í•œ ë¡œê¹…ì„ ì‚¬ìš©í•˜ì§€ ì•Šê³ Hibernateì—게 사용ë˜ëŠ” ë°ì´í„°ë² ì´ìŠ¤ SQL directê°€ 무엇ì¸ì§€ ê·¸ë¦¬ê³ (Tomcat ë°”ì¸ë“œëœ í’€ì˜ JNDI 주소를 ì„ ì–¸í•˜ì—¬) JDBC ì»¤ë„¥ì…˜ë“¤ì„ ì–»ëŠ” ê³³ì„ ì•Œë ¤ì¤€ë‹¤. dialect는 필수ì ì¸ ì„¤ì •ì´ê³ , ë°ì´í„°ë² ì´ìŠ¤ë“¤ì€ SQL \"표준\"ì— ëŒ€í•œ ê·¸ê²ƒë“¤ì˜ í•´ì„ì„ ë‹¬ë¦¬í•œë‹¤. Hibernate는 ì°¨ì´ì ë“¤ì„ ì²˜ë¦¬í•˜ê³ ëª¨ë“ ì£¼ìš” ìƒìš© ë°ì´í„°ë² ì´ìŠ¤ë“¤ ë° ì˜¤í”ˆ 소스 ë°ì´í„°ë² ì´ìŠ¤ë“¤ ìš©ë„ì˜ directë“¤ì„ ë²ˆë“¤ë¡œ í¬í•¨í•˜ê³ 있다."
#: index.docbook:193
msgid "appended paragraph 33"
msgstr "<literal>SessionFactory는 ë‹¨ì¼ ë°ì´í„°ì €ìž¥ì†Œì— 관한 ê°œë…ì´ê³ , 여러 ë°ì´í„°ë² ì´ìŠ¤ë“¤ì€ 여러 ê°œì˜ XML 구성 파ì¼ë“¤ì„ ìƒì„±ì‹œí‚¤ê³ ë‹¹ì‹ ì˜ ì–´í”Œë¦¬ì¼€ì´ì…˜ ì†ì—ì„œ 여러 ê°œì˜ Configuration ë° SessionFactory ê°ì²´ë“¤ì„ ìƒì„±ì‹œì¼œì„œ 사용ë 수 있다."
#: index.docbook:199
msgid "appended paragraph 34"
msgstr "<literal>hibernate.cfg.xmlì˜ ë§ˆì§€ë§‰ 요소는 ì˜ì† í´ëž˜ìŠ¤ Catì— ëŒ€í•œ Hibernate XML 매핑 파ì¼ì˜ ì´ë¦„ìœ¼ë¡œì¨ Cat.hbm.xmlì„ ì„ ì–¸í•œë‹¤. ì´ íŒŒì¼ì€ ë°ì´í„°ë² ì´ìŠ¤ í…Œì´ë¸”(ë˜ëŠ” í…Œì´ë¸”들)ë¡œ POJO í´ëž˜ìŠ¤ Cat ì„ ë§¤í•‘ì‹œí‚¤ëŠ” 메타ë°ì´í„°ë¥¼ í¬í•¨í•œë‹¤. 우리는 곧 ê·¸ 파ì¼ë¡œ ë˜ëŒì•„ ê°ˆ 것ì´ë‹¤. ë¨¼ì € POJO í´ëž˜ìŠ¤ë¥¼ ìž‘ì„±í•˜ê³ ê·¸ëŸ° ë‹¤ìŒ ê·¸ê²ƒì„ ìœ„í•œ 매핑 메타ë°ì´í„°ë¥¼ ì„ ì–¸í•˜ìž."
#: index.docbook:209
msgid "appended paragraph 35"
msgstr "첫 번째 ì˜ì† í´ëž˜ìŠ¤"
#: index.docbook:211
msgid "appended paragraph 36"
msgstr "Hibernate는 ì˜ì† í´ëž˜ìŠ¤ë“¤ì— 대한 Plain Old Java Objects (POJOs, 종종 Plain Ordinary Java Objectsë¡œ 명명ëœë‹¤) í”„ë¡œê·¸ëž˜ë° ëª¨í˜•ìœ¼ë¡œ 가장 잘 ë™ìž‘한다. POJO는 공용으로 가시ì ì¸ ì¸í„°íŽ˜ì´ìŠ¤ë¡œë¶€í„° 내부ì ì¸ í‘œìƒì„ ì€í시켜, getter와 setter ë©”ì†Œë“œë“¤ì„ í†µí•´ ì ‘ê·¼ê°€ëŠ¥í•œ í´ëž˜ìŠ¤ë“¤ì˜ 프로í¼í‹°ë“¤ì„ 가진 ìžë°”빈과 꽤 ìœ ì‚¬í•˜ë‹¤(필요하다면 Hibernate는 ë˜í•œ í•„ë“œë“¤ì— ì§ì ‘ ì ‘ê·¼í• ìˆ˜ 있다):"
#: index.docbook:218
msgid "appended paragraph 37"
msgstr ""
"<![CDATA[package org.hibernate.examples.quickstart;\n"
"\n"
"public class Cat {\n"
"\n"
" private String id;\n"
" private String name;\n"
" private char sex;\n"
" private float weight;\n"
"\n"
" public Cat() {\n"
" }\n"
"\n"
" public String getId() {\n"
" return id;\n"
" }\n"
"\n"
" private void setId(String id) {\n"
" this.id = id;\n"
" }\n"
"\n"
" public String getName() {\n"
" return name;\n"
" }\n"
"\n"
" public void setName(String name) {\n"
" this.name = name;\n"
" }\n"
"\n"
" public char getSex() {\n"
" return sex;\n"
" }\n"
"\n"
" public void setSex(char sex) {\n"
" this.sex = sex;\n"
" }\n"
"\n"
" public float getWeight() {\n"
" return weight;\n"
" }\n"
"\n"
" public void setWeight(float weight) {\n"
" this.weight = weight;\n"
" }\n"
"\n"
"}]]>"
#: index.docbook:220
msgid "appended paragraph 38"
msgstr "Hibernate는 ê·¸ê²ƒì˜ í”„ë¡œí¼í‹° íƒ€ìž…ë“¤ì˜ ì‚¬ìš©ì— ì œì•½ë˜ì§€ ì•Šê³ , ìžë°” ì½œë ‰ì…˜ í”„ë ˆìž„ì›ì—ì„œì˜ í´ëž˜ìŠ¤ë“¤ì„ í¬í•¨í•˜ì—¬, ëª¨ë“ ìžë°” JDK 타입들과 (<literal>String, char와 Date ê°™ì€) ì›ì‹œíƒ€ìž…ë“¤ì´ ë§¤í•‘ë 수 있다. ë‹¹ì‹ ì€ ê·¸ê²ƒì„ ê°’ë“¤ë¡œì„œ, ê°’ë“¤ì„ ê°€ì§„ ì½œë ‰ì…˜ë“¤ë¡œì„œ, ë˜ëŠ” 다른 ì—”í‹°í‹°ë“¤ì— ëŒ€í•œ 연관들로서 매핑시킬 수 있다. id는 ê·¸ í´ëž˜ìŠ¤ì˜ ë°ì´í„°ë² ì´ìŠ¤ ì‹ë³„ìž(프ë¼ì´ë¨¸ë¦¬ 키)를 표현하는 특별한 프로í¼í‹°ì´ê³ , ê·¸ê²ƒì€ Catê³¼ ê°™ì€ ì—”í‹°í‹°ë“¤ì— ëŒ€í•´ 매우 권장ëœë‹¤. Hibernate는 내부ì 으로만 ì‹ë³„ìžë“¤ì„ ì‚¬ìš©í• ìˆ˜ 있지만, 우리는 ìš°ë¦¬ì˜ ì–´í”Œë¦¬ì¼€ì´ì…˜ 아키í…처ì—ì„œ ì–´ë–¤ ìœ ì—°ì„±ì„ ìƒì‹¤í•˜ê²Œ ë 것ì´ë‹¤."
#: index.docbook:229
msgid "appended paragraph 39"
msgstr "íŠ¹ì • ì¸í„°íŽ˜ì´ìŠ¤ëŠ” ì˜ì† í´ëž˜ìŠ¤ë“¤ì— 대해 구현ë˜ì§€ ë§ì•„야 하거나 íŠ¹ì • 루트 ì˜ì† í´ëž˜ìŠ¤ë¡œë¶€í„° 서브 í´ëž˜ìŠ¤ë¡œ 만들지 ë§ì•„야 한다. Hibernate는 ë˜í•œ ë°”ì´íŠ¸ 코드 처리와 ê°™ì€, ì–´ë–¤ 빌드 ì‹œ 처리를 필요로 하지 ì•Šê³ , ê·¸ê²ƒì€ ì˜¤ì§ ìžë°” reflectionê³¼ (CGLIB를 통한) 런타임 í´ëž˜ìŠ¤ ê³ ì–‘ì—만 ì˜ì¡´í•œë‹¤. ë”°ë¼ì„œ Hibernateì— ëŒ€í•œ POJO í´ëž˜ìŠ¤ì˜ ì–´ë–¤ ì˜ì¡´ì„± ì—†ì´ë„, 우리는 ê·¸ê²ƒì„ ë°ì´í„°ë² ì´ìŠ¤ í…Œì´ë¸”ë¡œ ë§¤í•‘í• ìˆ˜ 있다."
#: index.docbook:239
msgid "appended paragraph 40"
msgstr "cat 매핑하기"
#: index.docbook:241
msgid "appended paragraph 41"
msgstr "<literal>Cat.hbm.xml 매핑파ì¼ì€ ê°ì²´/관계형 ë§¤í•‘ì— í•„ìš”í•œ 메타ë°ì´í„°ë¥¼ í¬í•¨í•œë‹¤. 메타ë°ì´í„°ëŠ” ì˜ì† í´ëž˜ìŠ¤ë“¤ì˜ ì„ ì–¸ê³¼ ë°ì´í„°ë² ì´ìŠ¤ í…Œì´ë¸”ë“¤ì— ëŒ€í•œ (컬럼들과 다른 ì—”í‹°í‹°ë“¤ì— ëŒ€í•œ foreign 키 ê´€ê³„ë“¤ì— ëŒ€í•œ) 프로í¼í‹°ë“¤ì˜ ë§¤í•‘ì„ í¬í•¨í•œë‹¤."
#: index.docbook:247
msgid "appended paragraph 42"
msgstr ""
"<![CDATA["
#: index.docbook:249
msgid "appended paragraph 43"
msgstr "ëª¨ë“ ì˜ì† í´ëž˜ìŠ¤ëŠ” ì‹ë³„ìž ì†ì„±ì„ ê°€ì ¸ì•¼ 한다(ì‹¤ì œë¡œ value-íƒ€ìž…ì˜ í´ëž˜ìŠ¤ë“¤ì— ì˜ì¡´í•˜ì§€ 않는, ì—”í‹°í‹°ë“¤ì„ í‘œí˜„í•˜ëŠ” ìœ ì¼í•œ í´ëž˜ìŠ¤ë“¤ì€ ì—”í‹°í‹°ì„ ê°€ì§„ ì»´í¬ë„ŒíŠ¸ë“¤ë¡œ 매핑ëœë‹¤). ì´ í”„ë¡œí¼í‹°ëŠ” ì˜ì† ê°ì²´ë“¤ì„ êµ¬ë³„ì§“ëŠ”ë° ì‚¬ìš©ëœë‹¤: ë§Œì¼ <literal>catA.getId().equals(catB.getId())ê°€ trueì¼ ê²½ìš°, ë‘ ê°œì˜ catë“¤ì€ ê°™ê³ , ì´ ê°œë…ì€ database identityë¡œ 명명ëœë‹¤. Hibernate는 (ë°ì´í„°ë² ì´ìŠ¤ 시퀀스, hi/lo ì‹ë³„ìž í…Œì´ë¸”들, ê·¸ë¦¬ê³ ì–´í”Œë¦¬ì¼€ì´ì…˜ í• ë‹¹ ì‹ë³„ìžë“¤ì— 대한 native ìƒì„±ê¸°ë“¤ì„ í¬í•¨í•˜ëŠ”) 다른 ì‹œë‚˜ë¦¬ì˜¤ë“¤ì— ëŒ€í•´ 여러 가지 ì‹ë³„ìž ìƒì„±ê¸°ë“¤ì„ 번들로 ê°–ê³ ìžˆë‹¤. 우리는 UUID ìƒì„±ê¸°(ë°ì´í„°ì´ìŠ¤ì— ì˜í•´ ìƒì„±ëœ ì •ìˆ˜ 대용 í‚¤ë“¤ì´ ì„ í˜¸ë 것ì´ë¯€ë¡œ, 테스트용으로만 권장ë¨)를 ì‚¬ìš©í•˜ê³ ë˜í•œ Hibernate ìƒì„±ëœ ì‹ë³„ìž ê°’ì„ ìœ„í•œ CAT í…Œì´ë¸”ì˜ CAT_ID ì»¬ëŸ¼ì„ (í…Œì´ë¸”ì˜ í”„ë¼ì´ë¨¸ë¦¬ 키로서) ì§€ì •í•œë‹¤."
#: index.docbook:260
msgid "appended paragraph 44"
msgstr "<literal>Catì˜ ëª¨ë“ ë‹¤ë¥¸ 프로í¼í‹°ë“¤ì€ ë™ì¼í•œ í…Œì´ë¸”ë¡œ 매핑ëœë‹¤. name 프로í¼í‹°ì˜ 경우ì—, 우리는 ê·¸ê²ƒì„ ëª…ì‹œì ì¸ ë°ì´í„°ë² ì´ìŠ¤ 컬럼 ì„ ì–¸ìœ¼ë¡œ 매핑시켰다. ë°ì´í„°ë² ì´ìŠ¤ 스키마가 Hibernateì˜ SchemaExport ë„êµ¬ì— ì˜í•´ 매핑 ì„ ì–¸ìœ¼ë¡œë¶€í„° (SQL DDL 문장들로) ìžë™ì 으로 ìƒì„±ë ë•Œ ì´ê²ƒì´ 특별히 ìœ ìš©í•˜ë‹¤. ëª¨ë“ ë‹¤ë¥¸ 프로í¼í‹°ë“¤ì€ Hibernateì˜ ë””í´íŠ¸ ì„¤ì •ë“¤ì„ ì‚¬ìš©í•˜ì—¬ 매핑ë˜ê³ , ë””í´íŠ¸ ì„¤ì •ë“¤ì€ ë‹¹ì‹ ì´ ê°€ìž¥ ë§Žì€ ì‹œê°„ì„ í•„ìš”ë¡œ 하는 것ì´ë‹¤. ë°ì´í„°ë² ì´ìŠ¤ ë‚´ì˜ í…Œì´ë¸” CATì€ ë‹¤ìŒê³¼ 같다:"
#: index.docbook:268
msgid "appended paragraph 45"
msgstr ""
"<![CDATA[ Column | Type | Modifiers\n"
"--------+-----------------------+-----------\n"
" cat_id | character(32) | not null\n"
" name | character varying(16) | not null\n"
" sex | character(1) |\n"
" weight | real |\n"
"Indexes: cat_pkey primary key btree (cat_id)]]>"
#: index.docbook:270
msgid "appended paragraph 46"
msgstr "ë‹¹ì‹ ì€ ì´ì œ 수작업으로 ë‹¹ì‹ ì˜ ë°ì´í„°ë² ì´ìŠ¤ ë‚´ì— ì´ í…Œì´ë¸”ì„ ìƒì„±ì‹œí‚¬ 것ì´ê³ , ë§Œì¼ ë‹¹ì‹ ì´ <literal>hbm2ddl ë„구로 ì´ ë‹¨ê³„ë¥¼ ìžë™í™” ì‹œí‚¤ê³ ìž ì›í• 경우 를 ì½ì–´ë¼. ì´ ë„구는 í…Œì´ë¸” ì •ì˜, 맞춤형 컬럼 타입 ì»¨ìŠ¤íŠ¸ë ˆì¸íŠ¸ë“¤, ìœ ì¼ ì»¨ìŠ¤íŠ¸ë ˆì¸íŠ¸ë“¤ê³¼ ì¸ë±ìŠ¤ë“¤ì„ í¬í•¨í•˜ëŠ”, ì „ì²´ SQL DDLì„ ìƒì„±ì‹œí‚¬ 수 있다."
#: index.docbook:279
msgid "appended paragraph 47"
msgstr "catë“¤ì— ìž‘ì—…í•˜ê¸°"
#: index.docbook:281
msgid "appended paragraph 48"
msgstr "우리는 ì´ì œ Hibernateì˜ <literal>Sessionì„ ì‹œìž‘í• ì¤€ë¹„ê°€ ë˜ì–´ 있다. ê·¸ê²ƒì€ persistence manager (ì˜ì† 관리ìž)ì´ê³ , 우리는 ë°ì´í„°ë² ì´ìŠ¤ë¡œ Catë“¤ì„ ì €ìž¥í•˜ê³ ë°ì´í„°ë² ì´ìŠ¤ë¡œë¶€í„° Catë“¤ì„ ê²€ìƒ‰í•˜ëŠ”ë° ê·¸ê²ƒì„ ì‚¬ìš©í•œë‹¤. 그러나 ë¨¼ì € 우리는 SessionFactory로부터 Session(Hibernateì˜ ìž‘ì—… 단위)를 얻어야 한다:"
#: index.docbook:288
msgid "appended paragraph 49"
msgstr ""
"<![CDATA[SessionFactory sessionFactory =\n"
" new Configuration().configure().buildSessionFactory();]]>"
#: index.docbook:290
msgid "appended paragraph 50"
msgstr "<literal>configure() í˜¸ì¶œì€ hibernate.cfg.xml 구성 파ì¼ì„ ë¡œë“œì‹œí‚¤ê³ Configuration ì¸ìŠ¤í„´ìŠ¤ë¥¼ 초기화 시킨다. ë‹¹ì‹ ì´ SessionFactory(불변ì ìž„)를 빌드하기 ì´ì „ì— ë‹¹ì‹ ì€ Configurationì— ì ‘ê·¼í•¨ìœ¼ë¡œì¨ ë‹¤ë¥¸ 프로í¼í‹°ë“¤ì„ ì„¤ì •í• ìˆ˜ 있다(ê·¸ë¦¬ê³ ì‹¬ì§€ì–´ 매핑 메타ë°ì´í„°ë¥¼ 변경시킬 수 있다). 우리는 어디서 SessionFactory를 ìƒì„±ì‹œí‚¤ê³ ìš°ë¦¬ì˜ ì–´í”Œë¦¬ì¼€ì´ì…˜ ì†ì—ì„œ 어떻게 ê·¸ê²ƒì— ì ‘ê·¼í• ìˆ˜ 있나?"
#: index.docbook:298
msgid "appended paragraph 51"
msgstr "<literal>SessionFactory는 대개 ì˜¤ì§ í•œë²ˆë§Œ, 예를 들어 대개 load-on-startup 서블릿으로 시작 ì‹œì— ë¹Œë“œëœë‹¤. ì´ê²ƒì€ ë˜í•œ ë‹¹ì‹ ì´ ë‹¹ì‹ ì˜ ì„œë¸”ë¦¿ë“¤ ë‚´ì— ìžˆëŠ” ì¸ìŠ¤í„´ìŠ¤ 변수 ì†ì— ê·¸ê²ƒì„ ìœ ì§€í•˜ì§€ ì•Šì„ ê²ƒì´ì§€ë§Œ ì–´ë–¤ 다른 ìœ„ì¹˜ì— ìœ ì§€ì‹œí‚¬ ê²ƒìž„ì„ ì˜ë¯¸í•œë‹¤. ë”구나 우리는 ì–´ë–¤ ì¢…ë¥˜ì˜ Singletonì„ í•„ìš”ë¡œ 하며, ë”°ë¼ì„œ 우리는 어플리케ì´ì…˜ 코드로 쉽게 SessionFactoryì— ì•¡ì„¸ìŠ¤ í• ìˆ˜ 있다. 다ìŒì— 보여진 ì ‘ê·¼ë²•ì€ ë‘ ë¬¸ì œ 모ë‘를 해결한다: 시작 구성과 SessionFactoryì— ëŒ€í•œ 쉬운 ì ‘ê·¼."
#: index.docbook:306
msgid "appended paragraph 52"
msgstr "우리는 <literal>HibernateUtil helper í´ëž˜ìŠ¤ë¥¼ 구현한다:"
#: index.docbook:310
msgid "appended paragraph 53"
msgstr ""
"<![CDATA[import org.hibernate.*;\n"
"import org.hibernate.cfg.*;\n"
"\n"
"public class HibernateUtil {\n"
"\n"
" private static Logger log = LoggerFactory.getLogger(HibernateUtil.class);\n"
"\n"
" private static final SessionFactory sessionFactory;\n"
"\n"
" static {\n"
" try {\n"
" // Create the SessionFactory\n"
" sessionFactory = new Configuration().configure().buildSessionFactory();\n"
" } catch (Throwable ex) {\n"
" // Make sure you log the exception, as it might be swallowed\n"
" log.error(\"Initial SessionFactory creation failed.\", ex);\n"
" throw new ExceptionInInitializerError(ex);\n"
" }\n"
" }\n"
"\n"
" public static final ThreadLocal session = new ThreadLocal();\n"
"\n"
" public static Session getCurrentSession() {\n"
" Session s = (Session) session.get();\n"
" // Open a new Session, if this Thread has none yet\n"
" if (s == null) {\n"
" s = sessionFactory.openSession();\n"
" session.set(s);\n"
" }\n"
" return s;\n"
" }\n"
"\n"
" public static void closeSession() {\n"
" Session s = (Session) session.get();\n"
" if (s != null)\n"
" s.close();\n"
" session.set(null);\n"
" }\n"
"}]]>"
#: index.docbook:312
msgid "appended paragraph 54"
msgstr "ì´ í´ëž˜ìŠ¤ëŠ” static 초기ìžë¥¼ 가진 <literal>SessionFactory를 ì²˜ë¦¬í• ë¿ë§Œ ì•„ë‹ˆë¼ ë˜í•œ í˜„ìž¬ì˜ ì“°ë ˆë“œë¥¼ 위한 Sessionì„ ì†Œìœ í•˜ëŠ” ThreadLocal 변수를 갖는다. ì´ helper를 ì‚¬ìš©í•˜ë ¤ê³ ì‹œë„하기 ì „ì— thread-local ë³€ìˆ˜ì— ëŒ€í•œ ìžë°” ê°œë…ì„ ì´í•´í•´ì•¼ 한다. 보다 ë³µìž¡í•˜ê³ ê°•ë ¥í•œ HibernateUtil í´ëž˜ìŠ¤ëŠ” http://caveatemptor.hibernate.org/ì˜ CaveatEmptorì—ì„œ ì°¾ì„ ìˆ˜ 있다."
#: index.docbook:319
msgid "appended paragraph 55"
msgstr "<literal>SessionFactory는 threadsafeì´ê³ , ë§Žì€ ì“°ë ˆë“œë“¤ì´ ë™ì‹œì— ê·¸ê²ƒì— ì ‘ê·¼í• ìˆ˜ ìžˆê³ Sessionë“¤ì„ ìš”ì²í• 수 있다. í•˜ë‚˜ì˜ Sessionì€ ë°ì´í„°ë² ì´ìŠ¤ì— 대해 í•œ ê°œì˜ ë‹¨ìœ„ ìž‘ì—…ì„ ë‚˜íƒ€ë‚´ëŠ” non-threadsafe ê°ì²´ì´ë‹¤. Sessionë“¤ì€ SessionFactory 로부터 ì—´ë ¤ì§€ê³ ëª¨ë“ ìž‘ì—…ì´ ì™„ë£Œë ë•Œ 닫혀진다. ë‹¹ì‹ ì˜ ì„œë¸”ë¦¿ì˜ process() 메소드 ë‚´ì— ìžˆëŠ” ì˜ˆì œëŠ” 다ìŒê³¼ ê°™ì„ ìˆ˜ 있다(예외ìƒí™© 처리 ì—†ì´):"
#: index.docbook:327
msgid "appended paragraph 56"
msgstr ""
"<![CDATA[Session session = HibernateUtil.getCurrentSession();\n"
"Transaction tx = session.beginTransaction();\n"
"\n"
"Cat princess = new Cat();\n"
"princess.setName(\"Princess\");\n"
"princess.setSex('F');\n"
"princess.setWeight(7.4f);\n"
"\n"
"session.save(princess);\n"
"\n"
"tx.commit();\n"
"HibernateUtil.closeSession();]]>"
#: index.docbook:329
msgid "appended paragraph 57"
msgstr "í•˜ë‚˜ì˜ <literal>Session ë‚´ì—ì„œ ëª¨ë“ ë°ì´í„°ë² ì´ìŠ¤ 오í¼ë ˆì´ì…˜ì€ ë°ì´í„°ë² ì´ìŠ¤ 오í¼ë ˆì´ì…˜ë“¤(심지어 ì½ê¸° ì „ìš© 오í¼ë ˆì´ì…˜ë“¤ ì¡°ì°¨ë„)ì„ ê²©ë¦¬ì‹œí‚¤ëŠ” í•˜ë‚˜ì˜ íŠ¸ëžœìžì…˜ 내부ì—ì„œ ë°œìƒí•œë‹¤. 우리는 기본 트랜ìžì…˜ ë°©ë„(ìš°ë¦¬ì˜ ê²½ìš°, JDBC 트랜ìžì…˜ë“¤)로부터 추ìƒí™”ì‹œí‚¤ëŠ”ë° Hibernates Transaction API 를 사용한다. ì´ê²ƒì€ ìš°ë¦¬ì˜ ì½”ë“œê°€ ìž„ì˜ì˜ 변경들 ì—†ì´ë„ (JTA를 사용하는) 컨테ì´ë„ˆ-관리ë˜ëŠ” 트랜ìžì…˜ë“¤ì— 배치ë˜ëŠ” ê²ƒì„ í—ˆìš©í•´ì¤€ë‹¤."
#: index.docbook:336
msgid "appended paragraph 58"
msgstr "ë‹¹ì‹ ì´ ì›í•˜ëŠ” ë§Œí¼ ë‹¹ì‹ ì´ <literal>HibernateUtil.getCurrentSession();ì„ í˜¸ì¶œí• ìˆ˜ ìžˆê³ , ë‹¹ì‹ ì€ ì´ ì“°ë ˆë“œì˜ í˜„ìž¬ Sessionì„ í•ìƒ ì–»ì„ ê²ƒìž„ì„ ë…¸íŠ¸í•˜ë¼. ë‹¹ì‹ ì€ ì„œë¸”ë¦¿ 코드 ë‚´ì—ì„œë“ ë˜ëŠ” 서블릿 í•„í„° ë‚´ì—ì„œë“ HTTP responseê°€ ì „ì†¡ë˜ê¸° ì „ì—, ë‹¹ì‹ ì˜ ë‹¨ìœ„ ìž‘ì—…ì´ ì™„ë£Œëœ í›„ì— Sessionì´ í™•ì‹¤ížˆ 닫혀지ë„ë¡ í•´ì•¼ 한다. ë‘ ë²ˆì§¸ ì˜µì…˜ì˜ ì¢‹ì€ ì¸¡ë©´ì€ ì‰¬ìš´ lazy 초기화ì´ë‹¤: ë·°ê°€ ë Œë”ë§ ë ë•Œ Sessionì´ ì—¬ì „ížˆ ì—´ë ¤ì ¸ 있어서, Hibernate는 ë‹¹ì‹ ì´ í˜„ìž¬ ê°ì²´ 그래프를 네비게ì´íŠ¸ 하는 ë™ì•ˆ 초기화 ë˜ì§€ ì•Šì€ ê°ì²´ë“¤ì„ 로드시킬 수 있다."
#: index.docbook:344
msgid "appended paragraph 59"
msgstr "Hibernate는 ë°ì´í„°ë² ì´ìŠ¤ë¡œë¶€í„° ê°ì²´ë“¤ì„ ê²€ìƒ‰í•˜ëŠ”ë° ì‚¬ìš©ë 수 있는 다양한 ë©”ì†Œë“œë“¤ì„ ê°–ê³ ìžˆë‹¤. 가장 ìœ ì—°í•œ ë°©ë²•ì€ Hibernate Query Language (HQL)ì„ ì‚¬ìš©í•˜ëŠ” 것ì´ë‹¤. Hibernate Query Language (HQL)ì€ ë°°ìš°ê¸°ê°€ ì‰½ê³ SQLì— ëŒ€í•œ ê°•ë ¥í•œ ê°ì²´ 지향 확장ì´ë‹¤:"
#: index.docbook:350
msgid "appended paragraph 60"
msgstr ""
"<![CDATA[Transaction tx = session.beginTransaction();\n"
"\n"
"Query query = session.createQuery(\"select c from Cat as c where c.sex = :sex\");\n"
"query.setCharacter(\"sex\", 'F');\n"
"for (Iterator it = query.iterate(); it.hasNext();) {\n"
" Cat cat = (Cat) it.next();\n"
" out.println(\"Female Cat: \" + cat.getName() );\n"
"}\n"
"\n"
"tx.commit();]]>"
#: index.docbook:352
msgid "appended paragraph 61"
msgstr "Hibernate는 ë˜í•œ type-safe 질ì˜ë“¤ì„ ê³µì‹í™” ì‹œí‚¤ëŠ”ë° ì‚¬ìš©ë 수 있는 ê°ì²´-지향 <emphasis>query by criteria APIì„ ì œê³µí•œë‹¤. ë¬¼ë¡ Hibernate는 ë°ì´í„°ë² ì´ìŠ¤ì™€ì˜ ëª¨ë“ SQL í†µì‹ ì„ ìœ„í•´ PreparedStatement들과 파ë¼ë¯¸í„° ë°”ì¸ë”©ì„ 사용한다. ë‹¹ì‹ ì€ ë˜í•œ Hibernate ì§ì ‘ì ì¸ SQL ì§ˆì˜ íŠ¹ì§•ì„ ì‚¬ìš©í• ìˆ˜ë„ ìžˆê±°ë‚˜ 드문 ê²½ìš°ì— Session으로부터 plain JDBC ì»¤ë„¥ì…˜ì„ ì–»ì„ ìˆ˜ë„ ìžˆë‹¤."
#: index.docbook:362
msgid "appended paragraph 62"
msgstr "마지막으로"
#: index.docbook:364
msgid "appended paragraph 63"
msgstr "우리는 ì´ ìž‘ì€ íŠœí† ë¦¬ì–¼ ë‚´ì—ì„œ 단지 Hibernateì˜ í‘œë©´ì„ í›‘ê¸°ë§Œ 했다. 우리는 ìš°ë¦¬ì˜ ì˜ˆì œë“¤ ì†ì— ì–´ë–¤ 서블릿 ì§€ì •ì 코드를 í¬í•¨í•˜ì§€ ì•ŠìŒì„ 노트하ë¼. ë‹¹ì‹ ì´ ì 합한지를 ì•Œë ¤ê³ í• ë•Œ ë‹¹ì‹ ì€ ë‹¹ì‹ ìžì‹ ì˜ ì„œë¸”ë¦¿ì„ ìƒì„±ì‹œì¼œì•¼ í•˜ê³ Hibernate 코드를 삽입해야 한다."
#: index.docbook:370
msgid "appended paragraph 64"
msgstr "ë°ì´í„° ì ‘ê·¼ 계층으로서 Hibernate는 ë‹¹ì‹ ì˜ ì–´í”Œë¦¬ì¼€ì´ì…˜ì— 강하게 통합ë¨ì„ ì—¼ë‘ì— ë‘ë¼. 대개 ëª¨ë“ ë‹¤ë¥¸ ë ˆì´ì–´ë“¤ì€ ì˜ì† ë©”ì»¤ë‹ˆì¦˜ì— ì˜ì¡´í–ˆë‹¤. ë‹¹ì‹ ì€ ì´ ì„¤ê³„ì˜ í•¨ì¶•ì„ í™•ì‹¤ížˆ ì´í•´í•˜ë„ë¡ í•˜ë¼."
#: index.docbook:375
msgid "appended paragraph 65"
msgstr "보다 복잡한 어플리케ì´ì…˜ ì˜ˆì œëŠ” http://caveatemptor.hibernate.org/ 를 ë³´ê³ http://caveatemptor.hibernate.org/ì— ìžˆëŠ” 다른 íŠœí† ë¦¬ì–¼ë“¤ì„ ì‚´íŽ´ë³´ë¼."
msgid "ROLES_OF_TRANSLATORS"
msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
msgid "CREDIT_FOR_TRANSLATORS"
msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
Other Hibernate examples (source code examples)
Here is a short list of links related to this Hibernate quickstart.po source code file:
|