📄 quickstart.po
字号:
msgid "appended paragraph 29"msgstr "Tomcat은 이제 <literal>java:comp/env/jdbc/quickstart</literal>로 JNDI을 통해 커넥션들을 제공한다. 만일 당신이 실행 중인 커넥션 풀을 얻는 것에 문제가 있다면 Tomcat 문서를 참조하라. 당신이 JDBC 드라이버 예외상황 메시지를 얻을 경우, 먼저 Hibernate 없이 JDBC 커넥션 풀을 셋업하라. Tomcat & JDBC 튜토리얼들은 그 웹 서이트에서 이용 가능하다."#: index.docbook:177msgid "appended paragraph 30"msgstr "당신의 다음 단계는 Hibernate를 구성하는 것이다. Hibernate는 그것이 JDBC 커넥션들을 얻는 방법을 알고 있어야 한다. 우리는 Hibernate의 XML 기반 구성을 사용한다. properties 파일을 사용하는 다른 접근법은 거의 동일하지만 XML 구문이 허용하는 몇몇 특징들을 누락하고 있다. XML 구성 파일은 <literal>hibernate.cfg.xml</literal>로서 컨텍스트 classpath (<literal>WEB-INF/classes</literal>) 내에 위치해 있다:"#: index.docbook:184msgid "appended paragraph 31"msgstr "" "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n" "<!DOCTYPE hibernate-configuration PUBLIC\n" " \"-//Hibernate/Hibernate Configuration DTD//EN\"\n" " \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd\">\n" "\n" "<hibernate-configuration>\n" "\n" " <session-factory>\n" "\n" " <property name=\"connection.datasource\">java:comp/env/jdbc/quickstart</property>\n" " <property name=\"show_sql\">false</property>\n" " <property name=\"dialect\">org.hibernate.dialect.PostgreSQLDialect</property>\n" "\n" " <!-- Mapping files -->\n" " <mapping resource=\"Cat.hbm.xml\"/>\n" "\n" " </session-factory>\n" "\n" "</hibernate-configuration>]]>"#: index.docbook:186msgid "appended paragraph 32"msgstr "우리는 SQL 명령들에 대한 로깅을 사용하지 않고 Hibernate에게 사용되는 데이터베이스 SQL direct가 무엇인지 그리고 (Tomcat 바인드된 풀의 JNDI 주소를 선언하여) JDBC 커넥션들을 얻는 곳을 알려준다. dialect는 필수적인 설정이고, 데이터베이스들은 SQL \"표준\"에 대한 그것들의 해석을 달리한다. Hibernate는 차이점들을 처리하고 모든 주요 상용 데이터베이스들 및 오픈 소스 데이터베이스들 용도의 direct들을 번들로 포함하고 있다."#: index.docbook:193msgid "appended paragraph 33"msgstr "<literal>SessionFactory</literal>는 단일 데이터저장소에 관한 개념이고, 여러 데이터베이스들은 여러 개의 XML 구성 파일들을 생성시키고 당신의 어플리케이션 속에서 여러 개의 <literal>Configuration</literal> 및 <literal>SessionFactory</literal> 객체들을 생성시켜서 사용될 수 있다."#: index.docbook:199msgid "appended paragraph 34"msgstr "<literal>hibernate.cfg.xml</literal>의 마지막 요소는 영속 클래스 <literal>Cat</literal>에 대한 Hibernate XML 매핑 파일의 이름으로써 <literal>Cat.hbm.xml</literal>을 선언한다. 이 파일은 데이터베이스 테이블(또는 테이블들)로 POJO 클래스 <literal>Cat</literal> 을 매핑시키는 메타데이터를 포함한다. 우리는 곧 그 파일로 되돌아 갈 것이다. 먼저 POJO 클래스를 작성하고 그런 다음 그것을 위한 매핑 메타데이터를 선언하자."#: index.docbook:209msgid "appended paragraph 35"msgstr "첫 번째 영속 클래스"#: index.docbook:211msgid "appended paragraph 36"msgstr "Hibernate는 영속 클래스들에 대한 Plain Old Java Objects (POJOs, 종종 Plain Ordinary Java Objects로 명명된다) 프로그래밍 모형으로 가장 잘 동작한다. POJO는 공용으로 가시적인 인터페이스로부터 내부적인 표상을 은폐시켜, getter와 setter 메소드들을 통해 접근가능한 클래스들의 프로퍼티들을 가진 자바빈과 꽤 유사하다(필요하다면 Hibernate는 또한 필드들에 직접 접근할 수 있다):"#: index.docbook:218msgid "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:220msgid "appended paragraph 38"msgstr "Hibernate는 그것의 프로퍼티 타입들의 사용에 제약되지 않고, 자바 콜렉션 프레임웍에서의 클래스들을 포함하여, 모든 자바 JDK 타입들과 (<literal>String</literal>, <literal>char</literal>와 <literal>Date</literal> 같은) 원시타입들이 매핑될 수 있다. 당신은 그것을 값들로서, 값들을 가진 콜렉션들로서, 또는 다른 엔티티들에 대한 연관들로서 매핑시킬 수 있다. <literal>id</literal>는 그 클래스의 데이터베이스 식별자(프라이머리 키)를 표현하는 특별한 프로퍼티이고, 그것은 <literal>Cat</literal>과 같은 엔티티들에 대해 매우 권장된다. Hibernate는 내부적으로만 식별자들을 사용할 수 있지만, 우리는 우리의 어플리케이션 아키텍처에서 어떤 유연성을 상실하게 될 것이다."#: index.docbook:229msgid "appended paragraph 39"msgstr "특정 인터페이스는 영속 클래스들에 대해 구현되지 말아야 하거나 특정 루트 영속 클래스로부터 서브 클래스로 만들지 말아야 한다. Hibernate는 또한 바이트 코드 처리와 같은, 어떤 빌드 시 처리를 필요로 하지 않고, 그것은 오직 자바 reflection과 (CGLIB를 통한) 런타임 클래스 고양에만 의존한다. 따라서 Hibernate에 대한 POJO 클래스의 어떤 의존성 없이도, 우리는 그것을 데이터베이스 테이블로 매핑할 수 있다."#: index.docbook:239msgid "appended paragraph 40"msgstr "cat 매핑하기"#: index.docbook:241msgid "appended paragraph 41"msgstr "<literal>Cat.hbm.xml</literal> 매핑파일은 객체/관계형 매핑에 필요한 메타데이터를 포함한다. 메타데이터는 영속 클래스들의 선언과 데이터베이스 테이블들에 대한 (컬럼들과 다른 엔티티들에 대한 foreign 키 관계들에 대한) 프로퍼티들의 매핑을 포함한다."#: index.docbook:247msgid "appended paragraph 42"msgstr "" "<![CDATA[<?xml version=\"1.0\"?>\n" "<!DOCTYPE hibernate-mapping PUBLIC\n" " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n" " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n" "\n" "<hibernate-mapping>\n" "\n" " <class name=\"org.hibernate.examples.quickstart.Cat\" table=\"CAT\">\n" "\n" " <!-- A 32 hex character is our surrogate key. It's automatically\n" " generated by Hibernate with the UUID pattern. -->\n" " <id name=\"id\" type=\"string\" unsaved-value=\"null\" >\n" " <column name=\"CAT_ID\" sql-type=\"char(32)\" not-null=\"true\"/>\n" " <generator class=\"uuid\"/>\n" " </id>\n" "\n" " <!-- A cat has to have a name, but it shouldn' be too long. -->\n" " <property name=\"name\">\n" " <column name=\"NAME\" length=\"16\" not-null=\"true\"/>\n" " </property>\n" "\n" " <property name=\"sex\"/>\n" "\n" " <property name=\"weight\"/>\n" "\n" " </class>\n" "\n" "</hibernate-mapping>]]>"#: index.docbook:249msgid "appended paragraph 43"msgstr "모든 영속 클래스는 식별자 속성을 가져야 한다(실제로 value-타입의 클래스들에 의존하지 않는, 엔티티들을 표현하는 유일한 클래스들은 엔티티을 가진 컴포넌트들로 매핑된다). 이 프로퍼티는 영속 객체들을 구별짓는데 사용된다: 만일 <literal>catA.getId().equals(catB.getId())</literal>가 true일 경우, 두 개의 cat들은 같고, 이 개념은 <emphasis>database identity</emphasis>로 명명된다. Hibernate는 (데이터베이스 시퀀스, hi/lo 식별자 테이블들, 그리고 어플리케이션 할당 식별자들에 대한 native 생성기들을 포함하는) 다른 시나리오들에 대해 여러 가지 식별자 생성기들을 번들로 갖고 있다. 우리는 UUID 생성기(데이터이스에 의해 생성된 정수 대용 키들이 선호될 것이므로, 테스트용으로만 권장됨)를 사용하고 또한 Hibernate 생성된 식별자 값을 위한 <literal>CAT</literal> 테이블의 <literal>CAT_ID</literal> 컬럼을 (테이블의 프라이머리 키로서) 지정한다."#: index.docbook:260msgid "appended paragraph 44"msgstr "<literal>Cat</literal>의 모든 다른 프로퍼티들은 동일한 테이블로 매핑된다. <literal>name</literal> 프로퍼티의 경우에, 우리는 그것을 명시적인 데이터베이스 컬럼 선언으로 매핑시켰다. 데이터베이스 스키마가 Hibernate의 <emphasis>SchemaExport</emphasis> 도구에 의해 매핑 선언으로부터 (SQL DDL 문장들로) 자동적으로 생성될 때 이것이 특별히 유용하다. 모든 다른 프로퍼티들은 Hibernate의 디폴트 설정들을 사용하여 매핑되고, 디폴트 설정들은 당신이 가장 많은 시간을 필요로 하는 것이다. 데이터베이스 내의 테이블 <literal>CAT</literal>은 다음과 같다:"#: index.docbook:268msgid "appended paragraph 45"msgstr "" "<![CDATA[ Column | Type | Modifiers\n"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -