diff --git a/documentation/manual/translations/ja-JP/content/architecture.po b/documentation/manual/translations/ja-JP/content/architecture.po index e9cd8f8606..3b8380eb91 100644 --- a/documentation/manual/translations/ja-JP/content/architecture.po +++ b/documentation/manual/translations/ja-JP/content/architecture.po @@ -1,216 +1,634 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:21 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: architecture.xml:21 +#, no-c-format msgid "Architecture" -msgstr "" +msgstr "アーキテクチャ" -#: index.docbook:24 +#. Tag: title +#: architecture.xml:24 +#, no-c-format msgid "Overview" -msgstr "" +msgstr "概観" -#: index.docbook:26 +#. Tag: para +#: architecture.xml:26 +#, no-c-format msgid "A (very) high-level view of the Hibernate architecture:" -msgstr "" +msgstr "Hibernateアーキテクチャの(非常に)高いレベルからのビュー:" -#: index.docbook:39 -msgid "This diagram shows Hibernate using the database and configuration data to provide persistence services (and persistent objects) to the application." +#. Tag: para +#: architecture.xml:39 +#, no-c-format +msgid "" +"This diagram shows Hibernate using the database and configuration data to " +"provide persistence services (and persistent objects) to the application." msgstr "" +"この図はHibernateが、アプリケーションに対して永続化サービス (と永続オブジェ" +"クト)を提供するために、データベースと設定データを使うことを 示しています。" -#: index.docbook:44 -msgid "We would like to show a more detailed view of the runtime architecture. Unfortunately, Hibernate is flexible and supports several approaches. We will show the two extremes. The \"lite\" architecture has the application provide its own JDBC connections and manage its own transactions. This approach uses a minimal subset of Hibernate's APIs:" +#. Tag: para +#: architecture.xml:44 +#, no-c-format +msgid "" +"We would like to show a more detailed view of the runtime architecture. " +"Unfortunately, Hibernate is flexible and supports several approaches. We " +"will show the two extremes. The \"lite\" architecture has the application " +"provide its own JDBC connections and manage its own transactions. This " +"approach uses a minimal subset of Hibernate's APIs:" msgstr "" +"ここで実行時アーキテクチャのより詳細なビューをお見せしましょう。 あいにく、" +"Hibernateは柔軟であり、いろいろなアプローチをサポートしています。 ここでは、2" +"つの極端な例をお見せします。 「軽い」アーキテクチャでは、アプリケーションが自" +"前のJDBCコネクションを用意し、 アプリケーション自身がトランザクションを管理し" +"ます。 この方法は、Hibernate APIの最小限のサブセットを使います:" -#: index.docbook:61 -msgid "The \"full cream\" architecture abstracts the application away from the underlying JDBC/JTA APIs and lets Hibernate take care of the details." +#. Tag: para +#: architecture.xml:61 +#, no-c-format +msgid "" +"The \"full cream\" architecture abstracts the application away from the " +"underlying JDBC/JTA APIs and lets Hibernate take care of the details." msgstr "" +"「重い」アーキテクチャは、アプリケーションから、その下に位置するJDBCやJTAの" +"APIを 取り払って抽象化し、その詳細の面倒をHibernateに見させます。" -#: index.docbook:75 +#. Tag: para +#: architecture.xml:75 +#, fuzzy, no-c-format msgid "Heres some definitions of the objects in the diagrams:" -msgstr "" +msgstr "以下は、上の図に含まれるオブジェクトの定義です: " -#: index.docbook:80 +#. Tag: term +#: architecture.xml:80 +#, no-c-format msgid "SessionFactory (org.hibernate.SessionFactory)" -msgstr "" +msgstr "SessionFactory (org.hibernate.SessionFactory)" -#: index.docbook:82 -msgid "A threadsafe (immutable) cache of compiled mappings for a single database. A factory for Session and a client of ConnectionProvider. Might hold an optional (second-level) cache of data that is reusable between transactions, at a process- or cluster-level." +#. Tag: para +#: architecture.xml:82 +#, no-c-format +msgid "" +"A threadsafe (immutable) cache of compiled mappings for a single database. A " +"factory for Session and a client of " +"ConnectionProvider. Might hold an optional (second-level) " +"cache of data that is reusable between transactions, at a process- or " +"cluster-level." msgstr "" +"1つのデータベースに対するコンパイルされたマッピングの スレッドセーフな(更新" +"不能の)キャッシュ。 Session のファクトリであり、 " +"ConnectionProvider のクライアント。 オプションとして、プロ" +"セスまたはクラスタレベルにおいて、 トランザクション間で再利用可能なデータの" +"(二次)キャッシュを持ちます。" -#: index.docbook:92 +#. Tag: term +#: architecture.xml:92 +#, no-c-format msgid "Session (org.hibernate.Session)" -msgstr "" +msgstr "Session (org.hibernate.Session)" -#: index.docbook:94 -msgid "A single-threaded, short-lived object representing a conversation between the application and the persistent store. Wraps a JDBC connection. Factory for Transaction. Holds a mandatory (first-level) cache of persistent objects, used when navigating the object graph or looking up objects by identifier." +#. Tag: para +#: architecture.xml:94 +#, no-c-format +msgid "" +"A single-threaded, short-lived object representing a conversation between " +"the application and the persistent store. Wraps a JDBC connection. Factory " +"for Transaction. Holds a mandatory (first-level) cache of " +"persistent objects, used when navigating the object graph or looking up " +"objects by identifier." msgstr "" +"アプリケーションと永続ストアとの対話を表す、 シングルスレッドで短命のオブジェ" +"クト。 JDBCコネクションをラップします。 Transaction のファ" +"クトリです。 永続オブジェクトの必須の(一次)キャッシュを保持します。 この" +"キャッシュはオブジェクトグラフをナビゲーションする時や、 識別子でオブジェクト" +"を検索する時に使われます。" -#: index.docbook:104 +#. Tag: term +#: architecture.xml:104 +#, no-c-format msgid "Persistent objects and collections" -msgstr "" +msgstr "Persistent objects と Collections" -#: index.docbook:106 -msgid "Short-lived, single threaded objects containing persistent state and business function. These might be ordinary JavaBeans/POJOs, the only special thing about them is that they are currently associated with (exactly one) Session. As soon as the Session is closed, they will be detached and free to use in any application layer (e.g. directly as data transfer objects to and from presentation)." +#. Tag: para +#: architecture.xml:106 +#, no-c-format +msgid "" +"Short-lived, single threaded objects containing persistent state and " +"business function. These might be ordinary JavaBeans/POJOs, the only special " +"thing about them is that they are currently associated with (exactly one) " +"Session. As soon as the Session is " +"closed, they will be detached and free to use in any application layer (e.g. " +"directly as data transfer objects to and from presentation)." msgstr "" +"永続化状態とビジネスメソッドを持つ、短命でシングルスレッドのオブジェクト。 こ" +"れは通常のJavaBeans/POJOのこともありますが、特徴的なことは、 その時点での(た" +"だ1つの) Session と関連していることです。 " +"Session がクローズされるとすぐに、 それらは切り離されて他" +"のアプリケーション層から自由に使うことができます。 (例えばデータ・トランス" +"ファ・オブジェクトとして、 プレゼンテーション層から、またはプレゼンテーション" +"層へ直接使用できます。)" -#: index.docbook:117 +#. Tag: term +#: architecture.xml:117 +#, no-c-format msgid "Transient and detached objects and collections" -msgstr "" +msgstr "Transient と detached な objects と Collections" -#: index.docbook:119 -msgid "Instances of persistent classes that are not currently associated with a Session. They may have been instantiated by the application and not (yet) persisted or they may have been instantiated by a closed Session." +#. Tag: para +#: architecture.xml:119 +#, no-c-format +msgid "" +"Instances of persistent classes that are not currently associated with a " +"Session. They may have been instantiated by the " +"application and not (yet) persisted or they may have been instantiated by a " +"closed Session." msgstr "" +"現時点では Session と関連していない、 永続クラスのインスタ" +"ンス。 すでにアプリケーション側でインスタンス化されていて、まだ永続化されてい" +"ないか、 クローズされた Session でインスタンス化されたかの" +"どちらかです。" -#: index.docbook:128 +#. Tag: term +#: architecture.xml:128 +#, no-c-format msgid "Transaction (org.hibernate.Transaction)" -msgstr "" +msgstr "Transaction (org.hibernate.Transaction)" -#: index.docbook:130 -msgid "(Optional) A single-threaded, short-lived object used by the application to specify atomic units of work. Abstracts application from underlying JDBC, JTA or CORBA transaction. A Session might span several Transactions in some cases. However, transaction demarcation, either using the underlying API or Transaction, is never optional!" +#. Tag: para +#: architecture.xml:130 +#, no-c-format +msgid "" +"(Optional) A single-threaded, short-lived object used by the application to " +"specify atomic units of work. Abstracts application from underlying JDBC, " +"JTA or CORBA transaction. A Session might span several " +"Transactions in some cases. However, transaction " +"demarcation, either using the underlying API or Transaction, is never optional!" msgstr "" +"(オプション)原子性を持つ作業単位(Unit of Work)を指定するために、アプリケー" +"ションが使用する、 シングルスレッドで短命なオブジェクト。 下に位置するJDBC、" +"JTA、CORBAトランザクションからアプリケーションを抽象化します。 " +"Session は、時には いくつかの Transaction をまたがるかもしれません。 しかし、下の層のAPIを使うにせよ、 " +"Transaction を使うにせよ、 トランザクション境界を設定する" +"ことは、決してオプションではありません!。" -#: index.docbook:141 -msgid "ConnectionProvider (org.hibernate.connection.ConnectionProvider)" +#. Tag: term +#: architecture.xml:141 +#, no-c-format +msgid "" +"ConnectionProvider (org.hibernate.connection.ConnectionProvider)" msgstr "" +"ConnectionProvider (org.hibernate.connection.ConnectionProvider)" -#: index.docbook:143 -msgid "(Optional) A factory for (and pool of) JDBC connections. Abstracts application from underlying Datasource or DriverManager. Not exposed to application, but can be extended/implemented by the developer." +#. Tag: para +#: architecture.xml:143 +#, no-c-format +msgid "" +"(Optional) A factory for (and pool of) JDBC connections. Abstracts " +"application from underlying Datasource or " +"DriverManager. Not exposed to application, but can be " +"extended/implemented by the developer." msgstr "" +"(オプション)JDBCコネクション(とそのプール)のファクトリ。 下の層に位置する " +"DatasourceDriverManager からアプリ" +"ケーションを抽象化します。 アプリケーションには公開されませんが、開発者が継承" +"または実装することは可能です。" -#: index.docbook:151 -msgid "TransactionFactory (org.hibernate.TransactionFactory)" +#. Tag: term +#: architecture.xml:151 +#, no-c-format +msgid "" +"TransactionFactory (org.hibernate.TransactionFactory)" msgstr "" +"TransactionFactory (org.hibernate.TransactionFactory)" -#: index.docbook:153 -msgid "(Optional) A factory for Transaction instances. Not exposed to the application, but can be extended/implemented by the developer." +#. Tag: para +#: architecture.xml:153 +#, no-c-format +msgid "" +"(Optional) A factory for Transaction instances. Not " +"exposed to the application, but can be extended/implemented by the developer." msgstr "" +"(オプション) Transaction インスタンスのファクトリ。 アプリ" +"ケーションには公開されませんが、開発者が継承または実装することは可能です。" -#: index.docbook:160 +#. Tag: emphasis +#: architecture.xml:160 +#, no-c-format msgid "Extension Interfaces" -msgstr "" +msgstr "Extension Interfaces" -#: index.docbook:162 -msgid "Hibernate offers many optional extension interfaces you can implement to customize the behavior of your persistence layer. See the API documentation for details." +#. Tag: para +#: architecture.xml:162 +#, no-c-format +msgid "" +"Hibernate offers many optional extension interfaces you can implement to " +"customize the behavior of your persistence layer. See the API documentation " +"for details." msgstr "" +"Hibernateは、永続層の振る舞いをカスタマイズするために、 多くのオプション拡張" +"インタフェースを用意しています。 詳細はAPIドキュメントを参照してください。" -#: index.docbook:171 -msgid "Given a \"lite\" architecture, the application bypasses the Transaction/TransactionFactory and/or ConnectionProvider APIs to talk to JTA or JDBC directly." +#. Tag: para +#: architecture.xml:171 +#, no-c-format +msgid "" +"Given a \"lite\" architecture, the application bypasses the " +"Transaction/TransactionFactory and/or " +"ConnectionProvider APIs to talk to JTA or JDBC directly." msgstr "" +"「軽い」アーキテクチャでは、アプリケーションは直接JTAやJDBCと対話するため" +"に、 TransactionTransactionFactory " +"や ConnectionProvider をバイパスします。" -#: index.docbook:179 +#. Tag: title +#: architecture.xml:179 +#, no-c-format msgid "Instance states" -msgstr "" +msgstr "インスタンスの状態" -#: index.docbook:180 -msgid "An instance of a persistent classes may be in one of three different states, which are defined with respect to a persistence context. The Hibernate Session object is the persistence context:" +#. Tag: para +#: architecture.xml:180 +#, no-c-format +msgid "" +"An instance of a persistent classes may be in one of three different states, " +"which are defined with respect to a persistence context. The Hibernate Session object is the " +"persistence context:" msgstr "" +"永続クラスのインスタンスは、次の3つの異なる状態のどれかになります。 それ" +"は、 永続コンテキスト によって決まります。 Hibernateの " +"Session オブジェクトが、永続コンテキストになります。" -#: index.docbook:188 +#. Tag: term +#: architecture.xml:188 +#, no-c-format msgid "transient" -msgstr "" +msgstr "transient" -#: index.docbook:190 -msgid "The instance is not, and has never been associated with any persistence context. It has no persistent identity (primary key value)." +#. Tag: para +#: architecture.xml:190 +#, no-c-format +msgid "" +"The instance is not, and has never been associated with any persistence " +"context. It has no persistent identity (primary key value)." msgstr "" +"この状態のインスタンスは、現在もそして過去においても、 永続コンテキストに関連" +"づいていません。また、永続ID(主キーの値)を 持っていません。" -#: index.docbook:198 +#. Tag: term +#: architecture.xml:198 +#, no-c-format msgid "persistent" -msgstr "" +msgstr "persistent" -#: index.docbook:200 -msgid "The instance is currently associated with a persistence context. It has a persistent identity (primary key value) and, perhaps, a corresponding row in the database. For a particular persistence context, Hibernate guarantees that persistent identity is equivalent to Java identity (in-memory location of the object)." +#. Tag: para +#: architecture.xml:200 +#, no-c-format +msgid "" +"The instance is currently associated with a persistence context. It has a " +"persistent identity (primary key value) and, perhaps, a corresponding row in " +"the database. For a particular persistence context, Hibernate " +"guarantees that persistent identity is equivalent to " +"Java identity (in-memory location of the object)." msgstr "" +"この状態のインスタンスは、その時点で永続コンテキストに関連づいています。 ま" +"た、永続ID(主キーの値)を持ち、 たいていはデータベースに対応する行を持ってい" +"るでしょう。 個々の永続コンテキストのなかでは、永続IDが JavaのID(オブジェク" +"トのメモリ上の位置)と同じであることを Hibernateが 保証 " +"します。" -#: index.docbook:212 +#. Tag: term +#: architecture.xml:212 +#, no-c-format msgid "detached" -msgstr "" +msgstr "detached" -#: index.docbook:214 -msgid "The instance was once associated with a persistence context, but that context was closed, or the instance was serialized to another process. It has a persistent identity and, perhaps, a corrsponding row in the database. For detached instances, Hibernate makes no guarantees about the relationship between persistent identity and Java identity." +#. Tag: para +#: architecture.xml:214 +#, no-c-format +msgid "" +"The instance was once associated with a persistence context, but that " +"context was closed, or the instance was serialized to another process. It " +"has a persistent identity and, perhaps, a corrsponding row in the database. " +"For detached instances, Hibernate makes no guarantees about the relationship " +"between persistent identity and Java identity." msgstr "" +"この状態のインスタンスは、かつて永続コンテキストに関連づけられたが、 そのコン" +"テキストがクローズされたか、あるいは、 他のプロセスにそのインスタンスがシリア" +"ライズされたかです。 このインスタンスは、永続IDを持ち、たいていはデータベース" +"に 対応する行を持っているでしょう。分離インスタンスに対しては、 永続IDとJava" +"のIDとの関連は、Hibernateが保証しません。" -#: index.docbook:229 +#. Tag: title +#: architecture.xml:229 +#, no-c-format msgid "JMX Integration" -msgstr "" +msgstr "JMXとの統合" -#: index.docbook:231 -msgid "JMX is the J2EE standard for management of Java components. Hibernate may be managed via a JMX standard service. We provide an MBean implementation in the distribution, org.hibernate.jmx.HibernateService." +#. Tag: para +#: architecture.xml:231 +#, no-c-format +msgid "" +"JMX is the J2EE standard for management of Java components. Hibernate may be " +"managed via a JMX standard service. We provide an MBean implementation in " +"the distribution, org.hibernate.jmx.HibernateService." msgstr "" +"JMXはJavaコンポーネント管理のJ2EE標準です。 JMX標準サービスを通して、" +"Hibernateは管理されます。 ディストリビューションの中に org." +"hibernate.jmx.HibernateService という MBean実装を用意しています。" -#: index.docbook:237 -msgid "For an example how to deploy Hibernate as a JMX service on the JBoss Application Server, please see the JBoss User Guide. On JBoss AS, you also get these benefits if you deploy using JMX:" +#. Tag: para +#: architecture.xml:237 +#, no-c-format +msgid "" +"For an example how to deploy Hibernate as a JMX service on the JBoss " +"Application Server, please see the JBoss User Guide. On JBoss AS, you also " +"get these benefits if you deploy using JMX:" msgstr "" +"JBoss アプリケーションサーバー上にHibernateをJMXサービスとしてデプロイする方" +"法の例としては、 JBoss ユーザガイドを参照してください。 JBoss アプリケーショ" +"ンサーバーにおいて、 JMXを使ってデプロイすると、次のメリットが得られます。" -#: index.docbook:245 -msgid "Session Management: The Hibernate Session's life cycle can be automatically bound to the scope of a JTA transaction. This means you no longer have to manually open and close the Session, this becomes the job of a JBoss EJB interceptor. You also don't have to worry about transaction demarcation in your code anymore (unless you'd like to write a portable persistence layer of course, use the optional Hibernate Transaction API for this). You call the HibernateContext to access a Session." +#. Tag: para +#: architecture.xml:245 +#, no-c-format +msgid "" +"Session Management: The Hibernate Session's life cycle can be automatically bound to the scope of a JTA " +"transaction. This means you no longer have to manually open and close the " +"Session, this becomes the job of a JBoss EJB interceptor. " +"You also don't have to worry about transaction demarcation in your code " +"anymore (unless you'd like to write a portable persistence layer of course, " +"use the optional Hibernate Transaction API for this). You " +"call the HibernateContext to access a Session." msgstr "" +"セッション管理: Hibernateの Session " +"のライフサイクルは、 自動的にJTAトランザクションのスコープに結びつけられま" +"す。これは、もはや手動で Session をオープンしたり、クロー" +"ズしたりする必要がないことを意味します。 これは、JBoss EJB インターセプタの仕" +"事になります。 また、コードのどこでトランザクション境界を設定するかについ" +"て、 もはや悩む必要がありません(もちろん移植可能な永続層を書かかなくていいの" +"ならば、 オプションのHibernateの Transaction を使用してく" +"ださい。) Session にアクセスするためには、 " +"HibernateContext を コールしてください。" -#: index.docbook:257 -msgid "HAR deployment: Usually you deploy the Hibernate JMX service using a JBoss service deployment descriptor (in an EAR and/or SAR file), it supports all the usual configuration options of a Hibernate SessionFactory. However, you still have to name all your mapping files in the deployment descriptor. If you decide to use the optional HAR deployment, JBoss will automatically detect all mapping files in your HAR file." +#. Tag: para +#: architecture.xml:257 +#, no-c-format +msgid "" +"HAR deployment: Usually you deploy the Hibernate JMX " +"service using a JBoss service deployment descriptor (in an EAR and/or SAR " +"file), it supports all the usual configuration options of a Hibernate " +"SessionFactory. However, you still have to name all your " +"mapping files in the deployment descriptor. If you decide to use the " +"optional HAR deployment, JBoss will automatically detect all mapping files " +"in your HAR file." msgstr "" +"HAR デプロイ: 通常、(EAR または SAR ファイルにある)" +"JBoss サービス デプロイメントディスクリプタを使って、Hibernate JMX サービスを" +"デプロイします。 それは、Hibernateの SessionFactory の全て" +"の一般的な設定オプションを サポートします。しかし依然としてデプロイメントディ" +"スクリプタのなかにすべてのマッピングファイルの 名前を挙げる必要があります。 " +"もし、オプションのHARデプロイメントを使うことを決めたなら、 JBossは自動的に" +"HARファイルのなかの全てのマッピングファイルを検出します。" -#: index.docbook:268 -msgid "Consult the JBoss AS user guide for more information about these options." +#. Tag: para +#: architecture.xml:268 +#, no-c-format +msgid "" +"Consult the JBoss AS user guide for more information about these options." msgstr "" +"これらのオプションについての詳細な情報は、JBossアプリケーションサーバユーザガ" +"イドを 参考にしてください。" -#: index.docbook:272 -msgid "Another feature available as a JMX service are runtime Hibernate statistics. See ." +#. Tag: para +#: architecture.xml:272 +#, no-c-format +msgid "" +"Another feature available as a JMX service are runtime Hibernate statistics. " +"See ." msgstr "" +"JMXサービスとして利用可能な他の機能に、Hibernate実行時統計情報があります。 " +" を見てください。" -#: index.docbook:279 +#. Tag: title +#: architecture.xml:279 +#, no-c-format msgid "JCA Support" -msgstr "" +msgstr "JCA サポート" -#: index.docbook:280 -msgid "Hibernate may also be configured as a JCA connector. Please see the website for more details. Please note that Hibernate JCA support is still considered experimental." +#. Tag: para +#: architecture.xml:280 +#, no-c-format +msgid "" +"Hibernate may also be configured as a JCA connector. Please see the website " +"for more details. Please note that Hibernate JCA support is still considered " +"experimental." msgstr "" +"Hibernate は JCA コネクタとしても設定できます。詳細については、Webサイトを見" +"てください。 Hibernate JCA サポートは、今のところ実験段階として考えられている" +"ことに注意してください。" -#: index.docbook:287 +#. Tag: title +#: architecture.xml:287 +#, no-c-format msgid "Contextual Sessions" +msgstr "コンテキスト上のセッション" + +#. Tag: para +#: architecture.xml:288 +#, no-c-format +msgid "" +"Most applications using Hibernate need some form of \"contextual\" sessions, " +"where a given session is in effect throughout the scope of a given context. " +"However, across applications the definition of what constitutes a context is " +"typically different; and different contexts define different scopes to the " +"notion of current. Applications using Hibernate prior to version 3.0 tended " +"to utilize either home-grown ThreadLocal-based contextual " +"sessions, helper classes such as HibernateUtil, or " +"utilized third-party frameworks (such as Spring or Pico) which provided " +"proxy/interception-based contextual sessions." msgstr "" +"Hibernate を使ったアプリケーションは、ほとんど、なんらかの形で\"コンテキスト" +"上の\"セッションが必要になります。 「コンテキスト上のセッション」は、特定のコ" +"ンテキストのスコープのなかで有効なセッションのことです。 しかし、通常アプリ" +"ケーションごとにコンテキストを構成するものの定義は異なります。 しかも、異なる" +"複数のコンテキストは、現時点に対して異なるスコープを定義します。 バージョン" +"3.0より前の Hibernate では、自作の ThreadLocal ベースの" +"「コンテキスト上のセッション」を 利用するか、 HibernateUtil のようなヘルパークラスを利用するか、 proxy/interception ベースの「コ" +"ンテキスト上のセッション」を提供する (Spring や Pico のような)サードパー" +"ティのフレームワークを利用するかのいずれかでした。" -#: index.docbook:288 -msgid "Most applications using Hibernate need some form of \"contextual\" sessions, where a given session is in effect throughout the scope of a given context. However, across applications the definition of what constitutes a context is typically different; and different contexts define different scopes to the notion of current. Applications using Hibernate prior to version 3.0 tended to utilize either home-grown ThreadLocal-based contextual sessions, helper classes such as HibernateUtil, or utilized third-party frameworks (such as Spring or Pico) which provided proxy/interception-based contextual sessions." +#. Tag: para +#: architecture.xml:297 +#, no-c-format +msgid "" +"Starting with version 3.0.1, Hibernate added the SessionFactory." +"getCurrentSession() method. Initially, this assumed usage of " +"JTA transactions, where the JTA " +"transaction defined both the scope and context of a current session. The " +"Hibernate team maintains that, given the maturity of the numerous stand-" +"alone JTA TransactionManager implementations out there, " +"most (if not all) applications should be using JTA " +"transaction management whether or not they are deployed into a " +"J2EE container. Based on that, the JTA-" +"based contextual sessions is all you should ever need to use." msgstr "" +"バージョン 3.0.1 から、Hibernate には SessionFactory." +"getCurrentSession() が 加わりました。 これは、 JTA トランザクションの使用を前提にしています。 JTA ト" +"ランザクションは、現在のセッションのスコープとコンテキストの両方を定義しま" +"す。 Hibernate チームは、次のことを主張します。 巨大なスタンドアロンの " +"JTA TransactionManager 実装が成熟したら、 J2EE コンテナ上にデプロイされるかどうかにかかわらず、 ほとんどの(すべて" +"とは言わないが)アプリケーションが、 JTA トランザクション" +"管理を使用すべきであると。 この考えに基づくと、 JTA ベース" +"の「コンテキスト上のセッション」を 使うしかないでしょう。" -#: index.docbook:297 -msgid "Starting with version 3.0.1, Hibernate added the SessionFactory.getCurrentSession() method. Initially, this assumed usage of JTA transactions, where the JTA transaction defined both the scope and context of a current session. The Hibernate team maintains that, given the maturity of the numerous stand-alone JTA TransactionManager implementations out there, most (if not all) applications should be using JTA transaction management whether or not they are deployed into a J2EE container. Based on that, the JTA-based contextual sessions is all you should ever need to use." +#. Tag: para +#: architecture.xml:307 +#, no-c-format +msgid "" +"However, as of version 3.1, the processing behind SessionFactory." +"getCurrentSession() is now pluggable. To that end, a new extension " +"interface (org.hibernate.context.CurrentSessionContext) " +"and a new configuration parameter (hibernate." +"current_session_context_class) have been added to allow " +"pluggability of the scope and context of defining current sessions." msgstr "" +"しかし、バージョン 3.1 からは、 SessionFactory.getCurrentSession() の後の処理が、 プラガブルになりました。 これを受けて、現在のセッショ" +"ンを定義するスコープとコンテキストのプラガビリティを可能にするために、 新しい" +"拡張インタフェース ( org.hibernate.context.CurrentSessionContext ) と 新しい構成パラメータ ( hibernate." +"current_session_context_class ) が追加されました。" -#: index.docbook:307 -msgid "However, as of version 3.1, the processing behind SessionFactory.getCurrentSession() is now pluggable. To that end, a new extension interface (org.hibernate.context.CurrentSessionContext) and a new configuration parameter (hibernate.current_session_context_class) have been added to allow pluggability of the scope and context of defining current sessions." +#. Tag: para +#: architecture.xml:314 +#, no-c-format +msgid "" +"See the Javadocs for the org.hibernate.context." +"CurrentSessionContext interface for a detailed discussion of its " +"contract. It defines a single method, currentSession(), " +"by which the implementation is responsible for tracking the current " +"contextual session. Out-of-the-box, Hibernate comes with three " +"implementations of this interface." msgstr "" +"org.hibernate.context.CurrentSessionContext インタフェース" +"の規約についての 詳細な内容は Javadoc を参照してください。 それには、 " +"currentSession() という1つのメソッドが定義されており、 そ" +"の実装は、現在の「コンテキスト上のセッション」を追跡することに責任を持ちま" +"す。 そのまま使えるように、Hibernateはこのインタフェースの実装を2つ提供してい" +"ます。" -#: index.docbook:314 -msgid "See the Javadocs for the org.hibernate.context.CurrentSessionContext interface for a detailed discussion of its contract. It defines a single method, currentSession(), by which the implementation is responsible for tracking the current contextual session. Out-of-the-box, Hibernate comes with three implementations of this interface." +#. Tag: para +#: architecture.xml:324 +#, no-c-format +msgid "" +"org.hibernate.context.JTASessionContext - current " +"sessions are tracked and scoped by a JTA transaction. The " +"processing here is exactly the same as in the older JTA-only approach. See " +"the Javadocs for details." msgstr "" +"org.hibernate.context.JTASessionContext - JTA トランザクションによって、現在のセッションが追跡され、 スコープを決" +"められます。この処理は、古いJTAだけのアプローチとまったく同じです。 詳細は" +"Javadocを参照してください。" -#: index.docbook:324 -msgid "org.hibernate.context.JTASessionContext - current sessions are tracked and scoped by a JTA transaction. The processing here is exactly the same as in the older JTA-only approach. See the Javadocs for details." +#. Tag: para +#: architecture.xml:332 +#, no-c-format +msgid "" +"org.hibernate.context.ThreadLocalSessionContext - current " +"sessions are tracked by thread of execution. Again, see the Javadocs for " +"details." msgstr "" +"org.hibernate.context.ThreadLocalSessionContext - スレッド" +"の実行によって、現在のセッションが追跡されます。 詳細はJavadocを参照してくだ" +"さい。" -#: index.docbook:332 -msgid "org.hibernate.context.ThreadLocalSessionContext - current sessions are tracked by thread of execution. Again, see the Javadocs for details." +#. Tag: para +#: architecture.xml:338 +#, no-c-format +msgid "" +"org.hibernate.context.ManagedSessionContext - current " +"sessions are tracked by thread of execution. However, you are responsible to " +"bind and unbind a Session instance with static methods on " +"this class, it does never open, flush, or close a Session." msgstr "" +"org.hibernate.context.ManagedSessionContext - スレッドの実" +"行によって、現在のセッションが追跡されます。 しかし、このクラスのstaticメソッ" +"ドで Session インスタンスを バインド/アンバインドする責任" +"はあなたにあります。 これは決して Session をオープン、フ" +"ラッシュ、クローズしません。" -#: index.docbook:338 -msgid "org.hibernate.context.ManagedSessionContext - current sessions are tracked by thread of execution. However, you are responsible to bind and unbind a Session instance with static methods on this class, it does never open, flush, or close a Session." +#. Tag: para +#: architecture.xml:347 +#, no-c-format +msgid "" +"The first two implementations provide a \"one session - one database " +"transaction\" programming model, also known and used as session-" +"per-request. The beginning and end of a Hibernate session is " +"defined by the duration of a database transaction. If you use programatic " +"transaction demarcation in plain JSE without JTA, you are adviced to use the " +"Hibernate Transaction API to hide the underlying " +"transaction system from your code. If you use JTA, use the JTA interfaces to " +"demarcate transactions. If you execute in an EJB container that supports " +"CMT, transaction boundaries are defined declaratively and you don't need any " +"transaction or session demarcation operations in your code. Refer to for more information and code examples." msgstr "" +"始めの2つの実装は、\"1セッション - 1データベーストランザクション\" プログラミ" +"ングモデルを提供します。 これは リクエストごとのセッション" +"(session-per-request) としても知られており、使われています。 " +"Hibernate セッションの開始と終了は、データベーストランザクションの期間で決ま" +"ります。 JTAを使わない普通のJSEで、プログラム上のトランザクション境界設定を行" +"うなら、 コードから基礎のトランザクションシステムを隠蔽するために、 " +"Hibernate Transaction APIを使うとよいでしょう。 JTAを使う" +"なら、トランザクションの境界設定には、JTAインターフェイスを使ってください。 " +"CMTをサポートするEJBコンテナで実行するつもりなら、トランザクション境界は宣言" +"的に定義できるため、 コード上でトランザクションやセッションの境界を設定する必" +"要はありません。 さらに詳細な情報やコードの例は、 を参照してください。" -#: index.docbook:347 -msgid "The first two implementations provide a \"one session - one database transaction\" programming model, also known and used as session-per-request. The beginning and end of a Hibernate session is defined by the duration of a database transaction. If you use programatic transaction demarcation in plain JSE without JTA, you are adviced to use the Hibernate Transaction API to hide the underlying transaction system from your code. If you use JTA, use the JTA interfaces to demarcate transactions. If you execute in an EJB container that supports CMT, transaction boundaries are defined declaratively and you don't need any transaction or session demarcation operations in your code. Refer to for more information and code examples." +#. Tag: para +#: architecture.xml:359 +#, no-c-format +msgid "" +"The hibernate.current_session_context_class configuration " +"parameter defines which org.hibernate.context." +"CurrentSessionContext implementation should be used. Note that for " +"backwards compatibility, if this config param is not set but a org." +"hibernate.transaction.TransactionManagerLookup is configured, " +"Hibernate will use the org.hibernate.context.JTASessionContext. Typically, the value of this parameter would just name the " +"implementation class to use; for the three out-of-the-box implementations, " +"however, there are three corresponding short names, \"jta\", \"thread\", and " +"\"managed\"." msgstr "" - -#: index.docbook:359 -msgid "The hibernate.current_session_context_class configuration parameter defines which org.hibernate.context.CurrentSessionContext implementation should be used. Note that for backwards compatibility, if this config param is not set but a org.hibernate.transaction.TransactionManagerLookup is configured, Hibernate will use the org.hibernate.context.JTASessionContext. Typically, the value of this parameter would just name the implementation class to use; for the three out-of-the-box implementations, however, there are three corresponding short names, \"jta\", \"thread\", and \"managed\"." -msgstr "" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" - +"hibernate.current_session_context_class 設定パラメータ" +"は、 org.hibernate.context.CurrentSessionContext のどの実" +"装を使うかを指定します。 下位互換性のため、このパラメータが設定されず " +"org.hibernate.transaction.TransactionManagerLookup が設定" +"されていた場合、 Hibernateは org.hibernate.context." +"JTASessionContext を使うことに注意してください。 通常このパラメータ" +"の値には、3つの実装の中から使用する実装クラスの名前を直接指定します。 しか" +"し、\"jta\", \"thread\", \"managed\"というそれぞれの省略名も用意されていま" +"す。" diff --git a/documentation/manual/translations/ja-JP/content/association_mapping.po b/documentation/manual/translations/ja-JP/content/association_mapping.po index 667e6ae78a..f65d7770a1 100644 --- a/documentation/manual/translations/ja-JP/content/association_mapping.po +++ b/documentation/manual/translations/ja-JP/content/association_mapping.po @@ -1,952 +1,874 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:6 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: association_mapping.xml:6 +#, no-c-format msgid "Association Mappings" msgstr "関連マッピング" -#: index.docbook:9 +#. Tag: title +#: association_mapping.xml:9 +#, no-c-format msgid "Introduction" msgstr "イントロダクション" -#: index.docbook:11 -msgid "Association mappings are the often most difficult thing to get right. In this section we'll go through the canonical cases one by one, starting with unidirectional mappings, and then considering the bidirectional cases. We'll use Person and Address in all the examples." -msgstr "関連マッピングはしばしば理解が最も難しいものになります。 この章では、基本的な一つ一つのケースについて述べます。 単方向のマッピングから始め、それから双方向のケースについて考えていきます。 例として、PersonAddress を用います。" +#. Tag: para +#: association_mapping.xml:11 +#, no-c-format +msgid "" +"Association mappings are the often most difficult thing to get right. In " +"this section we'll go through the canonical cases one by one, starting with " +"unidirectional mappings, and then considering the bidirectional cases. We'll " +"use Person and Address in all the " +"examples." +msgstr "" +"関連マッピングはしばしば理解が最も難しいものになります。 この章では、基本的な" +"一つ一つのケースについて述べます。 単方向のマッピングから始め、それから双方向" +"のケースについて考えていきます。 例として、Person と " +"Address を用います。" -#: index.docbook:19 -msgid "We'll classify associations by whether or not they map to an intervening join table, and by multiplicity." -msgstr "関連は、結合テーブルを入れるかかどうかと、 多重度によって分類することにします。" +#. Tag: para +#: association_mapping.xml:19 +#, no-c-format +msgid "" +"We'll classify associations by whether or not they map to an intervening " +"join table, and by multiplicity." +msgstr "" +"関連は、結合テーブルを入れるかかどうかと、 多重度によって分類することにしま" +"す。" -#: index.docbook:24 -msgid "Nullable foreign keys are not considered good practice in traditional data modelling, so all our examples use not null foreign keys. This is not a requirement of Hibernate, and the mappings will all work if you drop the nullability constraints." -msgstr "すべての例でnot nullの外部キーを使用します。 これはHibernateの要件ではありません。 not null制約を外したとしても、マッピングは問題なく動作します。" +#. Tag: para +#: association_mapping.xml:24 +#, no-c-format +msgid "" +"Nullable foreign keys are not considered good practice in traditional data " +"modelling, so all our examples use not null foreign keys. This is not a " +"requirement of Hibernate, and the mappings will all work if you drop the " +"nullability constraints." +msgstr "" +"すべての例でnot nullの外部キーを使用します。 これはHibernateの要件ではありま" +"せん。 not null制約を外したとしても、マッピングは問題なく動作します。" -#: index.docbook:34 +#. Tag: title +#: association_mapping.xml:34 +#, no-c-format msgid "Unidirectional associations" msgstr "単方向関連" -#: index.docbook:37, index.docbook:108 +#. Tag: title +#: association_mapping.xml:37 association_mapping.xml:108 +#, no-c-format msgid "many to one" -msgstr "多対一" +msgstr "多対一" -#: index.docbook:39 -msgid "A unidirectional many-to-one association is the most common kind of unidirectional association." -msgstr "単方向多対一関連 は単方向関連の中で最も一般的なものです。" - -#: index.docbook:44 +#. Tag: para +#: association_mapping.xml:39 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" +"A unidirectional many-to-one association is the most " +"common kind of unidirectional association." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"単方向多対一関連 は単方向関連の中で最も一般的なもので" +"す。" -#: index.docbook:45, index.docbook:161 +#. Tag: programlisting +#: association_mapping.xml:44 +#, no-c-format msgid "" - "" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "" -#: index.docbook:50, index.docbook:121, index.docbook:185, index.docbook:225 +#. Tag: programlisting +#: association_mapping.xml:45 association_mapping.xml:161 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: association_mapping.xml:50 association_mapping.xml:121 +#: association_mapping.xml:185 association_mapping.xml:225 +#, no-c-format msgid "one to one" -msgstr "一対一" +msgstr "一対一" -#: index.docbook:52 -msgid "A unidirectional one-to-one association on a foreign key is almost identical. The only difference is the column unique constraint." -msgstr "外部キーの単方向一対一関連 はほとんど同じものです。 唯一違うのは、カラムのユニークな制約です。" - -#: index.docbook:57 +#. Tag: para +#: association_mapping.xml:52 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" +"A unidirectional one-to-one association on a foreign key is almost identical. The only difference is the column unique " +"constraint." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"外部キーの単方向一対一関連 はほとんど同じものです。 唯一" +"違うのは、カラムのユニークな制約です。" -#: index.docbook:58, index.docbook:193 +#. Tag: programlisting +#: association_mapping.xml:57 +#, no-c-format msgid "" - "" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "" -#: index.docbook:60 -msgid "A unidirectional one-to-one association on a primary key usually uses a special id generator. (Notice that we've reversed the direction of the association in this example.)" -msgstr "主キーの単方向一対一関連 は通常、特別なIDジェネレータを使います。 (この例では関連の方向が逆になっていることに注意してください)" - -#: index.docbook:66 +#. Tag: programlisting +#: association_mapping.xml:58 association_mapping.xml:193 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " person\n" - " \n" - " \n" - " \n" - "]]>" +"" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " person \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:67, index.docbook:201 +#. Tag: para +#: association_mapping.xml:60 +#, no-c-format msgid "" - "" +"A unidirectional one-to-one association on a primary key usually uses a special id generator. (Notice that we've reversed " +"the direction of the association in this example.)" msgstr "" - "" +"主キーの単方向一対一関連 は通常、特別なIDジェネレータを" +"使います。 (この例では関連の方向が逆になっていることに注意してください)" -#: index.docbook:72, index.docbook:94 +#. Tag: programlisting +#: association_mapping.xml:66 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" person\n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: programlisting +#: association_mapping.xml:67 association_mapping.xml:201 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: association_mapping.xml:72 association_mapping.xml:94 +#, no-c-format msgid "one to many" -msgstr "一対多" +msgstr "一対多" -#: index.docbook:74 -msgid "A unidirectional one-to-many association on a foreign key is a very unusual case, and is not really recommended." -msgstr "外部キーの単方向一対多関連 はとても特殊なケースで、 あまり推奨されていません。" - -#: index.docbook:79 +#. Tag: para +#: association_mapping.xml:74 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" +"A unidirectional one-to-many association on a foreign key is a very unusual case, and is not really recommended." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"外部キーの単方向一対多関連 はとても特殊なケースで、 あま" +"り推奨されていません。" -#: index.docbook:80 +#. Tag: programlisting +#: association_mapping.xml:79 +#, no-c-format msgid "" - "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "" -#: index.docbook:82 +#. Tag: programlisting +#: association_mapping.xml:80 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: association_mapping.xml:82 +#, no-c-format msgid "We think it's better to use a join table for this kind of association." msgstr "このような関連のために結合テーブルを使うことをお薦めします。" -#: index.docbook:91 +#. Tag: title +#: association_mapping.xml:91 +#, no-c-format msgid "Unidirectional associations with join tables" msgstr "結合テーブルを使った単方向関連" -#: index.docbook:96 -msgid "A unidirectional one-to-many association on a join table is much preferred. Notice that by specifying unique=\"true\", we have changed the multiplicity from many-to-many to one-to-many." -msgstr "結合テーブルを使った単方向一対多関連 はより好ましいです。 unique=\"true\" の指定により、多重度が多対多から一対多 に変わったことに注意して下さい。" - -#: index.docbook:102 +#. Tag: para +#: association_mapping.xml:96 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" +"A unidirectional one-to-many association on a join table is much preferred. Notice that by specifying unique=\"true" +"\", we have changed the multiplicity from many-to-many to one-to-" +"many." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"結合テーブルを使った単方向一対多関連 はより好ましいで" +"す。 unique=\"true\" の指定により、多重度が多対多から一対" +"多 に変わったことに注意して下さい。" -#: index.docbook:103 +#. Tag: programlisting +#: association_mapping.xml:102 +#, no-c-format msgid "" - "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "" -#: index.docbook:110 -msgid "A unidirectional many-to-one association on a join table is quite common when the association is optional." -msgstr "結合テーブルの単方向多対一関連 は 関連が任意であるときに非常に一般的なものです。" - -#: index.docbook:115 +#. Tag: programlisting +#: association_mapping.xml:103 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" +"" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:116 +#. Tag: para +#: association_mapping.xml:110 +#, no-c-format msgid "" - "" +"A unidirectional many-to-one association on a join table is quite common when the association is optional." msgstr "" - "" +"結合テーブルの単方向多対一関連 は 関連が任意であるときに" +"非常に一般的なものです。" -#: index.docbook:123 -msgid "A unidirectional one-to-one association on a join table is extremely unusual, but possible." -msgstr "結合テーブルの単方向一対一関連 は、本当に特殊ですが 不可能ではありません。" - -#: index.docbook:128 +#. Tag: programlisting +#: association_mapping.xml:115 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:129, index.docbook:233 +#. Tag: programlisting +#: association_mapping.xml:116 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:134, index.docbook:238 +#. Tag: para +#: association_mapping.xml:123 +#, no-c-format +msgid "" +"A unidirectional one-to-one association on a join table " +"is extremely unusual, but possible." +msgstr "" +"結合テーブルの単方向一対一関連 は、本当に特殊ですが 不可" +"能ではありません。" + +#. Tag: programlisting +#: association_mapping.xml:128 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: programlisting +#: association_mapping.xml:129 association_mapping.xml:233 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: association_mapping.xml:134 association_mapping.xml:238 +#, no-c-format msgid "many to many" -msgstr "多対多" +msgstr "多対多" -#: index.docbook:136 -msgid "Finally, we have a unidirectional many-to-many association." +#. Tag: para +#: association_mapping.xml:136 +#, no-c-format +msgid "" +"Finally, we have a unidirectional many-to-many association." msgstr "最後に、単方向多対多関連 を示します。" -#: index.docbook:140 +#. Tag: programlisting +#: association_mapping.xml:140 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:141, index.docbook:246 +#. Tag: programlisting +#: association_mapping.xml:141 association_mapping.xml:246 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:148 +#. Tag: title +#: association_mapping.xml:148 +#, no-c-format msgid "Bidirectional associations" msgstr "双方向関連" -#: index.docbook:151, index.docbook:211 +#. Tag: title +#: association_mapping.xml:151 association_mapping.xml:211 +#, no-c-format msgid "one to many / many to one" msgstr "一対多/多対一" -#: index.docbook:153 -msgid "A bidirectional many-to-one association is the most common kind of association. (This is the standard parent/child relationship.)" -msgstr "双方向多対一関連 は最も一般的な関連です。 (標準的な親子関係です)" - -#: index.docbook:159 +#. Tag: para +#: association_mapping.xml:153 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"A bidirectional many-to-one association is the most " +"common kind of association. (This is the standard parent/child relationship.)" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"双方向多対一関連 は最も一般的な関連です。 (標準的な親子" +"関係です)" -#: index.docbook:163 -msgid "If you use a List (or other indexed collection) you need to set the key column of the foreign key to not null, and let Hibernate manage the association from the collections side to maintain the index of each element (making the other side virtually inverse by setting update=\"false\" and insert=\"false\"):" -msgstr "List (または他のインデックス付きのコレクション)を使うなら、 外部キーの key カラムを not null に設定し、 コレクション側が各要素のインデックスをメンテナンスするように、 関連を扱う必要があります (update=\"false\" かつ insert=\"false\" と設定して、反対側を仮想的にinverseにします):" - -#: index.docbook:171 +#. Tag: programlisting +#: association_mapping.xml:159 +#, no-c-format msgid "" - "\n" - " \n" - " ...\n" - " \n" - "\n" - "\n" - "\n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " ... \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ... \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:173 -msgid "It is important that you define not-null=\"true\" on the <key> element of the collection mapping if the underlying foreign key column is NOT NULL. Don't only declare not-null=\"true\" on a possible nested <column> element, but on the <key> element." -msgstr "もし外部キーカラムが NOT NULL であるならば、 コレクションマッピングの <key> 要素を not-null=\"true\" にすることは重要です。 入れ子になった <column> 要素だけではなく、 <key> 要素も not-null=\"true\" と定義しないようにしてください。" +#. Tag: para +#: association_mapping.xml:163 +#, no-c-format +msgid "" +"If you use a List (or other indexed collection) you need " +"to set the key column of the foreign key to not " +"null, and let Hibernate manage the association from the " +"collections side to maintain the index of each element (making the other " +"side virtually inverse by setting update=\"false\" and " +"insert=\"false\"):" +msgstr "" +"List (または他のインデックス付きのコレクション)を使うな" +"ら、 外部キーの key カラムを not null " +"に設定し、 コレクション側が各要素のインデックスをメンテナンスするように、 関" +"連を扱う必要があります (update=\"false\" かつ " +"insert=\"false\" と設定して、反対側を仮想的にinverseにしま" +"す):" -#: index.docbook:187 -msgid "A bidirectional one-to-one association on a foreign key is quite common." +#. Tag: programlisting +#: association_mapping.xml:171 +#, no-c-format +msgid "" +"\n" +" \n" +" ...\n" +" \n" +"\n" +"\n" +"\n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: association_mapping.xml:173 +#, no-c-format +msgid "" +"It is important that you define not-null=\"true\" on the " +"<key> element of the collection mapping if the " +"underlying foreign key column is NOT NULL. Don't only " +"declare not-null=\"true\" on a possible nested " +"<column> element, but on the <key> element." +msgstr "" +"もし外部キーカラムが NOT NULL であるならば、 コレクション" +"マッピングの <key> 要素を not-null=\"true" +"\" にすることは重要です。 入れ子になった <column> 要素だけではなく、 <key> 要素も " +"not-null=\"true\" と定義しないようにしてください。" + +#. Tag: para +#: association_mapping.xml:187 +#, no-c-format +msgid "" +"A bidirectional one-to-one association on a foreign key " +"is quite common." msgstr "外部キーの双方向一対一関連 は非常に一般的です。" -#: index.docbook:192 +#. Tag: programlisting +#: association_mapping.xml:192 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:195 -msgid "A bidirectional one-to-one association on a primary key uses the special id generator." -msgstr "主キーの双方向一対一関連 は特殊なIDジェネレータを使います。" - -#: index.docbook:200 +#. Tag: para +#: association_mapping.xml:195 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " person\n" - " \n" - " \n" - " \n" - "]]>" +"A bidirectional one-to-one association on a primary key " +"uses the special id generator." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " person \n" - " \n" - " \n" - " \n" - "]]>" +"主キーの双方向一対一関連 は特殊なIDジェネレータを使いま" +"す。" -#: index.docbook:208 +#. Tag: programlisting +#: association_mapping.xml:200 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" person\n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: title +#: association_mapping.xml:208 +#, no-c-format msgid "Bidirectional associations with join tables" msgstr "結合テーブルを使った双方向関連" -#: index.docbook:213 -msgid "A bidirectional one-to-many association on a join table. Note that the inverse=\"true\" can go on either end of the association, on the collection, or on the join." -msgstr "結合テーブルの双方向一対多関連 です。 inverse=\"true\" が関連端、コレクション、結合のいずれかに 設定できることに注意してください。" - -#: index.docbook:219 +#. Tag: para +#: association_mapping.xml:213 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"A bidirectional one-to-many association on a join table. Note that the inverse=\"true\" can go on " +"either end of the association, on the collection, or on the join." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"結合テーブルの双方向一対多関連 です。 inverse=" +"\"true\" が関連端、コレクション、結合のいずれかに 設定できることに" +"注意してください。" -#: index.docbook:220 +#. Tag: programlisting +#: association_mapping.xml:219 +#, no-c-format msgid "" - "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "" -#: index.docbook:227 -msgid "A bidirectional one-to-one association on a join table is extremely unusual, but possible." -msgstr "結合テーブルの双方向一対一関連 は非常に特殊ですが、可能です。" - -#: index.docbook:232 +#. Tag: programlisting +#: association_mapping.xml:220 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:240 -msgid "Finally, we have a bidirectional many-to-many association." +#. Tag: para +#: association_mapping.xml:227 +#, no-c-format +msgid "" +"A bidirectional one-to-one association on a join table " +"is extremely unusual, but possible." +msgstr "" +"結合テーブルの双方向一対一関連 は非常に特殊ですが、可能" +"です。" + +#. Tag: programlisting +#: association_mapping.xml:232 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: association_mapping.xml:240 +#, no-c-format +msgid "" +"Finally, we have a bidirectional many-to-many association." msgstr "最後に、双方向多対多関連 を示します。" -#: index.docbook:244 +#. Tag: programlisting +#: association_mapping.xml:244 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:253 +#. Tag: title +#: association_mapping.xml:253 +#, no-c-format msgid "More complex association mappings" msgstr "より複雑な関連マッピング" -#: index.docbook:255 -msgid "More complex association joins are extremely rare. Hibernate makes it possible to handle more complex situations using SQL fragments embedded in the mapping document. For example, if a table with historical account information data defines accountNumber, effectiveEndDate and effectiveStartDatecolumns, mapped as follows:" -msgstr "より複雑な関連結合は 極めて 稀です。 マッピングドキュメントにSQL文を埋め込むことで、 さらに複雑な状況を扱うことができます。 例えば、accountNumber, effectiveEndDate, effectiveStartDate カラムを持つaccount(口座)情報の履歴を扱うテーブルは、 以下のようにマッピングします。" - -#: index.docbook:264 +#. Tag: para +#: association_mapping.xml:255 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " case when effectiveEndDate is null then 1 else 0 end\n" - " \n" - "\n" - "\n" - "]]>" +"More complex association joins are extremely rare. " +"Hibernate makes it possible to handle more complex situations using SQL " +"fragments embedded in the mapping document. For example, if a table with " +"historical account information data defines accountNumber, effectiveEndDate and " +"effectiveStartDatecolumns, mapped as follows:" msgstr "" - " \n" - " \n" - " \n" - " case when effectiveEndDate is null then 1 else 0 end \n" - " \n" - " \n" - " \n" - "]]>" +"より複雑な関連結合は 極めて 稀です。 マッピングドキュメ" +"ントにSQL文を埋め込むことで、 さらに複雑な状況を扱うことができます。 例えば、" +"accountNumber, effectiveEndDate, " +"effectiveStartDate カラムを持つaccount(口座)情報の履歴を" +"扱うテーブルは、 以下のようにマッピングします。" -#: index.docbook:266 -msgid "Then we can map an association to the current instance (the one with null effectiveEndDate) using:" -msgstr "そして、関連を 現時点の インスタンス (effectiveEndDate がnullであるもの)にマッピングします。 以下のようになります:" - -#: index.docbook:271 +#. Tag: programlisting +#: association_mapping.xml:264 +#, no-c-format msgid "" - "\n" - " \n" - " '1'\n" - "]]>" +"\n" +" \n" +" \n" +" case when effectiveEndDate is null then 1 else 0 end\n" +" \n" +"\n" +"\n" +"]]>" msgstr "" - " \n" - " \n" - " '1' \n" - "]]>" -#: index.docbook:273 -msgid "In a more complex example, imagine that the association between Employee and Organization is maintained in an Employment table full of historical employment data. Then an association to the employee's most recent employer (the one with the most recent startDate) might be mapped this way:" -msgstr "さらに複雑な例では、Employee(従業員)Organization(組織) 間の関連が Employment(雇用) テーブルで保持される場合を想像してください。 このテーブルには雇用データの履歴がすべて含まれます。 すると従業員の 最も最近の 雇用者を表す関連 (最も最近の startDate を持つもの)は、このようにマッピングできます:" - -#: index.docbook:281 +#. Tag: para +#: association_mapping.xml:266 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " select employeeId, orgId \n" - " from Employments \n" - " group by orgId \n" - " having startDate = max(startDate)\n" - " \n" - " \n" - "]]>" +"Then we can map an association to the current instance " +"(the one with null effectiveEndDate) using:" msgstr "" - " \n" - " \n" - " \n" - " select employeeId, orgId \n" - " from Employments \n" - " group by orgId \n" - " having startDate = max(startDate) \n" - " \n" - " \n" - "]]>" +"そして、関連を 現時点の インスタンス " +"(effectiveEndDate がnullであるもの)にマッピングします。 " +"以下のようになります:" -#: index.docbook:283 -msgid "You can get quite creative with this functionality, but it is usually more practical to handle these kinds of cases using HQL or a criteria query." -msgstr "この機能は非常に強力です。 しかしこのような場合、普通はHQLやcriteriaクエリを使う方がより実践的です。" +#. Tag: programlisting +#: association_mapping.xml:271 +#, no-c-format +msgid "" +"\n" +" \n" +" '1'\n" +"]]>" +msgstr "" -msgid "ROLES_OF_TRANSLATORS" -msgstr "" +#. Tag: para +#: association_mapping.xml:273 +#, no-c-format +msgid "" +"In a more complex example, imagine that the association between " +"Employee and Organization is " +"maintained in an Employment table full of historical " +"employment data. Then an association to the employee's most " +"recent employer (the one with the most recent startDate) might be mapped this way:" +msgstr "" +"さらに複雑な例では、Employee(従業員) と " +"Organization(組織) 間の関連が Employment(雇" +"用) テーブルで保持される場合を想像してください。 このテーブルには" +"雇用データの履歴がすべて含まれます。 すると従業員の 最も最近の 雇用者を表す関連 (最も最近の startDate を持つも" +"の)は、このようにマッピングできます:" -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#. Tag: programlisting +#: association_mapping.xml:281 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" select employeeId, orgId \n" +" from Employments \n" +" group by orgId \n" +" having startDate = max(startDate)\n" +" \n" +" \n" +"]]>" +msgstr "" +#. Tag: para +#: association_mapping.xml:283 +#, no-c-format +msgid "" +"You can get quite creative with this functionality, but it is usually more " +"practical to handle these kinds of cases using HQL or a criteria query." +msgstr "" +"この機能は非常に強力です。 しかしこのような場合、普通はHQLやcriteriaクエリを" +"使う方がより実践的です。" diff --git a/documentation/manual/translations/ja-JP/content/basic_mapping.po b/documentation/manual/translations/ja-JP/content/basic_mapping.po index b07461cea6..685eea61b9 100644 --- a/documentation/manual/translations/ja-JP/content/basic_mapping.po +++ b/documentation/manual/translations/ja-JP/content/basic_mapping.po @@ -1,3103 +1,5651 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: basic_mapping.xml:5 +#, no-c-format msgid "Basic O/R Mapping" msgstr "基本的なO/Rマッピング" -#: index.docbook:8 +#. Tag: title +#: basic_mapping.xml:8 +#, no-c-format msgid "Mapping declaration" msgstr "マッピング定義" -#: index.docbook:10 -msgid "Object/relational mappings are usually defined in an XML document. The mapping document is designed to be readable and hand-editable. The mapping language is Java-centric, meaning that mappings are constructed around persistent class declarations, not table declarations." -msgstr "オブジェクト/リレーショナルマッピングは通常XMLドキュメントで定義します。 マッピングドキュメントは、読みやすく手作業で編集しやすいようにデザインされています。 マッピング言語はJava中心、つまりテーブル定義ではなく永続クラスの定義に基づいて構築されています。" +#. Tag: para +#: basic_mapping.xml:10 +#, no-c-format +msgid "" +"Object/relational mappings are usually defined in an XML document. The " +"mapping document is designed to be readable and hand-editable. The mapping " +"language is Java-centric, meaning that mappings are constructed around " +"persistent class declarations, not table declarations." +msgstr "" +"オブジェクト/リレーショナルマッピングは通常XMLドキュメントで定義します。 マッ" +"ピングドキュメントは、読みやすく手作業で編集しやすいようにデザインされていま" +"す。 マッピング言語はJava中心、つまりテーブル定義ではなく永続クラスの定義に基" +"づいて構築されています。" -#: index.docbook:17 -msgid "Note that, even though many Hibernate users choose to write the XML by hand, a number of tools exist to generate the mapping document, including XDoclet, Middlegen and AndroMDA." -msgstr "多くのHibernateユーザはXMLマッピングの記述を手作業で行いますが、 XDoclet, Middlegen, AndroMDAというようなマッピングドキュメントを生成するツールが いくつか存在します。" +#. Tag: para +#: basic_mapping.xml:17 +#, no-c-format +msgid "" +"Note that, even though many Hibernate users choose to write the XML by hand, " +"a number of tools exist to generate the mapping document, including XDoclet, " +"Middlegen and AndroMDA." +msgstr "" +"多くのHibernateユーザはXMLマッピングの記述を手作業で行いますが、 XDoclet, " +"Middlegen, AndroMDAというようなマッピングドキュメントを生成するツールが いく" +"つか存在します。" -#: index.docbook:23 +#. Tag: para +#: basic_mapping.xml:23 +#, no-c-format msgid "Lets kick off with an example mapping:" msgstr "サンプルのマッピングから始めましょう:" -#: index.docbook:27 +#. Tag: programlisting +#: basic_mapping.xml:27 +#, no-c-format msgid "" - "\n" - "\n" - "\n" - "\n" - "\n" - " \n" - "\n" - " \n" - " \n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"\n" +"\n" +"\n" +"\n" +"\n" +" \n" +"\n" +" \n" +" \n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +" \n" +" \n" +"\n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:29 -msgid "We will now discuss the content of the mapping document. We will only describe the document elements and attributes that are used by Hibernate at runtime. The mapping document also contains some extra optional attributes and elements that affect the database schemas exported by the schema export tool. (For example the not-null attribute.)" -msgstr "マッピングドキュメントの内容を説明します。。 ただし、ここではHibernateが実行時に使うドキュメント要素と属性についてのみ説明します。 マッピングドキュメントは、いくつかのオプション属性と要素を含んでいます(例えば not-null 属性)。 それらはスキーマエクスポートツールが出力するデータベーススキーマに影響を与えるものです。" +#. Tag: para +#: basic_mapping.xml:29 +#, no-c-format +msgid "" +"We will now discuss the content of the mapping document. We will only " +"describe the document elements and attributes that are used by Hibernate at " +"runtime. The mapping document also contains some extra optional attributes " +"and elements that affect the database schemas exported by the schema export " +"tool. (For example the not-null attribute.)" +msgstr "" +"マッピングドキュメントの内容を説明します。。 ただし、ここではHibernateが実行" +"時に使うドキュメント要素と属性についてのみ説明します。 マッピングドキュメント" +"は、いくつかのオプション属性と要素を含んでいます(例えば not-null 属性)。 それらはスキーマエクスポートツールが出力するデータベースス" +"キーマに影響を与えるものです。" -#: index.docbook:40 +#. Tag: title +#: basic_mapping.xml:40 +#, no-c-format msgid "Doctype" msgstr "Doctype" -#: index.docbook:42 -msgid "All XML mappings should declare the doctype shown. The actual DTD may be found at the URL above, in the directory hibernate-x.x.x/src/org/hibernate or in hibernate3.jar. Hibernate will always look for the DTD in its classpath first. If you experience lookups of the DTD using an Internet connection, check your DTD declaration against the contents of your claspath." -msgstr "XMLマッピングでは、お見せしたようなドキュメント型を必ず定義すべきです。 実際のDTDは、上記のURLの hibernate-x.x.x/src/org/hibernate ディレクトリ、 または hibernate.jar 内にあります。 Hibernateは常に、そのクラスパス内でDTDを探し始めます。 インターネットにあるDTDファイルを探そうとしたなら、 クラスパスの内容を見て、DTD宣言を確認してください。" +#. Tag: para +#: basic_mapping.xml:42 +#, no-c-format +msgid "" +"All XML mappings should declare the doctype shown. The actual DTD may be " +"found at the URL above, in the directory hibernate-x.x.x/src/org/" +"hibernate or in hibernate3.jar. Hibernate will " +"always look for the DTD in its classpath first. If you experience lookups of " +"the DTD using an Internet connection, check your DTD declaration against the " +"contents of your claspath." +msgstr "" +"XMLマッピングでは、お見せしたようなドキュメント型を必ず定義すべきです。 実際" +"のDTDは、上記のURLの hibernate-x.x.x/src/org/hibernate " +"ディレクトリ、 または hibernate.jar 内にあります。 " +"Hibernateは常に、そのクラスパス内でDTDを探し始めます。 インターネットにある" +"DTDファイルを探そうとしたなら、 クラスパスの内容を見て、DTD宣言を確認してくだ" +"さい。" -#: index.docbook:52 +#. Tag: title +#: basic_mapping.xml:52 +#, no-c-format msgid "EntityResolver" msgstr "エンティティ・リゾルバ" -#: index.docbook:53 -msgid "As mentioned previously, Hibernate will first attempt to resolve DTDs in its classpath. The manner in which it does this is by registering a custom org.xml.sax.EntityResolver implementation with the SAXReader it uses to read in the xml files. This custom EntityResolver recognizes two different systemId namespaces." -msgstr "前述したように、Hibernateはまずクラスパス内でDTDを解決しようとします。 org.xml.sax.EntityResolver のカスタム実装を XMLファイルを読み込むためのSAXReaderに登録することによって、DTDを解決します。 このカスタムの EntityResolver は2つの異なるシステムID名前空間を認識します。" +#. Tag: para +#: basic_mapping.xml:53 +#, no-c-format +msgid "" +"As mentioned previously, Hibernate will first attempt to resolve DTDs in its " +"classpath. The manner in which it does this is by registering a custom " +"org.xml.sax.EntityResolver implementation with the " +"SAXReader it uses to read in the xml files. This custom " +"EntityResolver recognizes two different systemId " +"namespaces." +msgstr "" +"前述したように、Hibernateはまずクラスパス内でDTDを解決しようとします。 " +"org.xml.sax.EntityResolver のカスタム実装を XMLファイルを" +"読み込むためのSAXReaderに登録することによって、DTDを解決します。 このカスタム" +"の EntityResolver は2つの異なるシステムID名前空間を認識し" +"ます。" -#: index.docbook:61 -msgid "a hibernate namespace is recognized whenever the resolver encounteres a systemId starting with http://hibernate.sourceforge.net/; the resolver attempts to resolve these entities via the classlaoder which loaded the Hibernate classes." -msgstr "Hibernate名前空間 は、リゾルバが http://hibernate.sourceforge.net/ で始まるシステムIDに到達したときに、 認識されます。 そしてリゾルバは、Hibernateのクラスをロードしたクラスローダを用いて、 これらのエンティティを解決しようとします。" +#. Tag: para +#: basic_mapping.xml:61 +#, no-c-format +msgid "" +"a hibernate namespace is recognized whenever the resolver " +"encounteres a systemId starting with http://hibernate.sourceforge." +"net/; the resolver attempts to resolve these entities via the " +"classlaoder which loaded the Hibernate classes." +msgstr "" +"Hibernate名前空間 は、リゾルバが http://" +"hibernate.sourceforge.net/ で始まるシステムIDに到達したときに、 認" +"識されます。 そしてリゾルバは、Hibernateのクラスをロードしたクラスローダを用" +"いて、 これらのエンティティを解決しようとします。" -#: index.docbook:70 -msgid "a user namespace is recognized whenever the resolver encounteres a systemId using a classpath:// URL protocol; the resolver will attempt to resolve these entities via (1) the current thread context classloader and (2) the classloader which loaded the Hibernate classes." -msgstr "ユーザ名前空間 は、リゾルバが URLプロトコルの classpath:// を使ったシステムIDに到達したときに、 認識されます。そしてリゾルバは、(1)カレントスレッドのコンテキストクラスローダー、 または(2)Hibernateのクラスをロードしたクラスローダを使って、 これらのエンティティを解決しようとします。" +#. Tag: para +#: basic_mapping.xml:70 +#, no-c-format +msgid "" +"a user namespace is recognized whenever the resolver " +"encounteres a systemId using a classpath:// URL protocol; " +"the resolver will attempt to resolve these entities via (1) the current " +"thread context classloader and (2) the classloader which loaded the " +"Hibernate classes." +msgstr "" +"ユーザ名前空間 は、リゾルバが URLプロトコルの " +"classpath:// を使ったシステムIDに到達したときに、 認識され" +"ます。そしてリゾルバは、(1)カレントスレッドのコンテキストクラスローダー、 ま" +"たは(2)Hibernateのクラスをロードしたクラスローダを使って、 これらのエンティ" +"ティを解決しようとします。" -#: index.docbook:79 +#. Tag: para +#: basic_mapping.xml:79 +#, no-c-format msgid "An example of utilizing user namespacing:" msgstr "下記は、ユーザ名前空間を使った例です:" -#: index.docbook:82 +#. Tag: programlisting +#: basic_mapping.xml:82 +#, no-c-format msgid "" - "\n" - "\n" - "]>\n" - "\n" - "\n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " &types;\n" - "]]>" +"\n" +"\n" +"]>\n" +"\n" +"\n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" &types;\n" +"]]>" msgstr "" - " \n" - " \n" - "]> \n" - " \n" - " \n" - " \n" - " \n" - " ... \n" - " \n" - " \n" - " &types; \n" - "]]>" -#: index.docbook:83 -msgid "Where types.xml is a resource in the your.domain package and contains a custom typedef." -msgstr "ここで types.xmlyour.domain パッケージ内のリソースであり、 カスタム typedef を含むます。" +#. Tag: para +#: basic_mapping.xml:83 +#, no-c-format +msgid "" +"Where types.xml is a resource in the your." +"domain package and contains a custom typedef." +msgstr "" +"ここで types.xmlyour.domain パッ" +"ケージ内のリソースであり、 カスタム typedef を含むます。" -#: index.docbook:91 +#. Tag: title +#: basic_mapping.xml:91 +#, no-c-format msgid "hibernate-mapping" msgstr "hibernate-mapping" -#: index.docbook:93 -msgid "This element has several optional attributes. The schema and catalog attributes specify that tables referred to in this mapping belong to the named schema and/or catalog. If specified, tablenames will be qualified by the given schema and catalog names. If missing, tablenames will be unqualified. The default-cascade attribute specifies what cascade style should be assumed for properties and collections which do not specify a cascade attribute. The auto-import attribute lets us use unqualified class names in the query language, by default." -msgstr "この要素にはいくつかオプション属性があります。schema 属性と catalog 属性は、 このマッピングが参照するテーブルが、この属性によって指定されたスキーマと(または)カタログに属することを指定します。 この属性が指定されると、テーブル名は与えられたスキーマ名とカタログ名で修飾されます。これらの属性が指定されていなければ、 テーブル名は修飾されません。default-cascade 属性は、 cascade 属性を指定していないプロパティやコレクションに、 どのカスケードスタイルを割り当てるかを指定します。 auto-import 属性は、 クエリ言語内で修飾されていないクラス名を、デフォルトで使えるようにします。" - -#: index.docbook:114 +#. Tag: para +#: basic_mapping.xml:93 +#, no-c-format msgid "" - "]]>" +"This element has several optional attributes. The schema " +"and catalog attributes specify that tables referred to in " +"this mapping belong to the named schema and/or catalog. If specified, " +"tablenames will be qualified by the given schema and catalog names. If " +"missing, tablenames will be unqualified. The default-cascade attribute specifies what cascade style should be assumed for " +"properties and collections which do not specify a cascade " +"attribute. The auto-import attribute lets us use " +"unqualified class names in the query language, by default." msgstr "" - "]]>" +"この要素にはいくつかオプション属性があります。schema 属性" +"と catalog 属性は、 このマッピングが参照するテーブルが、こ" +"の属性によって指定されたスキーマと(または)カタログに属することを指定します。 " +"この属性が指定されると、テーブル名は与えられたスキーマ名とカタログ名で修飾さ" +"れます。これらの属性が指定されていなければ、 テーブル名は修飾されません。" +"default-cascade 属性は、 cascade 属性を" +"指定していないプロパティやコレクションに、 どのカスケードスタイルを割り当てる" +"かを指定します。 auto-import 属性は、 クエリ言語内で修飾さ" +"れていないクラス名を、デフォルトで使えるようにします。" -#: index.docbook:117 +#. Tag: programlisting +#: basic_mapping.xml:114 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:117 +#, no-c-format msgid "schema (optional): The name of a database schema." msgstr "schema(オプション):データベーススキーマの名前。" -#: index.docbook:122 +#. Tag: para +#: basic_mapping.xml:122 +#, no-c-format msgid "catalog (optional): The name of a database catalog." -msgstr "catalog (オプション):データベースカタログの名前。" +msgstr "" +"catalog (オプション):データベースカタログの名前。" -#: index.docbook:127 -msgid "default-cascade (optional - defaults to none): A default cascade style." -msgstr "default-cascade (オプション - デフォルトは none): デフォルトのカスケードスタイル。" +#. Tag: para +#: basic_mapping.xml:127 +#, no-c-format +msgid "" +"default-cascade (optional - defaults to none): A default cascade style." +msgstr "" +"default-cascade (オプション - デフォルトは " +"none): デフォルトのカスケードスタイル。" -#: index.docbook:133 -msgid "default-access (optional - defaults to property): The strategy Hibernate should use for accessing all properties. Can be a custom implementation of PropertyAccessor." -msgstr "default-access (オプション - デフォルトは property ): Hibernateがプロパティにアクセスする際に採るべき戦略。 PropertyAccessor を実装することでカスタマイズ可能。" +#. Tag: para +#: basic_mapping.xml:133 +#, no-c-format +msgid "" +"default-access (optional - defaults to property): The strategy Hibernate should use for accessing all properties. " +"Can be a custom implementation of PropertyAccessor." +msgstr "" +"default-access (オプション - デフォルトは " +"property ): Hibernateがプロパティにアクセスする際に採る" +"べき戦略。 PropertyAccessor を実装することでカスタマイズ可" +"能。" -#: index.docbook:140 -msgid "default-lazy (optional - defaults to true): The default value for unspecifed lazy attributes of class and collection mappings." -msgstr "default-lazy (オプション - デフォルトは true ): lazy 属性が指定されていないクラスやコレクションマッピングに対するデフォルト値。" +#. Tag: para +#: basic_mapping.xml:140 +#, no-c-format +msgid "" +"default-lazy (optional - defaults to true): The default value for unspecifed lazy " +"attributes of class and collection mappings." +msgstr "" +"default-lazy (オプション - デフォルトは true ): lazy 属性が指定されていないクラスやコレクショ" +"ンマッピングに対するデフォルト値。" -#: index.docbook:147 -msgid "auto-import (optional - defaults to true): Specifies whether we can use unqualified class names (of classes in this mapping) in the query language." -msgstr "auto-import (オプション - デフォルトは true): クエリ言語内で、(このマッピング内のクラスの)修飾されていないクラス名を使えるかどうかを指定します。" +#. Tag: para +#: basic_mapping.xml:147 +#, no-c-format +msgid "" +"auto-import (optional - defaults to true): Specifies whether we can use unqualified class names (of classes " +"in this mapping) in the query language." +msgstr "" +"auto-import (オプション - デフォルトは true): クエリ言語内で、(このマッピング内のクラスの)修飾されていないク" +"ラス名を使えるかどうかを指定します。" -#: index.docbook:154 -msgid "package (optional): Specifies a package prefix to assume for unqualified class names in the mapping document." -msgstr "package (オプション): マッピングドキュメント内で修飾されていないクラス名に対して割り当てる、 パッケージの接頭辞(prefix)を指定します。" +#. Tag: para +#: basic_mapping.xml:154 +#, no-c-format +msgid "" +"package (optional): Specifies a package prefix to assume " +"for unqualified class names in the mapping document." +msgstr "" +"package (オプション): マッピングドキュメント内で修飾されて" +"いないクラス名に対して割り当てる、 パッケージの接頭辞(prefix)を指定します。" -#: index.docbook:162 -msgid "If you have two persistent classes with the same (unqualified) name, you should set auto-import=\"false\". Hibernate will throw an exception if you attempt to assign two classes to the same \"imported\" name." -msgstr "(修飾されていない)同じ名前の永続クラスが2つあるなら、 auto-import=\"false\" を設定すべきです。 2つのクラスに”インポートされた”同じ名前を割り当てようとすると、Hibernateは例外を投げます。" +#. Tag: para +#: basic_mapping.xml:162 +#, no-c-format +msgid "" +"If you have two persistent classes with the same (unqualified) name, you " +"should set auto-import=\"false\". Hibernate will throw an " +"exception if you attempt to assign two classes to the same \"imported\" name." +msgstr "" +"(修飾されていない)同じ名前の永続クラスが2つあるなら、 auto-import=" +"\"false\" を設定すべきです。 2つのクラスに”インポートされた”同じ名" +"前を割り当てようとすると、Hibernateは例外を投げます。" -#: index.docbook:168 -msgid "Note that the hibernate-mapping element allows you to nest several persistent <class> mappings, as shown above. It is however good practice (and expected by some tools) to map only a single persistent class (or a single class hierarchy) in one mapping file and name it after the persistent superclass, e.g. Cat.hbm.xml, Dog.hbm.xml, or if using inheritance, Animal.hbm.xml." -msgstr "hibernate-mapping 要素は、最初の例で示したようにいくつかの永続 <class> マッピングをネストできます。 しかし、1つのマッピングファイルではただひとつの永続クラス(またはひとつのクラス階層)にマッピングするようにし、 さらに永続スーパークラスの後で指定するべきでしょう(いくつかのツールはこのようなマッピングファイルを想定しています)。 例えば次のようになります。: Cat.hbm.xml , Dog.hbm.xml , または継承を使うなら Animal.hbm.xml 。" +#. Tag: para +#: basic_mapping.xml:168 +#, no-c-format +msgid "" +"Note that the hibernate-mapping element allows you to " +"nest several persistent <class> mappings, as shown " +"above. It is however good practice (and expected by some tools) to map only " +"a single persistent class (or a single class hierarchy) in one mapping file " +"and name it after the persistent superclass, e.g. Cat.hbm.xml, Dog.hbm.xml, or if using inheritance, " +"Animal.hbm.xml." +msgstr "" +"hibernate-mapping 要素は、最初の例で示したようにいくつかの" +"永続 <class> マッピングをネストできます。 しかし、1" +"つのマッピングファイルではただひとつの永続クラス(またはひとつのクラス階層)に" +"マッピングするようにし、 さらに永続スーパークラスの後で指定するべきでしょう" +"(いくつかのツールはこのようなマッピングファイルを想定しています)。 例えば次の" +"ようになります。: Cat.hbm.xml , Dog.hbm.xml , または継承を使うなら Animal.hbm.xml 。" -#: index.docbook:181 +#. Tag: title +#: basic_mapping.xml:181 +#, no-c-format msgid "class" -msgstr "class" +msgstr "" -#: index.docbook:183 -msgid "You may declare a persistent class using the class element:" +#. Tag: para +#: basic_mapping.xml:183 +#, no-c-format +msgid "" +"You may declare a persistent class using the class " +"element:" msgstr "class 要素を使って、永続クラスを宣言できます。" -#: index.docbook:211 +#. Tag: programlisting +#: basic_mapping.xml:211 +#, no-c-format msgid "" - "]]>" +"]]>" msgstr "" - "]]>" -#: index.docbook:214 -msgid "name (optional): The fully qualified Java class name of the persistent class (or interface). If this attribute is missing, it is assumed that the mapping is for a non-POJO entity." -msgstr "name (オプション):永続クラス(またはインターフェイス)の完全修飾Javaクラス名。 もしこの属性を指定しなければ、POJOではないエンティティに対するマッピングとして扱われます。" +#. Tag: para +#: basic_mapping.xml:214 +#, no-c-format +msgid "" +"name (optional): The fully qualified Java class name of " +"the persistent class (or interface). If this attribute is missing, it is " +"assumed that the mapping is for a non-POJO entity." +msgstr "" +"name (オプション):永続クラス(またはインターフェイス)の" +"完全修飾Javaクラス名。 もしこの属性を指定しなければ、POJOではないエンティティ" +"に対するマッピングとして扱われます。" -#: index.docbook:221 -msgid "table (optional - defaults to the unqualified class name): The name of its database table." -msgstr "table (オプション - デフォルトは修飾されていないクラス名):データベーステーブルの名前" +#. Tag: para +#: basic_mapping.xml:221 +#, no-c-format +msgid "" +"table (optional - defaults to the unqualified class " +"name): The name of its database table." +msgstr "" +"table (オプション - デフォルトは修飾されていないクラス" +"名):データベーステーブルの名前" -#: index.docbook:227 -msgid "discriminator-value (optional - defaults to the class name): A value that distiguishes individual subclasses, used for polymorphic behaviour. Acceptable values include null and not null." -msgstr "discriminator-value (オプション - デフォルトはクラス名): ポリモーフィックな振る舞いに使われる個々のサブクラスを識別するための値。 値は nullnot null のいずれかを取ります。" +#. Tag: para +#: basic_mapping.xml:227 +#, no-c-format +msgid "" +"discriminator-value (optional - defaults to the class " +"name): A value that distiguishes individual subclasses, used for polymorphic " +"behaviour. Acceptable values include null and " +"not null." +msgstr "" +"discriminator-value (オプション - デフォルトはクラス名): " +"ポリモーフィックな振る舞いに使われる個々のサブクラスを識別するための値。 値" +"は nullnot null のいずれかを取りま" +"す。" -#: index.docbook:234 -msgid "mutable (optional, defaults to true): Specifies that instances of the class are (not) mutable." -msgstr "mutable (オプション、 デフォルトは true ): そのクラスのインスタンスが更新可能(または不可能)であることを指定します。" +#. Tag: para +#: basic_mapping.xml:234 +#, no-c-format +msgid "" +"mutable (optional, defaults to true): " +"Specifies that instances of the class are (not) mutable." +msgstr "" +"mutable (オプション、 デフォルトは true ): そのクラスのインスタンスが更新可能(または不可能)であることを指" +"定します。" -#: index.docbook:240, index.docbook:2204 -msgid "schema (optional): Override the schema name specified by the root <hibernate-mapping> element." -msgstr "schema (オプション): ルートの <hibernate-mapping> 要素で指定されたスキーマ名をオーバーライドします。" +#. Tag: para +#: basic_mapping.xml:240 basic_mapping.xml:2204 +#, fuzzy, no-c-format +msgid "" +"schema (optional): Override the schema name specified by " +"the root <hibernate-mapping> element." +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"schema (オプション): ルートの <hibernate-" +"mapping> 要素で指定されたスキーマ名をオーバーライドします。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"schema (オプション): ルートの <hibernate-" +"mapping> 要素で指定したスキーマ名を オーバーライドします。" -#: index.docbook:246, index.docbook:2210 -msgid "catalog (optional): Override the catalog name specified by the root <hibernate-mapping> element." -msgstr "catalog (オプション):ルートの <hibernate-mapping> 要素で指定されたカタログ名をオーバーライドします。" +#. Tag: para +#: basic_mapping.xml:246 basic_mapping.xml:2210 +#, fuzzy, no-c-format +msgid "" +"catalog (optional): Override the catalog name specified " +"by the root <hibernate-mapping> element." +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"catalog (オプション):ルートの <hibernate-" +"mapping> 要素で指定されたカタログ名をオーバーライドします。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"catalog (オプション): ルートの <hibernate-" +"mapping> 要素で指定したカタログ名を オーバーライドします。" -#: index.docbook:252 -msgid "proxy (optional): Specifies an interface to use for lazy initializing proxies. You may specify the name of the class itself." -msgstr "proxy (オプション):遅延初期化プロキシに使うインターフェイスを指定します。 永続化するクラス名そのものを指定することも可能です。" +#. Tag: para +#: basic_mapping.xml:252 +#, no-c-format +msgid "" +"proxy (optional): Specifies an interface to use for lazy " +"initializing proxies. You may specify the name of the class itself." +msgstr "" +"proxy (オプション):遅延初期化プロキシに使うインターフェ" +"イスを指定します。 永続化するクラス名そのものを指定することも可能です。" -#: index.docbook:258 -msgid "dynamic-update (optional, defaults to false): Specifies that UPDATE SQL should be generated at runtime and contain only those columns whose values have changed." -msgstr "dynamic-update (オプション、 デフォルトは false ): 値が変更されたカラムだけを含むSQLの UPDATE 文を、実行時に生成することを指定します。" +#. Tag: para +#: basic_mapping.xml:258 +#, no-c-format +msgid "" +"dynamic-update (optional, defaults to false): Specifies that UPDATE SQL should be generated " +"at runtime and contain only those columns whose values have changed." +msgstr "" +"dynamic-update (オプション、 デフォルトは " +"false ): 値が変更されたカラムだけを含むSQLの " +"UPDATE 文を、実行時に生成することを指定します。" -#: index.docbook:265 -msgid "dynamic-insert (optional, defaults to false): Specifies that INSERT SQL should be generated at runtime and contain only the columns whose values are not null." -msgstr "dynamic-insert (オプション, デフォルトは false ): 値がnullではないカラムだけを含むSQLの INSERT 文を、実行時に生成することを指定します。" +#. Tag: para +#: basic_mapping.xml:265 +#, no-c-format +msgid "" +"dynamic-insert (optional, defaults to false): Specifies that INSERT SQL should be generated " +"at runtime and contain only the columns whose values are not null." +msgstr "" +"dynamic-insert (オプション, デフォルトは false ): 値がnullではないカラムだけを含むSQLの INSERT 文を、実行時に生成することを指定します。" -#: index.docbook:272 -msgid "select-before-update (optional, defaults to false): Specifies that Hibernate should never perform an SQL UPDATE unless it is certain that an object is actually modified. In certain cases (actually, only when a transient object has been associated with a new session using update()), this means that Hibernate will perform an extra SQL SELECT to determine if an UPDATE is actually required." -msgstr "select-before-update (オプション, デフォルトは false): オブジェクトが変更されたのが確実でないならば、HibernateがSQLの UPDATE決して実行しない ことを指定します。 ある特定の場合(実際的には、一時オブジェクトが update() を使い、 新しいセッションと関連付けられた時だけ)、UPDATE が実際に必要かどうかを決定するために、 Hibernateが余分なSQLの SELECT 文を実行することを意味します。" +#. Tag: para +#: basic_mapping.xml:272 +#, no-c-format +msgid "" +"select-before-update (optional, defaults to " +"false): Specifies that Hibernate should never perform an SQL UPDATE unless it is certain that " +"an object is actually modified. In certain cases (actually, only when a " +"transient object has been associated with a new session using update" +"()), this means that Hibernate will perform an extra SQL " +"SELECT to determine if an UPDATE is " +"actually required." +msgstr "" +"select-before-update (オプション, デフォルトは " +"false): オブジェクトが変更されたのが確実でないならば、" +"HibernateがSQLの UPDATE決して実行しない ことを指定します。 ある特定の場合(実際的には、一時オブジェクトが " +"update() を使い、 新しいセッションと関連付けられた時だ" +"け)、UPDATE が実際に必要かどうかを決定するために、 " +"Hibernateが余分なSQLの SELECT 文を実行することを意味しま" +"す。" -#: index.docbook:282 -msgid "polymorphism (optional, defaults to implicit): Determines whether implicit or explicit query polymorphism is used." -msgstr "(optional, デフォルトでは implicit ): implicit(暗黙)かexplicit(明示)の、 どちらのクエリポリモーフィズムを使うか決定します。" +#. Tag: para +#: basic_mapping.xml:282 +#, no-c-format +msgid "" +"polymorphism (optional, defaults to implicit): Determines whether implicit or explicit query polymorphism is " +"used." +msgstr "" +"(optional, デフォルトでは implicit ): implicit(暗黙)か" +"explicit(明示)の、 どちらのクエリポリモーフィズムを使うか決定します。" -#: index.docbook:288 -msgid "where (optional) specify an arbitrary SQL WHERE condition to be used when retrieving objects of this class" -msgstr "where (オプション): このクラスのオブジェクトを検索するときに使用する、任意のSQLの WHERE 条件を指定します。" +#. Tag: para +#: basic_mapping.xml:288 +#, no-c-format +msgid "" +"where (optional) specify an arbitrary SQL WHERE condition to be used when retrieving objects of this class" +msgstr "" +"where (オプション): このクラスのオブジェクトを検索する" +"ときに使用する、任意のSQLの WHERE 条件を指定します。" -#: index.docbook:294 -msgid "persister (optional): Specifies a custom ClassPersister." -msgstr "persister (オプション):カスタム ClassPersister を指定します。" +#. Tag: para +#: basic_mapping.xml:294 +#, no-c-format +msgid "" +"persister (optional): Specifies a custom " +"ClassPersister." +msgstr "" +"persister (オプション):カスタム " +"ClassPersister を指定します。" -#: index.docbook:299 -msgid "batch-size (optional, defaults to 1) specify a \"batch size\" for fetching instances of this class by identifier." -msgstr "batch-size (オプション, デフォルトは 1 ): 識別子でこのクラスのインスタンスを復元するときの「バッチサイズ」を指定します。" +#. Tag: para +#: basic_mapping.xml:299 +#, no-c-format +msgid "" +"batch-size (optional, defaults to 1) " +"specify a \"batch size\" for fetching instances of this class by identifier." +msgstr "" +"batch-size (オプション, デフォルトは 1 ): 識別子でこのクラスのインスタンスを復元するときの「バッチサイ" +"ズ」を指定します。" -#: index.docbook:305 -msgid "optimistic-lock (optional, defaults to version): Determines the optimistic locking strategy." -msgstr "optimistic-lock (オプション,デフォルトは version ): 楽観ロック戦略を決定します。" +#. Tag: para +#: basic_mapping.xml:305 +#, no-c-format +msgid "" +"optimistic-lock (optional, defaults to version): Determines the optimistic locking strategy." +msgstr "" +"optimistic-lock (オプション,デフォルトは " +"version ): 楽観ロック戦略を決定します。" -#: index.docbook:311 -msgid "lazy (optional): Lazy fetching may be completely disabled by setting lazy=\"false\"." -msgstr "lazy (オプション): lazy=\"false\" と設定することで、 遅延フェッチができなくなります。" +#. Tag: para +#: basic_mapping.xml:311 +#, no-c-format +msgid "" +"lazy (optional): Lazy fetching may be completely disabled " +"by setting lazy=\"false\"." +msgstr "" +"lazy (オプション): lazy=\"false\" と" +"設定することで、 遅延フェッチができなくなります。" -#: index.docbook:317 -msgid "entity-name (optional, defaults to the class name): Hibernate3 allows a class to be mapped multiple times (to different tables, potentially), and allows entity mappings that are represented by Maps or XML at the Java level. In these cases, you should provide an explicit arbitrary name for the entity. See and for more information." -msgstr "entity-name (オプション、デフォルトはクラス名): Hibernate3ではクラスが複数回マッピングでき(場合によっては違うテーブルに対しても)、 JavaレベルでMapやXMLで表現されるエンティティマッピングが可能です。 これらの場合、エンティティに対して任意の名前を、明示的に付けなくてはなりません。 詳しくは を参照してください。" +#. Tag: para +#: basic_mapping.xml:317 +#, no-c-format +msgid "" +"entity-name (optional, defaults to the class name): " +"Hibernate3 allows a class to be mapped multiple times (to different tables, " +"potentially), and allows entity mappings that are represented by Maps or XML " +"at the Java level. In these cases, you should provide an explicit arbitrary " +"name for the entity. See and for more information." +msgstr "" +"entity-name (オプション、デフォルトはクラス名): " +"Hibernate3ではクラスが複数回マッピングでき(場合によっては違うテーブルに対し" +"ても)、 JavaレベルでMapやXMLで表現されるエンティティマッピングが可能です。 " +"これらの場合、エンティティに対して任意の名前を、明示的に付けなくてはなりませ" +"ん。 詳しくは を参照してください。" -#: index.docbook:327 -msgid "check (optional): A SQL expression used to generate a multi-row check constraint for automatic schema generation." -msgstr "check (オプション):自動的にスキーマを生成するために、 複数行の check 制約を生成するSQL式。" +#. Tag: para +#: basic_mapping.xml:327 +#, no-c-format +msgid "" +"check (optional): A SQL expression used to generate a " +"multi-row check constraint for automatic schema " +"generation." +msgstr "" +"check (オプション):自動的にスキーマを生成するために、 " +"複数行の check 制約を生成するSQL式。" -#: index.docbook:333 -msgid "rowid (optional): Hibernate can use so called ROWIDs on databases which support. E.g. on Oracle, Hibernate can use the rowid extra column for fast updates if you set this option to rowid. A ROWID is an implementation detail and represents the physical location of a stored tuple." -msgstr "rowid (オプション):Hibernateは、それをサポートしているデータベースでROWIDと 呼ばれるものを使うことができます。 例えばOracleを使っているとき、このオプションに rowid を設定すれば、 Hiberanteはupdateを高速化するために rowid という特別なカラムを使うことができます。 ROWIDは詳細な実装であり、保存されたタプルの物理的な位置を表しています。" +#. Tag: para +#: basic_mapping.xml:333 +#, no-c-format +msgid "" +"rowid (optional): Hibernate can use so called ROWIDs on " +"databases which support. E.g. on Oracle, Hibernate can use the " +"rowid extra column for fast updates if you set this " +"option to rowid. A ROWID is an implementation detail and " +"represents the physical location of a stored tuple." +msgstr "" +"rowid (オプション):Hibernateは、それをサポートしている" +"データベースでROWIDと 呼ばれるものを使うことができます。 例えばOracleを使って" +"いるとき、このオプションに rowid を設定すれば、 Hiberante" +"はupdateを高速化するために rowid という特別なカラムを使う" +"ことができます。 ROWIDは詳細な実装であり、保存されたタプルの物理的な位置を表" +"しています。" -#: index.docbook:341 -msgid "subselect (optional): Maps an immutable and read-only entity to a database subselect. Useful if you want to have a view instead of a base table, but don't. See below for more information." -msgstr "subselect (オプション):不変かつ読み取り専用であるエンティティを データベースの副問合せ(subselect)にマッピングします。 もし元のテーブルの代わりにビューを持ちたければ有用ですが、 そうでないのなら有用ではありません。より詳しい情報は下記を参照してください。" +#. Tag: para +#: basic_mapping.xml:341 +#, no-c-format +msgid "" +"subselect (optional): Maps an immutable and read-only " +"entity to a database subselect. Useful if you want to have a view instead of " +"a base table, but don't. See below for more information." +msgstr "" +"subselect (オプション):不変かつ読み取り専用であるエン" +"ティティを データベースの副問合せ(subselect)にマッピングします。 もし元の" +"テーブルの代わりにビューを持ちたければ有用ですが、 そうでないのなら有用ではあ" +"りません。より詳しい情報は下記を参照してください。" -#: index.docbook:348 -msgid "abstract (optional): Used to mark abstract superclasses in <union-subclass> hierarchies." -msgstr "abstract (オプション): <union-subclass> 階層内の抽象スーパークラスにマークするために使います。" +#. Tag: para +#: basic_mapping.xml:348 +#, no-c-format +msgid "" +"abstract (optional): Used to mark abstract superclasses " +"in <union-subclass> hierarchies." +msgstr "" +"abstract (オプション): <union-subclass>" +" 階層内の抽象スーパークラスにマークするために使います。" -#: index.docbook:356 -msgid "It is perfectly acceptable for the named persistent class to be an interface. You would then declare implementing classes of that interface using the <subclass> element. You may persist any static inner class. You should specify the class name using the standard form ie. eg.Foo$Bar." -msgstr "永続クラスの名前にインターフェイスを指定してもまったく問題ありません。 そのときは <subclass> 要素を使って、 そのインターフェイスを実装するクラスを定義してください。 static な内部クラスでも永続化できます。 そのときは標準形式、例えば eg.Foo$Bar を使ってクラス名を指定してください。" +#. Tag: para +#: basic_mapping.xml:356 +#, no-c-format +msgid "" +"It is perfectly acceptable for the named persistent class to be an " +"interface. You would then declare implementing classes of that interface " +"using the <subclass> element. You may persist any " +"static inner class. You should specify the class name " +"using the standard form ie. eg.Foo$Bar." +msgstr "" +"永続クラスの名前にインターフェイスを指定してもまったく問題ありません。 そのと" +"きは <subclass> 要素を使って、 そのインターフェイス" +"を実装するクラスを定義してください。 static な内部クラス" +"でも永続化できます。 そのときは標準形式、例えば eg.Foo$Bar を使ってクラス名を指定してください。" -#: index.docbook:363 -msgid "Immutable classes, mutable=\"false\", may not be updated or deleted by the application. This allows Hibernate to make some minor performance optimizations." -msgstr "mutable=\"false\" 指定をした不変クラスは、 アプリケーションによる更新や削除が出来ないことがあります。 これにより、Hibernateがパフォーマンスを少し改善します。" +#. Tag: para +#: basic_mapping.xml:363 +#, no-c-format +msgid "" +"Immutable classes, mutable=\"false\", may not be updated " +"or deleted by the application. This allows Hibernate to make some minor " +"performance optimizations." +msgstr "" +"mutable=\"false\" 指定をした不変クラスは、 アプリケーショ" +"ンによる更新や削除が出来ないことがあります。 これにより、Hibernateがパフォー" +"マンスを少し改善します。" -#: index.docbook:368 -msgid "The optional proxy attribute enables lazy initialization of persistent instances of the class. Hibernate will initially return CGLIB proxies which implement the named interface. The actual persistent object will be loaded when a method of the proxy is invoked. See \"Initializing collections and proxies\" below." -msgstr "オプションの proxy 属性により、クラスの永続インスタンスの遅延初期化が可能になります。 Hibernateは最初に、指定したインターフェイスを実装したCGLIBプロキシを返します。 実際の永続オブジェクトはプロキシのメソッドを呼び出すときにロードします。 以下の「遅延初期化のためのプロキシ」を参照してください。" +#. Tag: para +#: basic_mapping.xml:368 +#, no-c-format +msgid "" +"The optional proxy attribute enables lazy initialization " +"of persistent instances of the class. Hibernate will initially return CGLIB " +"proxies which implement the named interface. The actual persistent object " +"will be loaded when a method of the proxy is invoked. See \"Initializing " +"collections and proxies\" below." +msgstr "" +"オプションの proxy 属性により、クラスの永続インスタンスの" +"遅延初期化が可能になります。 Hibernateは最初に、指定したインターフェイスを実" +"装したCGLIBプロキシを返します。 実際の永続オブジェクトはプロキシのメソッドを" +"呼び出すときにロードします。 以下の「遅延初期化のためのプロキシ」を参照してく" +"ださい。" -#: index.docbook:375 -msgid "Implicit polymorphism means that instances of the class will be returned by a query that names any superclass or implemented interface or the class and that instances of any subclass of the class will be returned by a query that names the class itself. Explicit polymorphism means that class instances will be returned only by queries that explicitly name that class and that queries that name the class will return only instances of subclasses mapped inside this <class> declaration as a <subclass> or <joined-subclass>. For most purposes the default, polymorphism=\"implicit\", is appropriate. Explicit polymorphism is useful when two different classes are mapped to the same table (this allows a \"lightweight\" class that contains a subset of the table columns)." -msgstr "暗黙的 ポリモーフィズムとは、次の二つを意味しています。 一つはクラスのインスタンスが、スーパークラスや実装したインターフェイス、またそのクラスを指定するクエリによって返されることで、 もう一つはそのクラスのサブクラスのインスタンスが、そのクラス自身を指定したクエリによって返されることです。 また、明示的 ポリモーフィズムとは、次の二つを意味しています。 一つはクラスのインスタンスが、そのクラスを明示的に指定したクエリによってのみ返されることで、 もう一つはクラスを指定したクエリが、<class> 要素の中で <subclass><joined-subclass> とマッピングされているサブクラスのインスタンスだけを返すことです。 ほとんどの用途ではデフォルトの polymorphism=\"implicit\" が適切です。 明示的なポリモーフィズムは、2つの違ったクラスが同じテーブルにマッピングされているときに有用です (これによってテーブルカラムのサブセットを含む、「軽量な」クラスが可能になります)。" +#. Tag: para +#: basic_mapping.xml:375 +#, no-c-format +msgid "" +"Implicit polymorphism means that instances of the class " +"will be returned by a query that names any superclass or implemented " +"interface or the class and that instances of any subclass of the class will " +"be returned by a query that names the class itself. Explicit polymorphism means that class instances will be returned only by " +"queries that explicitly name that class and that queries that name the class " +"will return only instances of subclasses mapped inside this <" +"class> declaration as a <subclass> or " +"<joined-subclass>. For most purposes the default, " +"polymorphism=\"implicit\", is appropriate. Explicit " +"polymorphism is useful when two different classes are mapped to the same " +"table (this allows a \"lightweight\" class that contains a subset of the " +"table columns)." +msgstr "" +"暗黙的 ポリモーフィズムとは、次の二つを意味しています。 " +"一つはクラスのインスタンスが、スーパークラスや実装したインターフェイス、また" +"そのクラスを指定するクエリによって返されることで、 もう一つはそのクラスのサブ" +"クラスのインスタンスが、そのクラス自身を指定したクエリによって返されることで" +"す。 また、明示的 ポリモーフィズムとは、次の二つを意味し" +"ています。 一つはクラスのインスタンスが、そのクラスを明示的に指定したクエリに" +"よってのみ返されることで、 もう一つはクラスを指定したクエリが、<" +"class> 要素の中で <subclass> や " +"<joined-subclass> とマッピングされているサブクラスの" +"インスタンスだけを返すことです。 ほとんどの用途ではデフォルトの " +"polymorphism=\"implicit\" が適切です。 明示的なポリモー" +"フィズムは、2つの違ったクラスが同じテーブルにマッピングされているときに有用で" +"す (これによってテーブルカラムのサブセットを含む、「軽量な」クラスが可能にな" +"ります)。" -#: index.docbook:387 -msgid "The persister attribute lets you customize the persistence strategy used for the class. You may, for example, specify your own subclass of org.hibernate.persister.EntityPersister or you might even provide a completely new implementation of the interface org.hibernate.persister.ClassPersister that implements persistence via, for example, stored procedure calls, serialization to flat files or LDAP. See org.hibernate.test.CustomPersister for a simple example (of \"persistence\" to a Hashtable)." -msgstr "persister 属性を指定することで、クラスの永続化戦略をカスタマイズできます。 例えば org.hibernate.persister.EntityPersister 自身のサブクラスを指定したり、 また例えばストアドプロシージャコール、フラットファイルへシリアライズ、 LDAPなどを通した永続性を実装する org.hibernate.persister.ClassPersister インターフェイスの完全に新しい実装を提供できます。簡単な例として org.hibernate.test.CustomPersister を見てください(これは Hashtable の「永続化」です)。" +#. Tag: para +#: basic_mapping.xml:387 +#, no-c-format +msgid "" +"The persister attribute lets you customize the " +"persistence strategy used for the class. You may, for example, specify your " +"own subclass of org.hibernate.persister.EntityPersister " +"or you might even provide a completely new implementation of the interface " +"org.hibernate.persister.ClassPersister that implements " +"persistence via, for example, stored procedure calls, serialization to flat " +"files or LDAP. See org.hibernate.test.CustomPersister for " +"a simple example (of \"persistence\" to a Hashtable)." +msgstr "" +"persister 属性を指定することで、クラスの永続化戦略をカスタ" +"マイズできます。 例えば org.hibernate.persister.EntityPersister 自身のサブクラスを指定したり、 また例えばストアドプロシージャコー" +"ル、フラットファイルへシリアライズ、 LDAPなどを通した永続性を実装する " +"org.hibernate.persister.ClassPersister インターフェイスの" +"完全に新しい実装を提供できます。簡単な例として org.hibernate.test." +"CustomPersister を見てください(これは Hashtable の「永続化」です)。" -#: index.docbook:398 -msgid "Note that the dynamic-update and dynamic-insert settings are not inherited by subclasses and so may also be specified on the <subclass> or <joined-subclass> elements. These settings may increase performance in some cases, but might actually decrease performance in others. Use judiciously." -msgstr "dynamic-updatedynamic-insert の設定はサブクラスに継承されません。 そのため <subclass><joined-subclass> 要素を指定することも出来ます。 これらの設定はパフォーマンスを向上させる事もありますが、落とすこともありますので、慎重に使用してください。" +#. Tag: para +#: basic_mapping.xml:398 +#, no-c-format +msgid "" +"Note that the dynamic-update and dynamic-insert settings are not inherited by subclasses and so may also be " +"specified on the <subclass> or <joined-" +"subclass> elements. These settings may increase performance in " +"some cases, but might actually decrease performance in others. Use " +"judiciously." +msgstr "" +"dynamic-updatedynamic-insert の設定" +"はサブクラスに継承されません。 そのため <subclass> " +"や <joined-subclass> 要素を指定することも出来ます。 " +"これらの設定はパフォーマンスを向上させる事もありますが、落とすこともあります" +"ので、慎重に使用してください。" -#: index.docbook:406 -msgid "Use of select-before-update will usually decrease performance. It is very useful to prevent a database update trigger being called unnecessarily if you reattach a graph of detached instances to a Session." -msgstr "select-before-update の使用は通常パフォーマンスを落とします。 もし Session へ分離インスタンスのグラフを再追加するなら、 データベース更新のトリガを不必要に呼び出すのを避けるという点で、非常に有用です。" +#. Tag: para +#: basic_mapping.xml:406 +#, no-c-format +msgid "" +"Use of select-before-update will usually decrease " +"performance. It is very useful to prevent a database update trigger being " +"called unnecessarily if you reattach a graph of detached instances to a " +"Session." +msgstr "" +"select-before-update の使用は通常パフォーマンスを落としま" +"す。 もし Session へ分離インスタンスのグラフを再追加するな" +"ら、 データベース更新のトリガを不必要に呼び出すのを避けるという点で、非常に有" +"用です。" -#: index.docbook:412 -msgid "If you enable dynamic-update, you will have a choice of optimistic locking strategies:" -msgstr "dynamic-update を有効にすれば、楽観ロック戦略を選ぶことになります。" +#. Tag: para +#: basic_mapping.xml:412 +#, no-c-format +msgid "" +"If you enable dynamic-update, you will have a choice of " +"optimistic locking strategies:" +msgstr "" +"dynamic-update を有効にすれば、楽観ロック戦略を選ぶことに" +"なります。" -#: index.docbook:418 +#. Tag: para +#: basic_mapping.xml:418 +#, no-c-format msgid "version check the version/timestamp columns" -msgstr "version バージョン/タイムスタンプカラムをチェックします" +msgstr "" +"version バージョン/タイムスタンプカラムをチェックします" -#: index.docbook:423 +#. Tag: para +#: basic_mapping.xml:423 +#, no-c-format msgid "all check all columns" msgstr "all すべてのカラムをチェックします。" -#: index.docbook:428 -msgid "dirty check the changed columns, allowing some concurrent updates" -msgstr "dirty 変更したカラムをチェックし、同時更新できるようにします。" +#. Tag: para +#: basic_mapping.xml:428 +#, no-c-format +msgid "" +"dirty check the changed columns, allowing some concurrent " +"updates" +msgstr "" +"dirty 変更したカラムをチェックし、同時更新できるようにしま" +"す。" -#: index.docbook:433 +#. Tag: para +#: basic_mapping.xml:433 +#, no-c-format msgid "none do not use optimistic locking" msgstr "none 楽観ロックを使用しません" -#: index.docbook:438 -msgid "We very strongly recommend that you use version/timestamp columns for optimistic locking with Hibernate. This is the optimal strategy with respect to performance and is the only strategy that correctly handles modifications made to detached instances (ie. when Session.merge() is used)." -msgstr "Hibernateで楽観的ロック戦略を使うなら、バージョン/タイムスタンプカラムを使うことを 非常に 強くお勧めします。 楽観的ロックはパフォーマンスの観点からも最適であり、さらに分離インスタンスへの修正 (つまり Session.marge() が使われるとき) を正確に扱うことのできる唯一の戦略でもあります。" - -#: index.docbook:445 -msgid "There is no difference between a view and a base table for a Hibernate mapping, as expected this is transparent at the database level (note that some DBMS don't support views properly, especially with updates). Sometimes you want to use a view, but can't create one in the database (ie. with a legacy schema). In this case, you can map an immutable and read-only entity to a given SQL subselect expression:" -msgstr "Hibernateのマッピングにとってビューと普通のテーブルの間に違いはなく、 データベースレベルでは透過的です (ただしビューを完全にはサポートしていないDBMSもあります。 特に、更新のあるビューに対してはそうです)。 ビューを使いたくても、データベースで作成できないことがあります (例えば、レガシースキーマの場合)。 この場合には、不変かつ読み取り専用のエンティティに与えられたSQLの副問合せ文をマップできます。" - -#: index.docbook:453 +#. Tag: para +#: basic_mapping.xml:438 +#, no-c-format msgid "" - "\n" - " \n" - " select item.name, max(bid.amount), count(*)\n" - " from item\n" - " join bid on bid.item_id = item.id\n" - " group by item.name\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - "]]>" +"We very strongly recommend that you use version/" +"timestamp columns for optimistic locking with Hibernate. This is the optimal " +"strategy with respect to performance and is the only strategy that correctly " +"handles modifications made to detached instances (ie. when Session." +"merge() is used)." msgstr "" - " \n" - " \n" - " select item.name, max(bid.amount), count(*) \n" - " from item \n" - " join bid on bid.item_id = item.id \n" - " group by item.name \n" - " \n" - " \n" - " \n" - " \n" - " ... \n" - "]]>" +"Hibernateで楽観的ロック戦略を使うなら、バージョン/タイムスタンプカラムを使う" +"ことを 非常に 強くお勧めします。 楽観的ロックはパフォー" +"マンスの観点からも最適であり、さらに分離インスタンスへの修正 (つまり " +"Session.marge() が使われるとき) を正確に扱うことのできる" +"唯一の戦略でもあります。" -#: index.docbook:455 -msgid "Declare the tables to synchronize this entity with, ensuring that auto-flush happens correctly, and that queries against the derived entity do not return stale data. The <subselect> is available as both as an attribute and a nested mapping element." -msgstr "テーブルをこのエンティティと同期するように定義してください。 オートフラッシュが確実に起こるように、また導出エンティティに対するクエリが古いデータを 返さないようにするためです。 <subselect> は属性とネストしたマッピング属性のどちらでも利用できます。" +#. Tag: para +#: basic_mapping.xml:445 +#, no-c-format +msgid "" +"There is no difference between a view and a base table for a Hibernate " +"mapping, as expected this is transparent at the database level (note that " +"some DBMS don't support views properly, especially with updates). Sometimes " +"you want to use a view, but can't create one in the database (ie. with a " +"legacy schema). In this case, you can map an immutable and read-only entity " +"to a given SQL subselect expression:" +msgstr "" +"Hibernateのマッピングにとってビューと普通のテーブルの間に違いはなく、 データ" +"ベースレベルでは透過的です (ただしビューを完全にはサポートしていないDBMSもあ" +"ります。 特に、更新のあるビューに対してはそうです)。 ビューを使いたくても、" +"データベースで作成できないことがあります (例えば、レガシースキーマの場" +"合)。 この場合には、不変かつ読み取り専用のエンティティに与えられたSQLの副問" +"合せ文をマップできます。" -#: index.docbook:465 +#. Tag: programlisting +#: basic_mapping.xml:453 +#, no-c-format +msgid "" +"\n" +" \n" +" select item.name, max(bid.amount), count(*)\n" +" from item\n" +" join bid on bid.item_id = item.id\n" +" group by item.name\n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:455 +#, no-c-format +msgid "" +"Declare the tables to synchronize this entity with, ensuring that auto-flush " +"happens correctly, and that queries against the derived entity do not return " +"stale data. The <subselect> is available as both as " +"an attribute and a nested mapping element." +msgstr "" +"テーブルをこのエンティティと同期するように定義してください。 オートフラッシュ" +"が確実に起こるように、また導出エンティティに対するクエリが古いデータを 返さな" +"いようにするためです。 <subselect> は属性とネストし" +"たマッピング属性のどちらでも利用できます。" + +#. Tag: title +#: basic_mapping.xml:465 +#, no-c-format msgid "id" -msgstr "id" - -#: index.docbook:467 -msgid "Mapped classes must declare the primary key column of the database table. Most classes will also have a JavaBeans-style property holding the unique identifier of an instance. The <id> element defines the mapping from that property to the primary key column." -msgstr "マップされたクラスはデータベーステーブルの主キーカラムを定義 しなければなりません 。 ほとんどのクラスにはインスタンスのユニークな識別子を保持するJavaBeansスタイルのプロパティもあります。 <id> 要素は、そのプロパティから主キーカラムへのマッピングを定義します。" - -#: index.docbook:482 -msgid "" - "\n" - " node=\"element-name|@attribute-name|element/@attribute|.\"\n" - "\n" - " \n" - "]]>" msgstr "" - " \n" - " node=\"element-name|@attribute-name|element/@attribute|.\" \n" - " \n" - " \n" - "]]>" -#: index.docbook:485 -msgid "name (optional): The name of the identifier property." +#. Tag: para +#: basic_mapping.xml:467 +#, no-c-format +msgid "" +"Mapped classes must declare the primary key column of " +"the database table. Most classes will also have a JavaBeans-style property " +"holding the unique identifier of an instance. The <id> element defines the mapping from that property to the primary key " +"column." +msgstr "" +"マップされたクラスはデータベーステーブルの主キーカラムを定義 しなけ" +"ればなりません 。 ほとんどのクラスにはインスタンスのユニークな識別" +"子を保持するJavaBeansスタイルのプロパティもあります。 <id> 要素は、そのプロパティから主キーカラムへのマッピングを定義します。" + +#. Tag: programlisting +#: basic_mapping.xml:482 +#, no-c-format +msgid "" +"\n" +" node=\"element-name|@attribute-name|element/@attribute|.\"\n" +"\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:485 +#, no-c-format +msgid "" +"name (optional): The name of the identifier property." msgstr "name(オプション):識別子プロパティの名前。" -#: index.docbook:490 -msgid "type (optional): A name that indicates the Hibernate type." +#. Tag: para +#: basic_mapping.xml:490 +#, no-c-format +msgid "" +"type (optional): A name that indicates the Hibernate type." msgstr "type(オプション):Hibernateの型を示す名前。" -#: index.docbook:495 -msgid "column (optional - defaults to the property name): The name of the primary key column." -msgstr "column(オプション - デフォルトはプロパティ名): 主キーカラムの名前。" +#. Tag: para +#: basic_mapping.xml:495 +#, no-c-format +msgid "" +"column (optional - defaults to the property name): The " +"name of the primary key column." +msgstr "" +"column(オプション - デフォルトはプロパティ名): 主キーカ" +"ラムの名前。" -#: index.docbook:501 -msgid "unsaved-value (optional - defaults to a \"sensible\" value): An identifier property value that indicates that an instance is newly instantiated (unsaved), distinguishing it from detached instances that were saved or loaded in a previous session." -msgstr "unsaved-value(オプション - デフォルトの値はsensible): インスタンスが新しくインスタンス化された (セーブされていない)ことを示す、識別子プロパティの値。 以前のSessionでセーブまたはロードされた一時的インスタンスと区別するために 使います。" +#. Tag: para +#: basic_mapping.xml:501 +#, no-c-format +msgid "" +"unsaved-value (optional - defaults to a \"sensible\" " +"value): An identifier property value that indicates that an instance is " +"newly instantiated (unsaved), distinguishing it from detached instances that " +"were saved or loaded in a previous session." +msgstr "" +"unsaved-value(オプション - デフォルトの値はsensible): " +"インスタンスが新しくインスタンス化された (セーブされていない)ことを示す、識" +"別子プロパティの値。 以前のSessionでセーブまたはロードされた一時的インスタン" +"スと区別するために 使います。" -#: index.docbook:509, index.docbook:1017, index.docbook:1156, index.docbook:1238, index.docbook:1345, index.docbook:1534, index.docbook:1708, index.docbook:1878, index.docbook:2457 -msgid "access (optional - defaults to property): The strategy Hibernate should use for accessing the property value." -msgstr "access(オプション - デフォルトは property ): プロパティの値へアクセスするためにHibernateが使う戦略です。" +#. Tag: para +#: basic_mapping.xml:509 basic_mapping.xml:1017 basic_mapping.xml:1156 +#: basic_mapping.xml:1238 basic_mapping.xml:1345 basic_mapping.xml:1534 +#: basic_mapping.xml:1708 basic_mapping.xml:1878 basic_mapping.xml:2457 +#, fuzzy, no-c-format +msgid "" +"access (optional - defaults to property): The strategy Hibernate should use for accessing the property " +"value." +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"access(オプション - デフォルトは property ): プロパティの値へアクセスするためにHibernateが使う戦略です。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"access (オプション - デフォルトは property ): Hibernateがプロパティの値にアクセスするために使用すべき戦略。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"access (オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"access (オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"access(オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"access(オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"access(オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"access (オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"access(オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。" -#: index.docbook:517 -msgid "If the name attribute is missing, it is assumed that the class has no identifier property." -msgstr "name 属性がなければ、クラスには識別子プロパティがないものとみなされます。" +#. Tag: para +#: basic_mapping.xml:517 +#, no-c-format +msgid "" +"If the name attribute is missing, it is assumed that the " +"class has no identifier property." +msgstr "" +"name 属性がなければ、クラスには識別子プロパティがないもの" +"とみなされます。" -#: index.docbook:522 -msgid "The unsaved-value attribute is almost never needed in Hibernate3." -msgstr "unsaved-value 属性はHibernate3ではほとんどの場合、必要ではありません。" +#. Tag: para +#: basic_mapping.xml:522 +#, no-c-format +msgid "" +"The unsaved-value attribute is almost never needed in " +"Hibernate3." +msgstr "" +"unsaved-value 属性はHibernate3ではほとんどの場合、必要では" +"ありません。" -#: index.docbook:526 -msgid "There is an alternative <composite-id> declaration to allow access to legacy data with composite keys. We strongly discourage its use for anything else." -msgstr "複合キーを持つレガシーデータにアクセスできるように、 <composite-id> という代替のマッピング定義があります。 しかし他の用途への使用は全くおすすめできません。" +#. Tag: para +#: basic_mapping.xml:526 +#, no-c-format +msgid "" +"There is an alternative <composite-id> declaration " +"to allow access to legacy data with composite keys. We strongly discourage " +"its use for anything else." +msgstr "" +"複合キーを持つレガシーデータにアクセスできるように、 <composite-" +"id> という代替のマッピング定義があります。 しかし他の用途への使" +"用は全くおすすめできません。" -#: index.docbook:532 +#. Tag: title +#: basic_mapping.xml:532 +#, no-c-format msgid "Generator" msgstr "ジェネレータ" -#: index.docbook:534 -msgid "The optional <generator> child element names a Java class used to generate unique identifiers for instances of the persistent class. If any parameters are required to configure or initialize the generator instance, they are passed using the <param> element." -msgstr "オプションの <generator> 子要素は、 永続クラスのインスタンスのユニークな識別子を生成するために使う、Javaクラスを指定します。 ジェネレータインスタンスの設定、もしくは初期化にパラメータが必要であれば、<param> 要素を使って渡すことができます。" - -#: index.docbook:541 +#. Tag: para +#: basic_mapping.xml:534 +#, no-c-format msgid "" - "\n" - " \n" - " uid_table\n" - " next_hi_value_column\n" - " \n" - "]]>" +"The optional <generator> child element names a Java " +"class used to generate unique identifiers for instances of the persistent " +"class. If any parameters are required to configure or initialize the " +"generator instance, they are passed using the <param> element." msgstr "" - " \n" - " \n" - " uid_table \n" - " next_hi_value_column \n" - " \n" - "]]>" +"オプションの <generator> 子要素は、 永続クラスのイン" +"スタンスのユニークな識別子を生成するために使う、Javaクラスを指定します。 ジェ" +"ネレータインスタンスの設定、もしくは初期化にパラメータが必要であれば、" +"<param> 要素を使って渡すことができます。" -#: index.docbook:543 -msgid "All generators implement the interface org.hibernate.id.IdentifierGenerator. This is a very simple interface; some applications may choose to provide their own specialized implementations. However, Hibernate provides a range of built-in implementations. There are shortcut names for the built-in generators:" -msgstr "すべてのジェネレータは、インターフェイス org.hibernate.id.IdentifierGenerator を実装します。 これはとても単純なインターフェイスなので、特別な実装を独自に用意するアプリケーションもあるかもしれません。 しかしHibernateは組み込みの実装をいくつも用意しています。 組み込みのジェネレータには以下のショートカット名があります:" +#. Tag: programlisting +#: basic_mapping.xml:541 +#, no-c-format +msgid "" +"\n" +" \n" +" uid_table\n" +" next_hi_value_column\n" +" \n" +"]]>" +msgstr "" -#: index.docbook:551 +#. Tag: para +#: basic_mapping.xml:543 +#, fuzzy, no-c-format +msgid "" +"All generators implement the interface org.hibernate.id." +"IdentifierGenerator. This is a very simple interface; some " +"applications may choose to provide their own specialized implementations. " +"However, Hibernate provides a range of built-in implementations. There are " +"shortcut names for the built-in generators:" +msgstr "" +"すべてのジェネレータは、インターフェイス org.hibernate.id." +"IdentifierGenerator を実装します。 これはとても単純なインターフェイ" +"スなので、特別な実装を独自に用意するアプリケーションもあるかもしれません。 し" +"かしHibernateは組み込みの実装をいくつも用意しています。 組み込みのジェネレー" +"タには以下のショートカット名があります: " + +#. Tag: literal +#: basic_mapping.xml:551 +#, no-c-format msgid "increment" msgstr "increment" -#: index.docbook:553 -msgid "generates identifiers of type long, short or int that are unique only when no other process is inserting data into the same table. Do not use in a cluster." -msgstr "long , short , int 型の識別子を生成します。 これらは他のプロセスが同じテーブルにデータを挿入しないときだけユニークです。 クラスタ内では使わないでください 。" +#. Tag: para +#: basic_mapping.xml:553 +#, no-c-format +msgid "" +"generates identifiers of type long, short or int that are unique only when no other " +"process is inserting data into the same table. Do not use in a " +"cluster." +msgstr "" +"long , short , int " +"型の識別子を生成します。 これらは他のプロセスが同じテーブルにデータを挿入しな" +"いときだけユニークです。 クラスタ内では使わないでください 。" -#: index.docbook:562 +#. Tag: literal +#: basic_mapping.xml:562 +#, no-c-format msgid "identity" msgstr "identity" -#: index.docbook:564 -msgid "supports identity columns in DB2, MySQL, MS SQL Server, Sybase and HypersonicSQL. The returned identifier is of type long, short or int." -msgstr "DB2, MySQL, MS SQL Server, Sybase, HypersonicSQLの識別子カラムを サポートします。 返される識別子の型は long , short , int のいずれかです。" +#. Tag: para +#: basic_mapping.xml:564 +#, no-c-format +msgid "" +"supports identity columns in DB2, MySQL, MS SQL Server, Sybase and " +"HypersonicSQL. The returned identifier is of type long, " +"short or int." +msgstr "" +"DB2, MySQL, MS SQL Server, Sybase, HypersonicSQLの識別子カラムを サポートしま" +"す。 返される識別子の型は long , short , int のいずれかです。" -#: index.docbook:572 +#. Tag: literal +#: basic_mapping.xml:572 +#, no-c-format msgid "sequence" msgstr "sequence" -#: index.docbook:574 -msgid "uses a sequence in DB2, PostgreSQL, Oracle, SAP DB, McKoi or a generator in Interbase. The returned identifier is of type long, short or int" -msgstr "DB2, PostgreSQL, Oracle, SAP DB, McKoiのシーケンスや、Interbaseのジェネレータを使用します。 返される識別子の型は long , short , int のいずれかです。" +#. Tag: para +#: basic_mapping.xml:574 +#, no-c-format +msgid "" +"uses a sequence in DB2, PostgreSQL, Oracle, SAP DB, McKoi or a generator in " +"Interbase. The returned identifier is of type long, " +"short or int" +msgstr "" +"DB2, PostgreSQL, Oracle, SAP DB, McKoiのシーケンスや、Interbaseのジェネレータ" +"を使用します。 返される識別子の型は long , " +"short , int のいずれかです。" -#: index.docbook:582 +#. Tag: literal +#: basic_mapping.xml:582 +#, no-c-format msgid "hilo" msgstr "hilo" -#: index.docbook:584 -msgid "uses a hi/lo algorithm to efficiently generate identifiers of type long, short or int, given a table and column (by default hibernate_unique_key and next_hi respectively) as a source of hi values. The hi/lo algorithm generates identifiers that are unique only for a particular database." -msgstr "long , short , int 型の識別子を効率的に生成するhi/loアルゴリズムを使います。 hi値のソースとして、テーブルとカラムを与えます(デフォルトではそれぞれ hibernate_unique_keynext_hi )。 hi/loアルゴリズムは特定のデータベースに対してのみユニークな識別子を生成します。" +#. Tag: para +#: basic_mapping.xml:584 +#, no-c-format +msgid "" +"uses a hi/lo algorithm to efficiently generate identifiers of type " +"long, short or int, " +"given a table and column (by default hibernate_unique_key " +"and next_hi respectively) as a source of hi values. The " +"hi/lo algorithm generates identifiers that are unique only for a particular " +"database." +msgstr "" +"long , short , int " +"型の識別子を効率的に生成するhi/loアルゴリズムを使います。 hi値のソースとし" +"て、テーブルとカラムを与えます(デフォルトではそれぞれ " +"hibernate_unique_keynext_hi )。 hi/" +"loアルゴリズムは特定のデータベースに対してのみユニークな識別子を生成します。" -#: index.docbook:594 +#. Tag: literal +#: basic_mapping.xml:594 +#, no-c-format msgid "seqhilo" msgstr "seqhilo" -#: index.docbook:596 -msgid "uses a hi/lo algorithm to efficiently generate identifiers of type long, short or int, given a named database sequence." -msgstr "long , short , int 型の識別子を効率的に生成するhi/loアルゴリズムを使います。 指定されたデータベースシーケンスを与えます。" +#. Tag: para +#: basic_mapping.xml:596 +#, no-c-format +msgid "" +"uses a hi/lo algorithm to efficiently generate identifiers of type " +"long, short or int, " +"given a named database sequence." +msgstr "" +"long , short , int " +"型の識別子を効率的に生成するhi/loアルゴリズムを使います。 指定されたデータ" +"ベースシーケンスを与えます。" -#: index.docbook:604 +#. Tag: literal +#: basic_mapping.xml:604 +#, no-c-format msgid "uuid" msgstr "uuid" -#: index.docbook:606 -msgid "uses a 128-bit UUID algorithm to generate identifiers of type string, unique within a network (the IP address is used). The UUID is encoded as a string of hexadecimal digits of length 32." -msgstr "(IPアドレスが使用される)ネットワーク内でユニークな文字列型の識別子を生成するために、 128ビットのUUIDアルゴリズムを使用します。UUIDは長さ32の16進数字の文字列としてエンコードされます。" +#. Tag: para +#: basic_mapping.xml:606 +#, no-c-format +msgid "" +"uses a 128-bit UUID algorithm to generate identifiers of type string, unique " +"within a network (the IP address is used). The UUID is encoded as a string " +"of hexadecimal digits of length 32." +msgstr "" +"(IPアドレスが使用される)ネットワーク内でユニークな文字列型の識別子を生成する" +"ために、 128ビットのUUIDアルゴリズムを使用します。UUIDは長さ32の16進数字の文" +"字列としてエンコードされます。" -#: index.docbook:614 +#. Tag: literal +#: basic_mapping.xml:614 +#, no-c-format msgid "guid" msgstr "guid" -#: index.docbook:616 +#. Tag: para +#: basic_mapping.xml:616 +#, no-c-format msgid "uses a database-generated GUID string on MS SQL Server and MySQL." msgstr "MS SQLサーバとMySQLでデータベースが生成するGUID文字列を使用します。" -#: index.docbook:622 +#. Tag: literal +#: basic_mapping.xml:622 +#, no-c-format msgid "native" msgstr "native" -#: index.docbook:624 -msgid "picks identity, sequence or hilo depending upon the capabilities of the underlying database." -msgstr "使用するデータベースの性能により identity , sequence , hilo のいずれかが選ばれます。" +#. Tag: para +#: basic_mapping.xml:624 +#, no-c-format +msgid "" +"picks identity, sequence or " +"hilo depending upon the capabilities of the underlying " +"database." +msgstr "" +"使用するデータベースの性能により identity , " +"sequence , hilo のいずれかが選ばれま" +"す。" -#: index.docbook:632 +#. Tag: literal +#: basic_mapping.xml:632 +#, no-c-format msgid "assigned" msgstr "assigned" -#: index.docbook:634 -msgid "lets the application to assign an identifier to the object before save() is called. This is the default strategy if no <generator> element is specified." -msgstr "save() が呼ばれる前に、 アプリケーションがオブジェクトに識別子を代入できるようにします。 <generator> が指定されていなければ、これがデフォルトの戦略になります。" +#. Tag: para +#: basic_mapping.xml:634 +#, no-c-format +msgid "" +"lets the application to assign an identifier to the object before " +"save() is called. This is the default strategy if no " +"<generator> element is specified." +msgstr "" +"save() が呼ばれる前に、 アプリケーションがオブジェクトに識" +"別子を代入できるようにします。 <generator> が指定さ" +"れていなければ、これがデフォルトの戦略になります。" -#: index.docbook:642 +#. Tag: literal +#: basic_mapping.xml:642 +#, no-c-format msgid "select" msgstr "select" -#: index.docbook:644 -msgid "retrieves a primary key assigned by a database trigger by selecting the row by some unique key and retrieving the primary key value." -msgstr "あるユニークキーによる行の選択と主キーの値の復元により、 データベーストリガが割り当てた主キーを取得します。" +#. Tag: para +#: basic_mapping.xml:644 +#, no-c-format +msgid "" +"retrieves a primary key assigned by a database trigger by selecting the row " +"by some unique key and retrieving the primary key value." +msgstr "" +"あるユニークキーによる行の選択と主キーの値の復元により、 データベーストリガが" +"割り当てた主キーを取得します。" -#: index.docbook:651 +#. Tag: literal +#: basic_mapping.xml:651 +#, no-c-format msgid "foreign" msgstr "foreign" -#: index.docbook:653 -msgid "uses the identifier of another associated object. Usually used in conjunction with a <one-to-one> primary key association." -msgstr "他の関連オブジェクトの識別子を使います。 普通は、<one-to-one> 主キー関連と組み合わせて使います。" +#. Tag: para +#: basic_mapping.xml:653 +#, no-c-format +msgid "" +"uses the identifier of another associated object. Usually used in " +"conjunction with a <one-to-one> primary key " +"association." +msgstr "" +"他の関連オブジェクトの識別子を使います。 普通は、<one-to-one>" +" 主キー関連と組み合わせて使います。" -#: index.docbook:660 +#. Tag: literal +#: basic_mapping.xml:660 +#, no-c-format msgid "sequence-identity" +msgstr "sequence-identity" + +#. Tag: para +#: basic_mapping.xml:662 +#, no-c-format +msgid "" +"a specialized sequence generation strategy which utilizes a database " +"sequence for the actual value generation, but combines this with JDBC3 " +"getGeneratedKeys to actually return the generated identifier value as part " +"of the insert statement execution. This strategy is only known to be " +"supported on Oracle 10g drivers targetted for JDK 1.4. Note comments on " +"these insert statements are disabled due to a bug in the Oracle drivers." +msgstr "" +"a specialized sequence generation strategy which utilizes a database " +"sequence for the actual value generation, but combines this with JDBC3 " +"getGeneratedKeys to actually return the generated identifier value as part " +"of the insert statement execution. This strategy is only known to be " +"supported on Oracle 10g drivers targetted for JDK 1.4. Note comments on " +"these insert statements are disabled due to a bug in the Oracle drivers." + +#. Tag: title +#: basic_mapping.xml:679 +#, no-c-format +msgid "Hi/lo algorithm" msgstr "Hi/lo アルゴリズム" -#: index.docbook:662 -msgid "a specialized sequence generation strategy which utilizes a database sequence for the actual value generation, but combines this with JDBC3 getGeneratedKeys to actually return the generated identifier value as part of the insert statement execution. This strategy is only known to be supported on Oracle 10g drivers targetted for JDK 1.4. Note comments on these insert statements are disabled due to a bug in the Oracle drivers." -msgstr "hiloseqhilo ジェネレータは、 識別子生成の代表的なアプローチであるhi/loアルゴリズムの2つの代替実装を提供します。 1番目の実装は、次回に利用される\"hi\"値を保持する「特別な」データベーステーブルを 必要とします。 2番目の実装は、Oracleスタイルのシーケンスを使います(サポートされている場合)。" - -#: index.docbook:679 -msgid "Hi/lo algorithm" -msgstr "" - " \n" - " \n" - " hi_value \n" - " next_value \n" - " 100 \n" - " \n" - "]]>" - -#: index.docbook:680 -msgid "The hilo and seqhilo generators provide two alternate implementations of the hi/lo algorithm, a favorite approach to identifier generation. The first implementation requires a \"special\" database table to hold the next available \"hi\" value. The second uses an Oracle-style sequence (where supported)." -msgstr "" - " \n" - " \n" - " hi_value \n" - " 100 \n" - " \n" - "]]>" - -#: index.docbook:687 +#. Tag: para +#: basic_mapping.xml:680 +#, no-c-format msgid "" - "\n" - " \n" - " hi_value\n" - " next_value\n" - " 100\n" - " \n" - "]]>" -msgstr "残念ながらHibernateへの独自の Connection を提供するときには、hilo を使えません。 HibernateがJTAでリストされている接続を取得するためにアプリケーションサーバーのデータソースを使用しているときには、 hibernate.transaction.manager_lookup_class を適切に設定しなければなりません。" +"The hilo and seqhilo generators " +"provide two alternate implementations of the hi/lo algorithm, a favorite " +"approach to identifier generation. The first implementation requires a " +"\"special\" database table to hold the next available \"hi\" value. The " +"second uses an Oracle-style sequence (where supported)." +msgstr "" +"hiloseqhilo ジェネレータは、 識別子" +"生成の代表的なアプローチであるhi/loアルゴリズムの2つの代替実装を提供します。 " +"1番目の実装は、次回に利用される\"hi\"値を保持する「特別な」データベーステーブ" +"ルを 必要とします。 2番目の実装は、Oracleスタイルのシーケンスを使います(サ" +"ポートされている場合)。" -#: index.docbook:689 +#. Tag: programlisting +#: basic_mapping.xml:687 +#, no-c-format msgid "" - "\n" - " \n" - " hi_value\n" - " 100\n" - " \n" - "]]>" +"\n" +" \n" +" hi_value\n" +" next_value\n" +" 100\n" +" \n" +"]]>" +msgstr "" + +#. Tag: programlisting +#: basic_mapping.xml:689 +#, no-c-format +msgid "" +"\n" +" \n" +" hi_value\n" +" 100\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:691 +#, no-c-format +msgid "" +"Unfortunately, you can't use hilo when supplying your own " +"Connection to Hibernate. When Hibernate is using an " +"application server datasource to obtain connections enlisted with JTA, you " +"must properly configure the hibernate.transaction." +"manager_lookup_class." +msgstr "" +"残念ながらHibernateへの独自の Connection を提供するときに" +"は、hilo を使えません。 HibernateがJTAでリストされている接" +"続を取得するためにアプリケーションサーバーのデータソースを使用しているときに" +"は、 hibernate.transaction.manager_lookup_class を適切に設" +"定しなければなりません。" + +#. Tag: title +#: basic_mapping.xml:700 +#, no-c-format +msgid "UUID algorithm" msgstr "UUID アルゴリズム" -#: index.docbook:691 -msgid "Unfortunately, you can't use hilo when supplying your own Connection to Hibernate. When Hibernate is using an application server datasource to obtain connections enlisted with JTA, you must properly configure the hibernate.transaction.manager_lookup_class." -msgstr "UUIDには以下のものが含まれます: IPアドレス、JVMのスタートアップタイム(4分の1秒の正確さ)、 システム時間、(JVMに対してユニークな)カウンタ値。 JavaコードからMACアドレスやメモリアドレスを取得することはできないので、 JNIが使えないときの最良の方法です。" +#. Tag: para +#: basic_mapping.xml:701 +#, no-c-format +msgid "" +"The UUID contains: IP address, startup time of the JVM (accurate to a " +"quarter second), system time and a counter value (unique within the JVM). " +"It's not possible to obtain a MAC address or memory address from Java code, " +"so this is the best we can do without using JNI." +msgstr "" +"UUIDには以下のものが含まれます: IPアドレス、JVMのスタートアップタイム(4分の" +"1秒の正確さ)、 システム時間、(JVMに対してユニークな)カウンタ値。 Javaコー" +"ドからMACアドレスやメモリアドレスを取得することはできないので、 JNIが使えない" +"ときの最良の方法です。" -#: index.docbook:700 -msgid "UUID algorithm" +#. Tag: title +#: basic_mapping.xml:710 +#, no-c-format +msgid "Identity columns and sequences" msgstr "識別子カラムとシーケンス" -#: index.docbook:701 -msgid "The UUID contains: IP address, startup time of the JVM (accurate to a quarter second), system time and a counter value (unique within the JVM). It's not possible to obtain a MAC address or memory address from Java code, so this is the best we can do without using JNI." -msgstr "識別子カラムをサポートしているデータベース(DB2, MySQL, Sybase, MS SQL)では、 identity キー生成を使えます。 シーケンスをサポートするデータベース(DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB)では、 sequence スタイルのキー生成を使えます。 どちらの戦略も、新しいオブジェクトを挿入するために、SQLクエリを2つ必要とします。" - -#: index.docbook:710 -msgid "Identity columns and sequences" -msgstr "" - " \n" - " \n" - " person_id_sequence \n" - " \n" - "]]>" - -#: index.docbook:711 -msgid "For databases which support identity columns (DB2, MySQL, Sybase, MS SQL), you may use identity key generation. For databases that support sequences (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) you may use sequence style key generation. Both these strategies require two SQL queries to insert a new object." -msgstr "" - " \n" - " \n" - "]]>" - -#: index.docbook:719 +#. Tag: para +#: basic_mapping.xml:711 +#, no-c-format msgid "" - "\n" - " \n" - " person_id_sequence\n" - " \n" - "]]>" -msgstr "クロスプラットフォームの開発では、native 戦略は identity , sequence , hilo 戦略の中から1つを選択しますが、 これは使用しているデータベースの能力に依存します。" +"For databases which support identity columns (DB2, MySQL, Sybase, MS SQL), " +"you may use identity key generation. For databases that " +"support sequences (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) you " +"may use sequence style key generation. Both these " +"strategies require two SQL queries to insert a new object." +msgstr "" +"識別子カラムをサポートしているデータベース(DB2, MySQL, Sybase, MS SQL)で" +"は、 identity キー生成を使えます。 シーケンスをサポートす" +"るデータベース(DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB)では、 " +"sequence スタイルのキー生成を使えます。 どちらの戦略も、新" +"しいオブジェクトを挿入するために、SQLクエリを2つ必要とします。" -#: index.docbook:721 +#. Tag: programlisting +#: basic_mapping.xml:719 +#, no-c-format msgid "" - "\n" - " \n" - "]]>" +"\n" +" \n" +" person_id_sequence\n" +" \n" +"]]>" +msgstr "" + +#. Tag: programlisting +#: basic_mapping.xml:721 +#, no-c-format +msgid "" +"\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:723 +#, no-c-format +msgid "" +"For cross-platform development, the native strategy will " +"choose from the identity, sequence and " +"hilo strategies, dependant upon the capabilities of the " +"underlying database." +msgstr "" +"クロスプラットフォームの開発では、native 戦略は " +"identity , sequence , hilo 戦略の中から1つを選択しますが、 これは使用しているデータベースの能力" +"に依存します。" + +#. Tag: title +#: basic_mapping.xml:732 +#, no-c-format +msgid "Assigned identifiers" msgstr "識別子の割り当て" -#: index.docbook:723 -msgid "For cross-platform development, the native strategy will choose from the identity, sequence and hilo strategies, dependant upon the capabilities of the underlying database." -msgstr "アプリケーションに識別子を割り当てさせたいのであれば(Hibernateが生成するものではなく)、 assigned ジェネレータを使うことができます。 この特別なジェネレータは、すでにオブジェクトの識別子プロパティに代入された値を 識別子に使います。このジェネレータは主キーが代理キーの代わりに自然キーである場合に使用します。 <generator> 要素を指定しない場合のデフォルトの動作になります。" +#. Tag: para +#: basic_mapping.xml:733 +#, no-c-format +msgid "" +"If you want the application to assign identifiers (as opposed to having " +"Hibernate generate them), you may use the assigned " +"generator. This special generator will use the identifier value already " +"assigned to the object's identifier property. This generator is used when " +"the primary key is a natural key instead of a surrogate key. This is the " +"default behavior if you do no specify a <generator> " +"element." +msgstr "" +"アプリケーションに識別子を割り当てさせたいのであれば(Hibernateが生成するもの" +"ではなく)、 assigned ジェネレータを使うことができます。 " +"この特別なジェネレータは、すでにオブジェクトの識別子プロパティに代入された値" +"を 識別子に使います。このジェネレータは主キーが代理キーの代わりに自然キーであ" +"る場合に使用します。 <generator> 要素を指定しない場" +"合のデフォルトの動作になります。" -#: index.docbook:732 -msgid "Assigned identifiers" -msgstr "assigned ジェネレータを選択すると、 Hibernateは unsaved-value=\"undefined\" を使用します。 そして、バージョンやタイムスタンプのプロパティがない場合や Interceptor.isUnsaved() を定義しなかった場合には、インスタンスが一時的(transient)なものであるのか、 またはセッションから分離(detached)したものかどうかを決めるために、データベースを調べます。" +#. Tag: para +#: basic_mapping.xml:742 +#, no-c-format +msgid "" +"Choosing the assigned generator makes Hibernate use " +"unsaved-value=\"undefined\", forcing Hibernate to go to " +"the database to determine if an instance is transient or detached, unless " +"there is a version or timestamp property, or you define Interceptor." +"isUnsaved()." +msgstr "" +"assigned ジェネレータを選択すると、 Hibernateは " +"unsaved-value=\"undefined\" を使用します。 そして、バー" +"ジョンやタイムスタンプのプロパティがない場合や Interceptor.isUnsaved" +"() を定義しなかった場合には、インスタンスが一時的(transient)なもの" +"であるのか、 またはセッションから分離(detached)したものかどうかを決めるため" +"に、データベースを調べます。" -#: index.docbook:733 -msgid "If you want the application to assign identifiers (as opposed to having Hibernate generate them), you may use the assigned generator. This special generator will use the identifier value already assigned to the object's identifier property. This generator is used when the primary key is a natural key instead of a surrogate key. This is the default behavior if you do no specify a <generator> element." +#. Tag: title +#: basic_mapping.xml:752 +#, no-c-format +msgid "Primary keys assigned by triggers" msgstr "トリガにより割り当てられた主キー" -#: index.docbook:742 -msgid "Choosing the assigned generator makes Hibernate use unsaved-value=\"undefined\", forcing Hibernate to go to the database to determine if an instance is transient or detached, unless there is a version or timestamp property, or you define Interceptor.isUnsaved()." -msgstr "レガシースキーマのためにのみ指定します(Hibernateはトリガを使ってDDLを生成しません)。" - -#: index.docbook:752 -msgid "Primary keys assigned by triggers" -msgstr "" - " \n" - " \n" - " socialSecurityNumber \n" - " \n" - "]]>" - -#: index.docbook:753 -msgid "For legacy schemas only (Hibernate does not generate DDL with triggers)." -msgstr "上の例の中で、クラスで自然キーとして定義された socialSecurityNumber という名前のユニークな値のプロパティと、 値がトリガにより生成される person_id という名前の代理キーがあります。" - -#: index.docbook:757 +#. Tag: para +#: basic_mapping.xml:753 +#, no-c-format msgid "" - "\n" - " \n" - " socialSecurityNumber\n" - " \n" - "]]>" +"For legacy schemas only (Hibernate does not generate DDL with triggers)." +msgstr "" +"レガシースキーマのためにのみ指定します(Hibernateはトリガを使ってDDLを生成しま" +"せん)。" + +#. Tag: programlisting +#: basic_mapping.xml:757 +#, no-c-format +msgid "" +"\n" +" \n" +" socialSecurityNumber\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:759 +#, no-c-format +msgid "" +"In the above example, there is a unique valued property named " +"socialSecurityNumber defined by the class, as a natural " +"key, and a surrogate key named person_id whose value is " +"generated by a trigger." +msgstr "" +"上の例の中で、クラスで自然キーとして定義された " +"socialSecurityNumber という名前のユニークな値のプロパティ" +"と、 値がトリガにより生成される person_id という名前の代理" +"キーがあります。" + +#. Tag: title +#: basic_mapping.xml:771 +#, no-c-format +msgid "Enhanced identifier generators" +msgstr "Enhanced identifier generators" + +#. Tag: para +#: basic_mapping.xml:773 +#, no-c-format +msgid "" +"Starting with release 3.2.3, there are 2 new generators which represent a re-" +"thinking of 2 different aspects of identifier generation. The first aspect " +"is database portability; the second is optimization (not having to query the " +"database for every request for a new identifier value). These two new " +"generators are intended to take the place of some of the named generators " +"described above (starting in 3.3.x); however, they are included in the " +"current releases and can be referenced by FQN." +msgstr "" +"Starting with release 3.2.3, there are 2 new generators which represent a re-" +"thinking of 2 different aspects of identifier generation. The first aspect " +"is database portability; the second is optimization (not having to query the " +"database for every request for a new identifier value). These two new " +"generators are intended to take the place of some of the named generators " +"described above (starting in 3.3.x); however, they are included in the " +"current releases and can be referenced by FQN." + +#. Tag: para +#: basic_mapping.xml:781 +#, fuzzy, no-c-format +msgid "" +"The first of these new generators is org.hibernate.id.enhanced." +"SequenceStyleGenerator which is intended firstly as a replacement " +"for the sequence generator and secondly as a better " +"portability generator than native (because " +"native (generally) chooses between identity and sequence which have largely different " +"semantics which can cause subtle isssues in applications eyeing " +"portability). org.hibernate.id.enhanced.SequenceStyleGenerator however achieves portability in a different manner. It chooses " +"between using a table or a sequence in the database to store its " +"incrementing values depending on the capabilities of the dialect being used. " +"The difference between this and native is that table-" +"based and sequence-based storage have the same exact semantic (in fact " +"sequences are exactly what Hibernate tries to emmulate with its table-based " +"generators). This generator has a number of configuration parameters:" +msgstr "" +"The first of these new generators is org.hibernate.id.enhanced." +"SequenceStyleGenerator which is intended firstly as a replacement " +"for the sequence generator and secondly as a better " +"portability generator than native (because " +"native (generally) chooses between identity and sequence which have largely different " +"semantics which can cause subtle isssues in applications eyeing " +"portability). org.hibernate.id.enhanced.SequenceStyleGenerator however achieves portability in a different manner. It chooses " +"between using a table or a sequence in the database to store its " +"incrementing values depending on the capabilities of the dialect being used. " +"The difference between this and native is that table-" +"based and sequence-based storage have the same exact semantic (in fact " +"sequences are exactly what Hibernate tries to emmulate with its table-based " +"generators). This generator has a number of configuration parameters: " +"" + +#. Tag: para +#: basic_mapping.xml:795 +#, no-c-format +msgid "" +"sequence_name (optional, defaults to " +"hibernate_sequence): The name of the sequence (or table) " +"to be used." +msgstr "" +"sequence_name (optional, defaults to " +"hibernate_sequence): The name of the sequence (or table) " +"to be used." + +#. Tag: para +#: basic_mapping.xml:801 +#, no-c-format +msgid "" +"initial_value (optional, defaults to 1): The initial value to be retrieved from the sequence/table. In " +"sequence creation terms, this is analogous to the clause typical named " +"\"STARTS WITH\"." +msgstr "" +"initial_value (optional, defaults to 1): The initial value to be retrieved from the sequence/table. In " +"sequence creation terms, this is analogous to the clause typical named " +"\"STARTS WITH\"." + +#. Tag: para +#: basic_mapping.xml:808 +#, no-c-format +msgid "" +"increment_size (optional, defaults to 1): The value by which subsequent calls to the sequence/table should " +"differ. In sequence creation terms, this is analogous to the clause typical " +"named \"INCREMENT BY\"." +msgstr "" +"increment_size (optional, defaults to 1): The value by which subsequent calls to the sequence/table should " +"differ. In sequence creation terms, this is analogous to the clause typical " +"named \"INCREMENT BY\"." + +#. Tag: para +#: basic_mapping.xml:815 +#, no-c-format +msgid "" +"force_table_use (optional, defaults to false): Should we force the use of a table as the backing structure even " +"though the dialect might support sequence?" +msgstr "" +"force_table_use (optional, defaults to false): Should we force the use of a table as the backing structure even " +"though the dialect might support sequence?" + +#. Tag: para +#: basic_mapping.xml:822 +#, no-c-format +msgid "" +"value_column (optional, defaults to next_val): Only relevant for table structures! The name of the column on the " +"table which is used to hold the value." +msgstr "" +"value_column (optional, defaults to next_val): Only relevant for table structures! The name of the column on the " +"table which is used to hold the value." + +#. Tag: para +#: basic_mapping.xml:829 +#, fuzzy, no-c-format +msgid "" +"optimizer (optional, defaults to none): See" +msgstr "" +"cascade(オプション - デフォルトは none ): カスケードのスタイル。" + +#. Tag: para +#: basic_mapping.xml:836 +#, fuzzy, no-c-format +msgid "" +"The second of these new generators is org.hibernate.id.enhanced." +"TableGenerator which is intended firstly as a replacement for the " +"table generator (although it actually functions much more " +"like org.hibernate.id.MultipleHiLoPerTableGenerator) and " +"secondly as a re-implementation of org.hibernate.id." +"MultipleHiLoPerTableGenerator utilizing the notion of pluggable " +"optimiziers. Essentially this generator defines a table capable of holding a " +"number of different increment values simultaneously by using multiple " +"distinctly keyed rows. This generator has a number of configuration " +"parameters:" +msgstr "" +"The second of these new generators is org.hibernate.id.enhanced." +"TableGenerator which is intended firstly as a replacement for the " +"table generator (although it actually functions much more " +"like org.hibernate.id.MultipleHiLoPerTableGenerator) and " +"secondly as a re-implementation of org.hibernate.id." +"MultipleHiLoPerTableGenerator utilizing the notion of pluggable " +"optimiziers. Essentially this generator defines a table capable of holding a " +"number of different increment values simultaneously by using multiple " +"distinctly keyed rows. This generator has a number of configuration " +"parameters: " + +#. Tag: para +#: basic_mapping.xml:846 +#, no-c-format +msgid "" +"table_name (optional, defaults to " +"hibernate_sequences): The name of the table to be used." +msgstr "" +"table_name (optional, defaults to " +"hibernate_sequences): The name of the table to be used." + +#. Tag: para +#: basic_mapping.xml:852 +#, no-c-format +msgid "" +"value_column_name (optional, defaults to " +"next_val): The name of the column on the table which is " +"used to hold the value." +msgstr "" +"value_column_name (optional, defaults to " +"next_val): The name of the column on the table which is " +"used to hold the value." + +#. Tag: para +#: basic_mapping.xml:858 +#, no-c-format +msgid "" +"segment_column_name (optional, defaults to " +"sequence_name): The name of the column on the table which " +"is used to hold the \"segement key\". This is the value which distinctly " +"identifies which increment value to use." +msgstr "" +"segment_column_name (optional, defaults to " +"sequence_name): The name of the column on the table which " +"is used to hold the \"segement key\". This is the value which distinctly " +"identifies which increment value to use." + +#. Tag: para +#: basic_mapping.xml:865 +#, no-c-format +msgid "" +"segment_value (optional, defaults to default): The \"segment key\" value for the segment from which we want to " +"pull increment values for this generator." +msgstr "" +"segment_value (optional, defaults to default): The \"segment key\" value for the segment from which we want to " +"pull increment values for this generator." + +#. Tag: para +#: basic_mapping.xml:872 +#, no-c-format +msgid "" +"segment_value_length (optional, defaults to 255): Used for schema generation; the column size to create this " +"segment key column." +msgstr "" +"segment_value_length (optional, defaults to 255): Used for schema generation; the column size to create this " +"segment key column." + +#. Tag: para +#: basic_mapping.xml:878 +#, no-c-format +msgid "" +"initial_value (optional, defaults to 1): The initial value to be retrieved from the table." +msgstr "" +"initial_value (optional, defaults to 1): The initial value to be retrieved from the table." + +#. Tag: para +#: basic_mapping.xml:884 +#, no-c-format +msgid "" +"increment_size (optional, defaults to 1): The value by which subsequent calls to the table should differ." +msgstr "" +"increment_size (optional, defaults to 1): The value by which subsequent calls to the table should differ." + +#. Tag: para +#: basic_mapping.xml:890 +#, fuzzy, no-c-format +msgid "" +"optimizer (optional, defaults to ): See" +msgstr "" +"cascade(オプション - デフォルトは none ): カスケードのスタイル。" + +#. Tag: title +#: basic_mapping.xml:900 +#, no-c-format +msgid "Identifier generator optimization" +msgstr "Identifier generator optimization" + +#. Tag: para +#: basic_mapping.xml:901 +#, fuzzy, no-c-format +msgid "" +"For identifier generators which store values in the database, it is " +"inefficient for them to hit the database on each and every call to generate " +"a new identifier value. Instead, you'd ideally want to group a bunch of them " +"in memory and only hit the database when you have exhausted your in-memory " +"value group. This is the role of the pluggable optimizers. Currently only " +"the two enhanced generators ( support this notion." +msgstr "" +"For identifier generators which store values in the database, it is " +"inefficient for them to hit the database on each and every call to generate " +"a new identifier value. Instead, you'd ideally want to group a bunch of them " +"in memory and only hit the database when you have exhausted your in-memory " +"value group. This is the role of the pluggable optimizers. Currently only " +"the two enhanced generators ( support this notion. " + +#. Tag: para +#: basic_mapping.xml:909 +#, no-c-format +msgid "" +"none (generally this is the default if no optimizer was " +"specified): This says to not perform any optimizations, and hit the database " +"each and every request." +msgstr "" +"none (generally this is the default if no optimizer was " +"specified): This says to not perform any optimizations, and hit the database " +"each and every request." + +#. Tag: para +#: basic_mapping.xml:915 +#, no-c-format +msgid "" +"hilo: applies a hi/lo algorithm around the database " +"retrieved values. The values from the database for this optimizer are " +"expected to be sequential. The values retrieved from the database structure " +"for this optimizer indicates the \"group number\"; the " +"increment_size is multiplied by that value in memory to " +"define a group \"hi value\"." +msgstr "" +"hilo: applies a hi/lo algorithm around the database " +"retrieved values. The values from the database for this optimizer are " +"expected to be sequential. The values retrieved from the database structure " +"for this optimizer indicates the \"group number\"; the " +"increment_size is multiplied by that value in memory to " +"define a group \"hi value\"." + +#. Tag: para +#: basic_mapping.xml:924 +#, no-c-format +msgid "" +"pooled: like was discussed for hilo, " +"this optimizers attempts to minimize the number of hits to the database. " +"Here, however, we simply store the starting value for the \"next group\" " +"into the database structure rather than a sequential value in combination " +"with an in-memory grouping algorithm. increment_size here " +"refers to the values coming from the database." +msgstr "" +"pooled: like was discussed for hilo, " +"this optimizers attempts to minimize the number of hits to the database. " +"Here, however, we simply store the starting value for the \"next group\" " +"into the database structure rather than a sequential value in combination " +"with an in-memory grouping algorithm. increment_size here " +"refers to the values coming from the database." + +#. Tag: title +#: basic_mapping.xml:937 +#, no-c-format +msgid "composite-id" msgstr "composite-id" -#: index.docbook:759 -msgid "In the above example, there is a unique valued property named socialSecurityNumber defined by the class, as a natural key, and a surrogate key named person_id whose value is generated by a trigger." +#. Tag: programlisting +#: basic_mapping.xml:939 +#, no-c-format +msgid "" +"\n" +" node=\"element-name|.\"\n" +"\n" +" \n" +" \n" +" ......\n" +"]]>" msgstr "" - " \n" - " node=\"element-name|.\" \n" - " \n" - " \n" - " \n" - " ...... \n" - "]]>" -#: index.docbook:771 -msgid "Enhanced identifier generators" -msgstr "複合キーのあるテーブルに対し、 識別子プロパティとしてクラスの複数のプロパティをマッピングすることができます。 <composite-id> 要素は、子要素として <key-property> プロパティマッピングと <key-many-to-one> マッピングを受け入れます。" - -#: index.docbook:773 -msgid "Starting with release 3.2.3, there are 2 new generators which represent a re-thinking of 2 different aspects of identifier generation. The first aspect is database portability; the second is optimization (not having to query the database for every request for a new identifier value). These two new generators are intended to take the place of some of the named generators described above (starting in 3.3.x); however, they are included in the current releases and can be referenced by FQN." +#. Tag: para +#: basic_mapping.xml:941 +#, no-c-format +msgid "" +"For a table with a composite key, you may map multiple properties of the " +"class as identifier properties. The <composite-id> " +"element accepts <key-property> property mappings " +"and <key-many-to-one> mappings as child elements." msgstr "" - " \n" - " \n" - " \n" - "]]>" +"複合キーのあるテーブルに対し、 識別子プロパティとしてクラスの複数のプロパティ" +"をマッピングすることができます。 <composite-id> 要素" +"は、子要素として <key-property> プロパティマッピング" +"と <key-many-to-one> マッピングを受け入れます。" -#: index.docbook:781 -msgid "The first of these new generators is org.hibernate.id.enhanced.SequenceStyleGenerator which is intended firstly as a replacement for the sequence generator and secondly as a better portability generator than native (because native (generally) chooses between identity and sequence which have largely different semantics which can cause subtle isssues in applications eyeing portability). org.hibernate.id.enhanced.SequenceStyleGenerator however achieves portability in a different manner. It chooses between using a table or a sequence in the database to store its incrementing values depending on the capabilities of the dialect being used. The difference between this and native is that table-based and sequence-based storage have the same exact semantic (in fact sequences are exactly what Hibernate tries to emmulate with its table-based generators). This generator has a number of configuration parameters:" -msgstr "複合識別子の等価性を実装するためには、永続クラスが equals()hashCode() をオーバーライド しなければなりません 。 また Serializable も実装しなければいけません。" - -#: index.docbook:795 -msgid "sequence_name (optional, defaults to hibernate_sequence): The name of the sequence (or table) to be used." -msgstr "残念ながら複合識別子のためのこの方法は、 永続オブジェクトが自身の識別子であることを意味しています。 オブジェクト自身を識別子とする以上の便利な「扱い方」はありません。 複合キーに関連した永続状態を load() 出来るようになる前に、 永続クラス自身をインスタンス化し、識別子プロパティを設定しなければなりません。 組み込みの 複合識別子と呼ばれるこのアプローチは、 本格的なアプリケーションには向いていません。" - -#: index.docbook:801 -msgid "initial_value (optional, defaults to 1): The initial value to be retrieved from the sequence/table. In sequence creation terms, this is analogous to the clause typical named \"STARTS WITH\"." -msgstr "2つ目の方法は マップされた 複合識別子と呼ばれるもので、 <composite-id>エレメント内で指定した識別プロパティが 永続クラスと分離した識別子クラスの両方に重複して存在します。" - -#: index.docbook:808 -msgid "increment_size (optional, defaults to 1): The value by which subsequent calls to the sequence/table should differ. In sequence creation terms, this is analogous to the clause typical named \"INCREMENT BY\"." +#. Tag: programlisting +#: basic_mapping.xml:948 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:815 -msgid "force_table_use (optional, defaults to false): Should we force the use of a table as the backing structure even though the dialect might support sequence?" -msgstr "この例では、複合識別子クラス( MedicareId )とエンティティクラス自身の両方が、 medicareNumberdependent という名前のプロパティを持ちます。 識別子クラスは、equals()hashCode() をオーバライドし、 Serializable を実装しなくてはなりません。 この方法には、明らかにコードが重複するという不都合があります。" +#. Tag: para +#: basic_mapping.xml:950 +#, no-c-format +msgid "" +"Your persistent class must override equals() and hashCode() to implement composite identifier " +"equality. It must also implements Serializable." +msgstr "" +"複合識別子の等価性を実装するためには、永続クラスが equals()hashCode() をオーバーライド しなけれ" +"ばなりません 。 また Serializable も実装しなけ" +"ればいけません。" -#: index.docbook:822 -msgid "value_column (optional, defaults to next_val): Only relevant for table structures! The name of the column on the table which is used to hold the value." +#. Tag: para +#: basic_mapping.xml:956 +#, no-c-format +msgid "" +"Unfortunately, this approach to composite identifiers means that a " +"persistent object is its own identifier. There is no convenient \"handle\" " +"other than the object itself. You must instantiate an instance of the " +"persistent class itself and populate its identifier properties before you " +"can load() the persistent state associated with a " +"composite key. We call this approach an embedded " +"composite identifier, and discourage it for serious applications." +msgstr "" +"残念ながら複合識別子のためのこの方法は、 永続オブジェクトが自身の識別子である" +"ことを意味しています。 オブジェクト自身を識別子とする以上の便利な「扱い方」は" +"ありません。 複合キーに関連した永続状態を load() 出来るよ" +"うになる前に、 永続クラス自身をインスタンス化し、識別子プロパティを設定しなけ" +"ればなりません。 組み込みの 複合識別子と呼ばれるこのア" +"プローチは、 本格的なアプリケーションには向いていません。" + +#. Tag: para +#: basic_mapping.xml:965 +#, no-c-format +msgid "" +"A second approach is what we call a mapped composite " +"identifier, where the identifier properties named inside the <" +"composite-id> element are duplicated on both the persistent " +"class and a separate identifier class." +msgstr "" +"2つ目の方法は マップされた 複合識別子と呼ばれるもの" +"で、 <composite-id>エレメント内で指定した識別プロパ" +"ティが 永続クラスと分離した識別子クラスの両方に重複して存在します。" + +#. Tag: programlisting +#: basic_mapping.xml:971 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:973 +#, no-c-format +msgid "" +"In this example, both the composite identifier class, MedicareId, and the entity class itself have properties named " +"medicareNumber and dependent. The " +"identifier class must override equals() and " +"hashCode() and implement. Serializable. The disadvantage of this approach is quite obvious—code " +"duplication." +msgstr "" +"この例では、複合識別子クラス( MedicareId )とエンティティ" +"クラス自身の両方が、 medicareNumber と " +"dependent という名前のプロパティを持ちます。 識別子クラス" +"は、equals()hashCode() をオーバライ" +"ドし、 Serializable を実装しなくてはなりません。 この方法" +"には、明らかにコードが重複するという不都合があります。" + +#. Tag: para +#: basic_mapping.xml:982 +#, no-c-format +msgid "" +"The following attributes are used to specify a mapped composite identifier:" msgstr "次の属性はマッピングした複合識別子を指定するために使用します。" -#: index.docbook:829 -msgid "optimizer (optional, defaults to none): See" -msgstr "mapped (オプション、デフォルトは false ): マッピングした複合識別子が使用されることと、包含されたプロパティのマッピングが、 エンティティクラスと複合識別子クラスの両方を参照することを示します。" +#. Tag: para +#: basic_mapping.xml:988 +#, no-c-format +msgid "" +"mapped (optional, defaults to false): " +"indicates that a mapped composite identifier is used, and that the contained " +"property mappings refer to both the entity class and the composite " +"identifier class." +msgstr "" +"mapped (オプション、デフォルトは false ): マッピングした複合識別子が使用されることと、包含されたプロパティ" +"のマッピングが、 エンティティクラスと複合識別子クラスの両方を参照することを示" +"します。" -#: index.docbook:836 -msgid "The second of these new generators is org.hibernate.id.enhanced.TableGenerator which is intended firstly as a replacement for the table generator (although it actually functions much more like org.hibernate.id.MultipleHiLoPerTableGenerator) and secondly as a re-implementation of org.hibernate.id.MultipleHiLoPerTableGenerator utilizing the notion of pluggable optimiziers. Essentially this generator defines a table capable of holding a number of different increment values simultaneously by using multiple distinctly keyed rows. This generator has a number of configuration parameters:" -msgstr "class (オプション,ただしマッピングした複合識別子には必須): 複合識別子として使用するクラス。" +#. Tag: para +#: basic_mapping.xml:996 +#, no-c-format +msgid "" +"class (optional, but required for a mapped composite " +"identifier): The class used as a composite identifier." +msgstr "" +"class (オプション,ただしマッピングした複合識別子には必" +"須): 複合識別子として使用するクラス。" -#: index.docbook:846 -msgid "table_name (optional, defaults to hibernate_sequences): The name of the table to be used." -msgstr "3つ目のさらに便利な方法は、複合識別子を内の コンポーネントクラスとして実装することです。 下で記述している属性は、この代替方法にのみ適用されます。" +#. Tag: para +#: basic_mapping.xml:1003 +#, no-c-format +msgid "" +"We will describe a third, even more convenient approach where the composite " +"identifier is implemented as a component class in . The attributes described below apply only to this " +"alternative approach:" +msgstr "" +"3つ目のさらに便利な方法は、複合識別子を内の コンポーネントクラスとして実装することです。 下で記述している属性" +"は、この代替方法にのみ適用されます。" -#: index.docbook:852 -msgid "value_column_name (optional, defaults to next_val): The name of the column on the table which is used to hold the value." -msgstr "name (オプション, このアプローチでは必須): 複合識別子を保持するコンポーネントタイプのプロパティ(9章を参照してください)." +#. Tag: para +#: basic_mapping.xml:1011 +#, no-c-format +msgid "" +"name (optional, required for this approach): A property " +"of component type that holds the composite identifier (see chapter 9)." +msgstr "" +"name (オプション, このアプローチでは必須): 複合識別子を保" +"持するコンポーネントタイプのプロパティ(9章を参照してください)." -#: index.docbook:858 -msgid "segment_column_name (optional, defaults to sequence_name): The name of the column on the table which is used to hold the \"segement key\". This is the value which distinctly identifies which increment value to use." -msgstr "access (オプション - デフォルトは property ): Hibernateがプロパティの値にアクセスするために使用すべき戦略。" +#. Tag: para +#: basic_mapping.xml:1023 +#, no-c-format +msgid "" +"class (optional - defaults to the property type " +"determined by reflection): The component class used as a composite " +"identifier (see next section)." +msgstr "" +"class (オプション - デフォルトはリフレクションにより決定" +"されるプロパティの型): 複合識別子として使われるコンポーネントのクラス(次の" +"節を見てください)。" -#: index.docbook:865 -msgid "segment_value (optional, defaults to default): The \"segment key\" value for the segment from which we want to pull increment values for this generator." -msgstr "class (オプション - デフォルトはリフレクションにより決定されるプロパティの型): 複合識別子として使われるコンポーネントのクラス(次の節を見てください)。" +#. Tag: para +#: basic_mapping.xml:1030 +#, no-c-format +msgid "" +"This third approach, an identifier component is the one " +"we recommend for almost all applications." +msgstr "" +"この3つ目の方法は 識別子コンポーネント と呼び、 ほとん" +"どすべてのアプリケーションに対して推奨する方法です。" -#: index.docbook:872 -msgid "segment_value_length (optional, defaults to 255): Used for schema generation; the column size to create this segment key column." -msgstr "この3つ目の方法は 識別子コンポーネント と呼び、 ほとんどすべてのアプリケーションに対して推奨する方法です。" - -#: index.docbook:878 -msgid "initial_value (optional, defaults to 1): The initial value to be retrieved from the table." +#. Tag: title +#: basic_mapping.xml:1038 +#, no-c-format +msgid "discriminator" msgstr "discriminator" -#: index.docbook:884 -msgid "increment_size (optional, defaults to 1): The value by which subsequent calls to the table should differ." -msgstr "<discriminator> 要素は、 table-per-class-hierarchyマッピング戦略を使うポリモーフィックな永続化に必要であり、 テーブルの識別カラムを定義します。 識別カラムは、ある行に対して永続層がどのサブクラスをインスタンス化するかを 伝えるマーカー値を含んでいます。 以下のような型に制限されます: string , character , integer, byte , short , boolean , yes_no , true_false." - -#: index.docbook:890 -msgid "optimizer (optional, defaults to ): See" -msgstr "" - "]]>" - -#: index.docbook:900 -msgid "Identifier generator optimization" -msgstr "column(オプション - デフォルトは class ): 識別カラムの名前。" - -#: index.docbook:901 -msgid "For identifier generators which store values in the database, it is inefficient for them to hit the database on each and every call to generate a new identifier value. Instead, you'd ideally want to group a bunch of them in memory and only hit the database when you have exhausted your in-memory value group. This is the role of the pluggable optimizers. Currently only the two enhanced generators ( support this notion." -msgstr "type (オプション - デフォルトは string ):Hibernateの型を示す名前。" - -#: index.docbook:909 -msgid "none (generally this is the default if no optimizer was specified): This says to not perform any optimizations, and hit the database each and every request." -msgstr "force (オプション - デフォルトは false ): ルートクラスのすべてのインスタンスを検索する場合であっても、 Hibernateが使用できる識別カラムの指定を「強制」します。" - -#: index.docbook:915 -msgid "hilo: applies a hi/lo algorithm around the database retrieved values. The values from the database for this optimizer are expected to be sequential. The values retrieved from the database structure for this optimizer indicates the \"group number\"; the increment_size is multiplied by that value in memory to define a group \"hi value\"." -msgstr "insert (オプション - デフォルトは true ): もし識別カラムがマッピングする複合識別子の一部ならば、false と設定してください。 (HibernateにSQLの INSERT には含まれないことを知らせる)" - -#: index.docbook:924 -msgid "pooled: like was discussed for hilo, this optimizers attempts to minimize the number of hits to the database. Here, however, we simply store the starting value for the \"next group\" into the database structure rather than a sequential value in combination with an in-memory grouping algorithm. increment_size here refers to the values coming from the database." -msgstr "formula (オプション)型が評価されるときに実行される任意のSQL式。 コンテンツベースの識別を可能にします。" - -#: index.docbook:937 -msgid "composite-id" -msgstr "識別カラムの実際の値は、 <class><subclass> 要素の discriminator-value 属性で指定されます。" - -#: index.docbook:939 +#. Tag: para +#: basic_mapping.xml:1040 +#, no-c-format msgid "" - "\n" - " node=\"element-name|.\"\n" - "\n" - " \n" - " \n" - " ......\n" - "]]>" -msgstr "永続クラスへマッピングされない「余分な」識別値を持つ行が テーブルにあれば、(そのときに限り)force 属性は有効です。 ただし、普通はそういうことはありません。" - -#: index.docbook:941 -msgid "For a table with a composite key, you may map multiple properties of the class as identifier properties. The <composite-id> element accepts <key-property> property mappings and <key-many-to-one> mappings as child elements." -msgstr "formula 属性を使うと、行の型を評価するために任意のSQL式を宣言できます。" - -#: index.docbook:948 -msgid "" - "\n" - " \n" - " \n" - "]]>" +"The <discriminator> element is required for " +"polymorphic persistence using the table-per-class-hierarchy mapping strategy " +"and declares a discriminator column of the table. The discriminator column " +"contains marker values that tell the persistence layer what subclass to " +"instantiate for a particular row. A restricted set of types may be used: " +"string, character, integer, byte, short, " +"boolean, yes_no, true_false." msgstr "" - "]]>" +"<discriminator> 要素は、 table-per-class-hierarchy" +"マッピング戦略を使うポリモーフィックな永続化に必要であり、 テーブルの識別カラ" +"ムを定義します。 識別カラムは、ある行に対して永続層がどのサブクラスをインスタ" +"ンス化するかを 伝えるマーカー値を含んでいます。 以下のような型に制限されま" +"す: string , character , " +"integer, byte , short , boolean , yes_no , " +"true_false." -#: index.docbook:950 -msgid "Your persistent class must override equals() and hashCode() to implement composite identifier equality. It must also implements Serializable." +#. Tag: programlisting +#: basic_mapping.xml:1058 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1061 +#, no-c-format +msgid "" +"column (optional - defaults to class) " +"the name of the discriminator column." +msgstr "" +"column(オプション - デフォルトは class ): 識別カラムの名前。" + +#. Tag: para +#: basic_mapping.xml:1067 +#, no-c-format +msgid "" +"type (optional - defaults to string) a " +"name that indicates the Hibernate type" +msgstr "" +"type (オプション - デフォルトは string ):Hibernateの型を示す名前。" + +#. Tag: para +#: basic_mapping.xml:1073 +#, no-c-format +msgid "" +"force (optional - defaults to false) " +"\"force\" Hibernate to specify allowed discriminator values even when " +"retrieving all instances of the root class." +msgstr "" +"force (オプション - デフォルトは false ): ルートクラスのすべてのインスタンスを検索する場合であっても、 " +"Hibernateが使用できる識別カラムの指定を「強制」します。" + +#. Tag: para +#: basic_mapping.xml:1080 +#, no-c-format +msgid "" +"insert (optional - defaults to true) " +"set this to false if your discriminator column is also " +"part of a mapped composite identifier. (Tells Hibernate to not include the " +"column in SQL INSERTs.)" +msgstr "" +"insert (オプション - デフォルトは true ): もし識別カラムがマッピングする複合識別子の一部ならば、" +"false と設定してください。 (HibernateにSQLの " +"INSERT には含まれないことを知らせる)" + +#. Tag: para +#: basic_mapping.xml:1088 +#, no-c-format +msgid "" +"formula (optional) an arbitrary SQL expression that is " +"executed when a type has to be evaluated. Allows content-based " +"discrimination." +msgstr "" +"formula (オプション)型が評価されるときに実行される任意の" +"SQL式。 コンテンツベースの識別を可能にします。" + +#. Tag: para +#: basic_mapping.xml:1096 +#, no-c-format +msgid "" +"Actual values of the discriminator column are specified by the " +"discriminator-value attribute of the <" +"class> and <subclass> elements." +msgstr "" +"識別カラムの実際の値は、 <class><" +"subclass> 要素の discriminator-value 属性で指" +"定されます。" + +#. Tag: para +#: basic_mapping.xml:1102 +#, no-c-format +msgid "" +"The force attribute is (only) useful if the table " +"contains rows with \"extra\" discriminator values that are not mapped to a " +"persistent class. This will not usually be the case." +msgstr "" +"永続クラスへマッピングされない「余分な」識別値を持つ行が テーブルにあれば、" +"(そのときに限り)force 属性は有効です。 ただし、普通はそ" +"ういうことはありません。" + +#. Tag: para +#: basic_mapping.xml:1108 +#, no-c-format +msgid "" +"Using the formula attribute you can declare an arbitrary " +"SQL expression that will be used to evaluate the type of a row:" +msgstr "" +"formula 属性を使うと、行の型を評価するために任意のSQL式を" +"宣言できます。" + +#. Tag: programlisting +#: basic_mapping.xml:1113 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: title +#: basic_mapping.xml:1118 +#, no-c-format +msgid "version (optional)" msgstr "version(オプション)" -#: index.docbook:956 -msgid "Unfortunately, this approach to composite identifiers means that a persistent object is its own identifier. There is no convenient \"handle\" other than the object itself. You must instantiate an instance of the persistent class itself and populate its identifier properties before you can load() the persistent state associated with a composite key. We call this approach an embedded composite identifier, and discourage it for serious applications." -msgstr "<version> 要素はオプションであり、 テーブルがバージョンデータを含むことを示します。 これは ロングトランザクション を使うつもりなら、特に役立ちます(以下を見てください)。" - -#: index.docbook:965 -msgid "A second approach is what we call a mapped composite identifier, where the identifier properties named inside the <composite-id> element are duplicated on both the persistent class and a separate identifier class." -msgstr "" - "]]>" - -#: index.docbook:971 +#. Tag: para +#: basic_mapping.xml:1120 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "]]>" -msgstr "column(オプション - デフォルトはプロパティ名): バージョン番号を保持するカラムの名前。" +"The <version> element is optional and indicates " +"that the table contains versioned data. This is particularly useful if you " +"plan to use long transactions (see below)." +msgstr "" +"<version> 要素はオプションであり、 テーブルがバー" +"ジョンデータを含むことを示します。 これは ロングトランザクション を使うつもりなら、特に役立ちます(以下を見てください)。" -#: index.docbook:973 -msgid "In this example, both the composite identifier class, MedicareId, and the entity class itself have properties named medicareNumber and dependent. The identifier class must override equals() and hashCode() and implement. Serializable. The disadvantage of this approach is quite obvious—code duplication." +#. Tag: programlisting +#: basic_mapping.xml:1136 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1139 +#, no-c-format +msgid "" +"column (optional - defaults to the property name): The " +"name of the column holding the version number." +msgstr "" +"column(オプション - デフォルトはプロパティ名): バージョ" +"ン番号を保持するカラムの名前。" + +#. Tag: para +#: basic_mapping.xml:1145 +#, no-c-format +msgid "" +"name: The name of a property of the persistent class." msgstr "name :永続クラスのプロパティの名前。" -#: index.docbook:982 -msgid "The following attributes are used to specify a mapped composite identifier:" -msgstr "type (オプション - デフォルトは integer ):バージョン番号の型。" +#. Tag: para +#: basic_mapping.xml:1150 +#, no-c-format +msgid "" +"type (optional - defaults to integer): " +"The type of the version number." +msgstr "" +"type (オプション - デフォルトは integer ):バージョン番号の型。" -#: index.docbook:988 -msgid "mapped (optional, defaults to false): indicates that a mapped composite identifier is used, and that the contained property mappings refer to both the entity class and the composite identifier class." -msgstr "access (オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。" +#. Tag: para +#: basic_mapping.xml:1162 +#, no-c-format +msgid "" +"unsaved-value (optional - defaults to undefined): A version property value that indicates that an instance is newly " +"instantiated (unsaved), distinguishing it from detached instances that were " +"saved or loaded in a previous session. (undefined " +"specifies that the identifier property value should be used.)" +msgstr "" +"unsaved-value (オプション - デフォルトは " +"undefined ): インスタンスが新しくインスタンス化されたこ" +"とを示す (セーブされていないことを示す)バージョンプロパティの値。 以前の" +"Sessionでセーブまたはロードされた一時的なインスタンスと区別するために 使いま" +"す。 ( undefined は識別子プロパティの値が使われることを指" +"定します。)" -#: index.docbook:996 -msgid "class (optional, but required for a mapped composite identifier): The class used as a composite identifier." -msgstr "unsaved-value (オプション - デフォルトは undefined ): インスタンスが新しくインスタンス化されたことを示す (セーブされていないことを示す)バージョンプロパティの値。 以前のSessionでセーブまたはロードされた一時的なインスタンスと区別するために 使います。 ( undefined は識別子プロパティの値が使われることを指定します。)" +#. Tag: para +#: basic_mapping.xml:1171 +#, no-c-format +msgid "" +"generated (optional - defaults to never): Specifies that this version property value is actually generated " +"by the database. See the discussion of generated properties." +msgstr "" +"generated (オプション - デフォルトは never ): このバージョンのプロパティの値が、データベースによって生成された" +"ことを指定します。 生成プロパティ " +"の議論を見てください。" -#: index.docbook:1003 -msgid "We will describe a third, even more convenient approach where the composite identifier is implemented as a component class in . The attributes described below apply only to this alternative approach:" -msgstr "generated (オプション - デフォルトは never ): このバージョンのプロパティの値が、データベースによって生成されたことを指定します。 生成プロパティ の議論を見てください。" +#. Tag: para +#: basic_mapping.xml:1178 +#, no-c-format +msgid "" +"insert (optional - defaults to true): " +"Specifies whether the version column should be included in SQL insert " +"statements. May be set to false if and only if the " +"database column is defined with a default value of 0." +msgstr "" +"insert (オプション - デフォルトは true ): SQLのinsert文にバージョン・カラムを含めるべきかどうかを指定しま" +"す。 もしデータベース・カラムのデフォルト値が 0 と定義され" +"るときには、 false に設定すると良いでしょう。" -#: index.docbook:1011 -msgid "name (optional, required for this approach): A property of component type that holds the composite identifier (see chapter 9)." -msgstr "insert (オプション - デフォルトは true ): SQLのinsert文にバージョン・カラムを含めるべきかどうかを指定します。 もしデータベース・カラムのデフォルト値が 0 と定義されるときには、 false に設定すると良いでしょう。" +#. Tag: para +#: basic_mapping.xml:1188 +#, no-c-format +msgid "" +"Version numbers may be of Hibernate type long, " +"integer, short, timestamp or calendar." +msgstr "" +"バージョン番号は Hibernateの long , integer , short , timestamp , " +"calendar 型のいずれかです。" -#: index.docbook:1023 -msgid "class (optional - defaults to the property type determined by reflection): The component class used as a composite identifier (see next section)." -msgstr "バージョンやタイムスタンプのプロパティは、分離されたインスタンスに対してnullであってはなりません。 そのためどのような unsaved-value 戦略が指定されても、 Hibernateはnullのバージョンやタイムスタンプを持ったすべてのインスタンスを、 一時的なものであると判断します。 nullを許容するバージョンやタイムスタンプのプロパティを定義することは、 過渡的に一時オブジェクトとすることを防ぐ簡単な方法です。 特に識別子の割り当てや複合キーを使用しているときには特に有用です。" +#. Tag: para +#: basic_mapping.xml:1193 +#, no-c-format +msgid "" +"A version or timestamp property should never be null for a detached " +"instance, so Hibernate will detect any instance with a null version or " +"timestamp as transient, no matter what other unsaved-value strategies are specified. Declaring a nullable version or " +"timestamp property is an easy way to avoid any problems with transitive " +"reattachment in Hibernate, especially useful for people using assigned " +"identifiers or composite keys!" +msgstr "" +"バージョンやタイムスタンプのプロパティは、分離されたインスタンスに対してnull" +"であってはなりません。 そのためどのような unsaved-value 戦" +"略が指定されても、 Hibernateはnullのバージョンやタイムスタンプを持ったすべて" +"のインスタンスを、 一時的なものであると判断します。 nullを許容する" +"バージョンやタイムスタンプのプロパティを定義することは、 過渡的に一時オブジェ" +"クトとすることを防ぐ簡単な方法です。 特に識別子の割り当てや複合キーを使用して" +"いるときには特に有用です。" -#: index.docbook:1030 -msgid "This third approach, an identifier component is the one we recommend for almost all applications." +#. Tag: title +#: basic_mapping.xml:1204 +#, no-c-format +msgid "timestamp (optional)" msgstr "timestamp(オプション)" -#: index.docbook:1038 -msgid "discriminator" -msgstr "オプションの <timestamp> 要素は、 テーブルがタイムスタンプデータを含むことを示します。 これはバージョン付けの代わりの方法として用意されています。 タイムスタンプはもともと楽観的ロックにおける安全性の低い実装です。 しかしアプリケーションは異なる用途で使うこともあるかもしれません。" - -#: index.docbook:1040 -msgid "The <discriminator> element is required for polymorphic persistence using the table-per-class-hierarchy mapping strategy and declares a discriminator column of the table. The discriminator column contains marker values that tell the persistence layer what subclass to instantiate for a particular row. A restricted set of types may be used: string, character, integer, byte, short, boolean, yes_no, true_false." -msgstr "" - "]]>" - -#: index.docbook:1058 +#. Tag: para +#: basic_mapping.xml:1206 +#, no-c-format msgid "" - "]]>" -msgstr "column(オプション - デフォルトはプロパティ名): タイムスタンプを保持するカラムの名前。" +"The optional <timestamp> element indicates that the " +"table contains timestamped data. This is intended as an alternative to " +"versioning. Timestamps are by nature a less safe implementation of " +"optimistic locking. However, sometimes the application might use the " +"timestamps in other ways." +msgstr "" +"オプションの <timestamp> 要素は、 テーブルがタイムス" +"タンプデータを含むことを示します。 これはバージョン付けの代わりの方法として用" +"意されています。 タイムスタンプはもともと楽観的ロックにおける安全性の低い実装" +"です。 しかしアプリケーションは異なる用途で使うこともあるかもしれません。" -#: index.docbook:1061 -msgid "column (optional - defaults to class) the name of the discriminator column." -msgstr "name : 永続クラスであるJava の Date型 または Timestamp 型 の、JavaBeansスタイルプロパティの名前。" +#. Tag: programlisting +#: basic_mapping.xml:1222 +#, no-c-format +msgid "" +"]]>" +msgstr "" -#: index.docbook:1067 -msgid "type (optional - defaults to string) a name that indicates the Hibernate type" -msgstr "access (オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。" +#. Tag: para +#: basic_mapping.xml:1225 +#, no-c-format +msgid "" +"column (optional - defaults to the property name): The " +"name of a column holding the timestamp." +msgstr "" +"column(オプション - デフォルトはプロパティ名): タイムス" +"タンプを保持するカラムの名前。" -#: index.docbook:1073 -msgid "force (optional - defaults to false) \"force\" Hibernate to specify allowed discriminator values even when retrieving all instances of the root class." -msgstr "unsaved-value (オプション - デフォルトは null ): インスタンスが新しくインスタンス化された (セーブされていない)ことを示すバージョンプロパティの値。 以前のSessionでセーブまたはロードされた一時的なインスタンスと 区別するために使われます。 ( undefined と指定すると、 識別子プロパティの値が使われます。)" +#. Tag: para +#: basic_mapping.xml:1231 +#, no-c-format +msgid "" +"name: The name of a JavaBeans style property of Java type " +"Date or Timestamp of the persistent " +"class." +msgstr "" +"name : 永続クラスであるJava の Date型 " +"または Timestamp 型 の、JavaBeansスタイルプロパティの名" +"前。" -#: index.docbook:1080 -msgid "insert (optional - defaults to true) set this to false if your discriminator column is also part of a mapped composite identifier. (Tells Hibernate to not include the column in SQL INSERTs.)" -msgstr "source (オプション - デフォルトは vm ): Hibernateはどこからタイムスタンプの値を取得するべきでしょうか? データベースからでしょうか、現在のJVMからでしょうか? データベースによるタイムスタンプは、Hibernateが\"次の値\"を決定するために データベースをヒットしなければならないため、オーバヘッドを招きます。 しかしクラスタ環境ではJVMから取得するより安全です。 データベースの現在のタイムスタンプの取得をサポートする すべての データベース方言 が知られているわけではないことに 注意してください。また一方で、精密さを欠くために、 ロックで使用するには安全でないものもあります(例えばOracle 8)。" +#. Tag: para +#: basic_mapping.xml:1244 +#, no-c-format +msgid "" +"unsaved-value (optional - defaults to null): A version property value that indicates that an instance is newly " +"instantiated (unsaved), distinguishing it from detached instances that were " +"saved or loaded in a previous session. (undefined " +"specifies that the identifier property value should be used.)" +msgstr "" +"unsaved-value (オプション - デフォルトは null ): インスタンスが新しくインスタンス化された (セーブされていない)" +"ことを示すバージョンプロパティの値。 以前のSessionでセーブまたはロードされた" +"一時的なインスタンスと 区別するために使われます。 ( undefined と指定すると、 識別子プロパティの値が使われます。)" -#: index.docbook:1088 -msgid "formula (optional) an arbitrary SQL expression that is executed when a type has to be evaluated. Allows content-based discrimination." -msgstr "generated (オプション - デフォルトは never ): このタイムスタンプ・プロパティの値が、データベースによって生成されることを指定します。 生成プロパティ を参照してください。" +#. Tag: para +#: basic_mapping.xml:1253 +#, no-c-format +msgid "" +"source (optional - defaults to vm): " +"From where should Hibernate retrieve the timestamp value? From the database, " +"or from the current JVM? Database-based timestamps incur an overhead because " +"Hibernate must hit the database in order to determine the \"next value\", " +"but will be safer for use in clustered environments. Note also, that not all " +"Dialects are known to support retrieving of the " +"database's current timestamp, while others might be unsafe for usage in " +"locking due to lack of precision (Oracle 8 for example)." +msgstr "" +"source (オプション - デフォルトは vm ): Hibernateはどこからタイムスタンプの値を取得するべきでしょうか? " +"データベースからでしょうか、現在のJVMからでしょうか? データベースによるタイ" +"ムスタンプは、Hibernateが\"次の値\"を決定するために データベースをヒットしな" +"ければならないため、オーバヘッドを招きます。 しかしクラスタ環境ではJVMから取" +"得するより安全です。 データベースの現在のタイムスタンプの取得をサポートする " +"すべての データベース方言 が知られているわけではないこと" +"に 注意してください。また一方で、精密さを欠くために、 ロックで使用するには安" +"全でないものもあります(例えばOracle 8)。" -#: index.docbook:1096 -msgid "Actual values of the discriminator column are specified by the discriminator-value attribute of the <class> and <subclass> elements." -msgstr "<timestamp><version type=\"timestamp\"> と等価であることに注意してください。 <timestamp source=\"db\"><version type=\"dbtimestamp\"> と等価であることに注意してください。" +#. Tag: para +#: basic_mapping.xml:1265 +#, no-c-format +msgid "" +"generated (optional - defaults to never): Specifies that this timestamp property value is actually " +"generated by the database. See the discussion of generated properties." +msgstr "" +"generated (オプション - デフォルトは never ): このタイムスタンプ・プロパティの値が、データベースによって生成さ" +"れることを指定します。 生成プロパティ を参照してください。" -#: index.docbook:1102 -msgid "The force attribute is (only) useful if the table contains rows with \"extra\" discriminator values that are not mapped to a persistent class. This will not usually be the case." +#. Tag: para +#: basic_mapping.xml:1274 +#, no-c-format +msgid "" +"Note that <timestamp> is equivalent to <" +"version type=\"timestamp\">. And <timestamp source=" +"\"db\"> is equivalent to <version type=\"dbtimestamp" +"\">" +msgstr "" +"<timestamp><version type=\"timestamp" +"\"> と等価であることに注意してください。 <timestamp " +"source=\"db\"><version type=\"dbtimestamp\">" +" と等価であることに注意してください。" + +#. Tag: title +#: basic_mapping.xml:1284 +#, no-c-format +msgid "property" msgstr "property" -#: index.docbook:1108 -msgid "Using the formula attribute you can declare an arbitrary SQL expression that will be used to evaluate the type of a row:" -msgstr "<property> 要素は、クラスの永続的なJavaBeanスタイルのプロパティを定義します。" - -#: index.docbook:1113 +#. Tag: para +#: basic_mapping.xml:1286 +#, no-c-format msgid "" - "]]>" +"The <property> element declares a persistent, " +"JavaBean style property of the class." msgstr "" - "]]>" +"<property> 要素は、クラスの永続的なJavaBeanスタイル" +"のプロパティを定義します。" -#: index.docbook:1118 -msgid "version (optional)" +#. Tag: programlisting +#: basic_mapping.xml:1308 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1311 +#, no-c-format +msgid "" +"name: the name of the property, with an initial lowercase " +"letter." msgstr "name:小文字で始まるプロパティ名。" -#: index.docbook:1120 -msgid "The <version> element is optional and indicates that the table contains versioned data. This is particularly useful if you plan to use long transactions (see below)." -msgstr "column(オプション - デフォルトはプロパティ名): マッピングされたデータベーステーブルのカラムの名前。 ネストした <column> 要素でも指定できます。" - -#: index.docbook:1136 +#. Tag: para +#: basic_mapping.xml:1317 +#, no-c-format msgid "" - "]]>" +"column (optional - defaults to the property name): the " +"name of the mapped database table column. This may also be specified by " +"nested <column> element(s)." +msgstr "" +"column(オプション - デフォルトはプロパティ名): マッピン" +"グされたデータベーステーブルのカラムの名前。 ネストした <" +"column> 要素でも指定できます。" + +#. Tag: para +#: basic_mapping.xml:1324 +#, no-c-format +msgid "" +"type (optional): a name that indicates the Hibernate type." msgstr "type(オプション):Hibernateの型を示す名前。" -#: index.docbook:1139 -msgid "column (optional - defaults to the property name): The name of the column holding the version number." -msgstr "update, insert (オプション - デフォルトは true ): マッピングされたカラムがSQLの UPDATEINSERT に含まれることを指定します。 両方とも false に設定すると、 同じカラムにマッピングされた他のプロパティやトリガや 他のアプリケーションによって初期化された純粋な「導出」プロパティが可能になります。" +#. Tag: para +#: basic_mapping.xml:1329 +#, no-c-format +msgid "" +"update, insert (optional - defaults to true) : specifies that the mapped columns should be included in SQL " +"UPDATE and/or INSERT statements. " +"Setting both to false allows a pure \"derived\" property " +"whose value is initialized from some other property that maps to the same " +"colum(s) or by a trigger or other application." +msgstr "" +"update, insert (オプション - デフォルトは true ): マッピングされたカラムがSQLの UPDATE や " +"INSERT に含まれることを指定します。 両方とも " +"false に設定すると、 同じカラムにマッピングされた他のプロ" +"パティやトリガや 他のアプリケーションによって初期化された純粋な「導出」プロパ" +"ティが可能になります。" -#: index.docbook:1145 -msgid "name: The name of a property of the persistent class." -msgstr "formula(オプション): 計算 プロパティのための値を定義するSQL式。 計算されたプロパティは自身のカラムへのマッピングがありません。" +#. Tag: para +#: basic_mapping.xml:1338 +#, no-c-format +msgid "" +"formula (optional): an SQL expression that defines the " +"value for a computed property. Computed properties do " +"not have a column mapping of their own." +msgstr "" +"formula(オプション): 計算 プロパ" +"ティのための値を定義するSQL式。 計算されたプロパティは自身のカラムへのマッピ" +"ングがありません。" -#: index.docbook:1150 -msgid "type (optional - defaults to integer): The type of the version number." -msgstr "access(オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。" +#. Tag: para +#: basic_mapping.xml:1351 +#, no-c-format +msgid "" +"lazy (optional - defaults to false): " +"Specifies that this property should be fetched lazily when the instance " +"variable is first accessed (requires build-time bytecode instrumentation)." +msgstr "" +"lazy (optional - デフォルトは false ): " +"インスタンス変数に最初にアクセスしたときに、プロパティを遅延して取得するよう" +"指定します。 (バイトコード実装を作成する時間が必要になります)。" -#: index.docbook:1162 -msgid "unsaved-value (optional - defaults to undefined): A version property value that indicates that an instance is newly instantiated (unsaved), distinguishing it from detached instances that were saved or loaded in a previous session. (undefined specifies that the identifier property value should be used.)" -msgstr "unique (オプション):カラムにユニーク制約をつけるDDLの生成を可能にします。 また、property-ref のターゲットとすることもできます。" +#. Tag: para +#: basic_mapping.xml:1358 +#, no-c-format +msgid "" +"unique (optional): Enable the DDL generation of a unique " +"constraint for the columns. Also, allow this to be the target of a " +"property-ref." +msgstr "" +"unique (オプション):カラムにユニーク制約をつけるDDLの生成" +"を可能にします。 また、property-ref のターゲットとすること" +"もできます。" -#: index.docbook:1171 -msgid "generated (optional - defaults to never): Specifies that this version property value is actually generated by the database. See the discussion of generated properties." -msgstr "not-null (オプション):カラムにnull値を許可するDDLの生成を可能にします。" +#. Tag: para +#: basic_mapping.xml:1365 +#, no-c-format +msgid "" +"not-null (optional): Enable the DDL generation of a " +"nullability constraint for the columns." +msgstr "" +"not-null (オプション):カラムにnull値を許可するDDLの生成を" +"可能にします。" -#: index.docbook:1178 -msgid "insert (optional - defaults to true): Specifies whether the version column should be included in SQL insert statements. May be set to false if and only if the database column is defined with a default value of 0." -msgstr "optimistic-lock (オプション - デフォルトは true ): このプロパティの更新に楽観ロックの取得を要求するかどうかを指定します。 言い換えれば、このプロパティがダーティであるときにバージョンを増やすべきかを決定します。" +#. Tag: para +#: basic_mapping.xml:1371 +#, no-c-format +msgid "" +"optimistic-lock (optional - defaults to true): Specifies that updates to this property do or do not require " +"acquisition of the optimistic lock. In other words, determines if a version " +"increment should occur when this property is dirty." +msgstr "" +"optimistic-lock (オプション - デフォルトは true ): このプロパティの更新に楽観ロックの取得を要求するかどうかを指定し" +"ます。 言い換えれば、このプロパティがダーティであるときにバージョンを増やすべ" +"きかを決定します。" -#: index.docbook:1188 -msgid "Version numbers may be of Hibernate type long, integer, short, timestamp or calendar." -msgstr "generated (オプション - デフォルトは never ): プロパティの値が、データベースによって生成されたことを指定します。 生成プロパティ を参照してください。" +#. Tag: para +#: basic_mapping.xml:1379 +#, no-c-format +msgid "" +"generated (optional - defaults to never): Specifies that this property value is actually generated by the " +"database. See the discussion of generated properties." +msgstr "" +"generated (オプション - デフォルトは never ): プロパティの値が、データベースによって生成されたことを指定しま" +"す。 生成プロパティ を参照してくだ" +"さい。" -#: index.docbook:1193 -msgid "A version or timestamp property should never be null for a detached instance, so Hibernate will detect any instance with a null version or timestamp as transient, no matter what other unsaved-value strategies are specified. Declaring a nullable version or timestamp property is an easy way to avoid any problems with transitive reattachment in Hibernate, especially useful for people using assigned identifiers or composite keys!" +#. Tag: para +#: basic_mapping.xml:1388 +#, no-c-format +msgid "typename could be:" msgstr "typename には以下の値が可能です:" -#: index.docbook:1204 -msgid "timestamp (optional)" -msgstr "Hibernateの基本型の名前(例 integer, string, character, date, timestamp, float, binary, serializable, object, blob )。" - -#: index.docbook:1206 -msgid "The optional <timestamp> element indicates that the table contains timestamped data. This is intended as an alternative to versioning. Timestamps are by nature a less safe implementation of optimistic locking. However, sometimes the application might use the timestamps in other ways." -msgstr "デフォルトの基本型のJavaクラス名 (例 int, float, char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob )。" - -#: index.docbook:1222 +#. Tag: para +#: basic_mapping.xml:1394 +#, no-c-format msgid "" - "]]>" +"The name of a Hibernate basic type (eg. integer, string, character, " +"date, timestamp, float, binary, serializable, object, blob)." +msgstr "" +"Hibernateの基本型の名前(例 integer, string, character, date, " +"timestamp, float, binary, serializable, object, blob )。" + +#. Tag: para +#: basic_mapping.xml:1400 +#, no-c-format +msgid "" +"The name of a Java class with a default basic type (eg. int, float, " +"char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob)." +msgstr "" +"デフォルトの基本型のJavaクラス名 (例 int, float, char, java.lang." +"String, java.util.Date, java.lang.Integer, java.sql.Clob )。" + +#. Tag: para +#: basic_mapping.xml:1406 +#, no-c-format +msgid "The name of a serializable Java class." msgstr "シリアライズ可能なJavaクラスの名前。" -#: index.docbook:1225 -msgid "column (optional - defaults to the property name): The name of a column holding the timestamp." -msgstr "カスタム型のクラス名(例 com.illflow.type.MyCustomType )。" - -#: index.docbook:1231 -msgid "name: The name of a JavaBeans style property of Java type Date or Timestamp of the persistent class." -msgstr "型を指定しなければ、Hibernateは正しいHibernateの型を推測するために、 指定されたプロパティに対してリフレクションを使います。 Hibernateはルール2, 3, 4をその順序に使い、 getterプロパティの返り値のクラスの名前を解釈しようとします。 しかしこれで常に十分であるとは限りません。 場合によっては、type 属性が必要な場合があります。 (例えば Hibernate.DATEHibernate.TIMESTAMP を区別するため、 またはカスタム型を指定するためなどです。)" - -#: index.docbook:1244 -msgid "unsaved-value (optional - defaults to null): A version property value that indicates that an instance is newly instantiated (unsaved), distinguishing it from detached instances that were saved or loaded in a previous session. (undefined specifies that the identifier property value should be used.)" -msgstr "特に強力な特徴は生成プロパティです。 これらのプロパティは当然読み取り専用であり、プロパティの値はロード時に計算されます。 計算をSQL式として宣言すると、このプロパティは インスタンスをロードするSQLクエリの SELECT 句のサブクエリに変換されます。" - -#: index.docbook:1253 -msgid "source (optional - defaults to vm): From where should Hibernate retrieve the timestamp value? From the database, or from the current JVM? Database-based timestamps incur an overhead because Hibernate must hit the database in order to determine the \"next value\", but will be safer for use in clustered environments. Note also, that not all Dialects are known to support retrieving of the database's current timestamp, while others might be unsafe for usage in locking due to lack of precision (Oracle 8 for example)." +#. Tag: para +#: basic_mapping.xml:1411 +#, no-c-format +msgid "" +"The class name of a custom type (eg. com.illflow.type.MyCustomType)." msgstr "" - "]]>" +"カスタム型のクラス名(例 com.illflow.type.MyCustomType )。" -#: index.docbook:1265 -msgid "generated (optional - defaults to never): Specifies that this timestamp property value is actually generated by the database. See the discussion of generated properties." -msgstr "特定のカラム(例では customerId がそれにあたります)のエイリアスを宣言することなく、 エンティティ自身のテーブルを参照できることに注意してください。 もし属性を使用したくなければ、 ネストした <formula> マッピング要素を使えることにも注意してください。" +#. Tag: para +#: basic_mapping.xml:1417 +#, no-c-format +msgid "" +"If you do not specify a type, Hibernate will use reflection upon the named " +"property to take a guess at the correct Hibernate type. Hibernate will try " +"to interpret the name of the return class of the property getter using rules " +"2, 3, 4 in that order. However, this is not always enough. In certain cases " +"you will still need the type attribute. (For example, to " +"distinguish between Hibernate.DATE and Hibernate." +"TIMESTAMP, or to specify a custom type.)" +msgstr "" +"型を指定しなければ、Hibernateは正しいHibernateの型を推測するために、 指定され" +"たプロパティに対してリフレクションを使います。 Hibernateはルール2, 3, 4をその" +"順序に使い、 getterプロパティの返り値のクラスの名前を解釈しようとします。 し" +"かしこれで常に十分であるとは限りません。 場合によっては、type 属性が必要な場合があります。 (例えば Hibernate.DATEHibernate.TIMESTAMP を区別するため、 またはカ" +"スタム型を指定するためなどです。)" -#: index.docbook:1274 -msgid "Note that <timestamp> is equivalent to <version type=\"timestamp\">. And <timestamp source=\"db\"> is equivalent to <version type=\"dbtimestamp\">" +#. Tag: para +#: basic_mapping.xml:1427 +#, no-c-format +msgid "" +"The access attribute lets you control how Hibernate will " +"access the property at runtime. By default, Hibernate will call the property " +"get/set pair. If you specify access=\"field\", Hibernate " +"will bypass the get/set pair and access the field directly, using " +"reflection. You may specify your own strategy for property access by naming " +"a class that implements the interface org.hibernate.property." +"PropertyAccessor." +msgstr "" +"access 属性で、 実行時にHibernateがどのようにプロパティに" +"アクセスするかを制御できます。 デフォルトではHibernateはプロパティのget/setの" +"ペアをコールします。 access=\"field\" と指定すれば、 " +"Hibernateはリフレクションを使いget/setのペアを介さずに、直接フィールドにアク" +"セスします。 インターフェイス org.hibernate.property." +"PropertyAccessor を 実装するクラスを指定することで、プロパティへの" +"アクセスに独自の戦略を指定することができます。" + +#. Tag: para +#: basic_mapping.xml:1436 +#, no-c-format +msgid "" +"An especially powerful feature are derived properties. These properties are " +"by definition read-only, the property value is computed at load time. You " +"declare the computation as a SQL expression, this translates to a " +"SELECT clause subquery in the SQL query that loads an " +"instance:" +msgstr "" +"特に強力な特徴は生成プロパティです。 これらのプロパティは当然読み取り専用であ" +"り、プロパティの値はロード時に計算されます。 計算をSQL式として宣言すると、こ" +"のプロパティは インスタンスをロードするSQLクエリの SELECT " +"句のサブクエリに変換されます。" + +#. Tag: programlisting +#: basic_mapping.xml:1443 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1445 +#, no-c-format +msgid "" +"Note that you can reference the entities own table by not declaring an alias " +"on a particular column (customerId in the given example). " +"Also note that you can use the nested <formula> " +"mapping element if you don't like to use the attribute." +msgstr "" +"特定のカラム(例では customerId がそれにあたります)のエイリ" +"アスを宣言することなく、 エンティティ自身のテーブルを参照できることに注意して" +"ください。 もし属性を使用したくなければ、 ネストした <formula>" +" マッピング要素を使えることにも注意してください。" + +#. Tag: title +#: basic_mapping.xml:1455 +#, no-c-format +msgid "many-to-one" msgstr "many-to-one" -#: index.docbook:1284 -msgid "property" -msgstr "他の永続クラスへの通常の関連は many-to-one 要素を使って定義します。 リレーショナルモデルは多対一関連です。 つまりあるテーブルの外部キーは、ターゲットとなるテーブルの主キーカラムを参照しています。" - -#: index.docbook:1286 -msgid "The <property> element declares a persistent, JavaBean style property of the class." -msgstr "" - "]]>" - -#: index.docbook:1308 +#. Tag: para +#: basic_mapping.xml:1457 +#, no-c-format msgid "" - "]]>" +"An ordinary association to another persistent class is declared using a " +"many-to-one element. The relational model is a many-to-" +"one association: a foreign key in one table is referencing the primary key " +"column(s) of the target table." +msgstr "" +"他の永続クラスへの通常の関連は many-to-one 要素を使って定" +"義します。 リレーショナルモデルは多対一関連です。 つまりあるテーブルの外部" +"キーは、ターゲットとなるテーブルの主キーカラムを参照しています。" + +#. Tag: programlisting +#: basic_mapping.xml:1485 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1488 basic_mapping.xml:1669 basic_mapping.xml:1855 +#, no-c-format +msgid "name: The name of the property." msgstr "name:プロパティ名。" -#: index.docbook:1311 -msgid "name: the name of the property, with an initial lowercase letter." -msgstr "column (オプション):外部キーカラムの名前。 ネストした <column> 要素でも指定できます。" - -#: index.docbook:1317 -msgid "column (optional - defaults to the property name): the name of the mapped database table column. This may also be specified by nested <column> element(s)." -msgstr "class(オプション - デフォルトは、 リフレクションにより決定されるプロパティの型):関連クラスの名前。" - -#: index.docbook:1324 -msgid "type (optional): a name that indicates the Hibernate type." -msgstr "cascade(オプション): どの操作を、親オブジェクトから関連オブジェクトへとカスケードさせるかを指定します。" - -#: index.docbook:1329 -msgid "update, insert (optional - defaults to true) : specifies that the mapped columns should be included in SQL UPDATE and/or INSERT statements. Setting both to false allows a pure \"derived\" property whose value is initialized from some other property that maps to the same colum(s) or by a trigger or other application." -msgstr "fetch (オプション - デフォルトは select ): 外部結合フェッチか順次選択フェッチ(sequential select fetch)を選択します。" - -#: index.docbook:1338 -msgid "formula (optional): an SQL expression that defines the value for a computed property. Computed properties do not have a column mapping of their own." -msgstr "update, insert(オプション - デフォルトは true ): マッピングされたカラムがSQLの UPDATE または INSERT 文に含まれることを指定します。 両方とも false に設定すると、 その値が同じカラムにマッピングされた他のプロパティやトリガや 他のアプリケーションによって初期化された純粋な「導出」プロパティが可能になります。" - -#: index.docbook:1351 -msgid "lazy (optional - defaults to false): Specifies that this property should be fetched lazily when the instance variable is first accessed (requires build-time bytecode instrumentation)." -msgstr "access(オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。" - -#: index.docbook:1358 -msgid "unique (optional): Enable the DDL generation of a unique constraint for the columns. Also, allow this to be the target of a property-ref." -msgstr "unique(オプション): 外部キーカラムに対してユニーク制約をつけたDDLの生成を可能にします。 また、property-ref のターゲットにすることもできます。 これにより関連の多重度を効果的に一対一にします。" - -#: index.docbook:1365 -msgid "not-null (optional): Enable the DDL generation of a nullability constraint for the columns." -msgstr "not-null (オプション):外部キーカラムに対して、 null値を許可するDDLの生成を可能にします" - -#: index.docbook:1371 -msgid "optimistic-lock (optional - defaults to true): Specifies that updates to this property do or do not require acquisition of the optimistic lock. In other words, determines if a version increment should occur when this property is dirty." -msgstr "optimistic-lock (オプション - デフォルトは true ): このプロパティの更新に楽観的ロックの取得を要求するかどうかを指定します。 言い換えれば、このプロパティがダーティであるときにバージョンを増やすべきかを決定します。" - -#: index.docbook:1379 -msgid "generated (optional - defaults to never): Specifies that this property value is actually generated by the database. See the discussion of generated properties." -msgstr "lazy (オプション - デフォルトは proxy ): デフォルトでは、多重度1の関連がプロキシとなります。 lazy=\"no-proxy\" は、インスタンス変数に最初にアクセスしたときに、 プロパティを遅延フェッチするよう指定します (ビルド時にバイトコード実装が必要になります)。 lazy=\"false\" は関連を常に即時にフェッチするよう指定します。" - -#: index.docbook:1388 -msgid "typename could be:" -msgstr "not-found (オプション - デフォルトは exception ): 欠落した行を参照する外部キーをどのように扱うかを指定します。 ignore は欠落した行をnull関連として扱います。" - -#: index.docbook:1394 -msgid "The name of a Hibernate basic type (eg. integer, string, character, date, timestamp, float, binary, serializable, object, blob)." -msgstr "entity-name (オプション):関連したクラスのエンティティ名。" - -#: index.docbook:1400 -msgid "The name of a Java class with a default basic type (eg. int, float, char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob)." -msgstr "formula (オプション): 計算された 外部キーに対して値を定義するSQL式" - -#: index.docbook:1406 -msgid "The name of a serializable Java class." -msgstr "cascade 属性に none 以外の意味のある値をを設定すると、 関連オブジェクトへある操作が伝播することになります。 意味のある値とはHibernateの基本操作の名前のことで、 delete-orphanall 、操作名をカンマで区切った組み合わせ (例えば cascade=\"persist,merge,evict\"cascade=\"all,delete-orphan\")、 またそれだけでなく persist, merge, delete, save-update, evict, replicate, lock, refresh のことを指します。 詳しい説明は を見てください。 値が一つの関連(many-to-oneとone-to-one関連)は、 単独での削除(orphan delete)をサポートしていないことに注意してください。" - -#: index.docbook:1411 -msgid "The class name of a custom type (eg. com.illflow.type.MyCustomType)." -msgstr "典型的な many-to-one 宣言は次のようにシンプルです。:" - -#: index.docbook:1417 -msgid "If you do not specify a type, Hibernate will use reflection upon the named property to take a guess at the correct Hibernate type. Hibernate will try to interpret the name of the return class of the property getter using rules 2, 3, 4 in that order. However, this is not always enough. In certain cases you will still need the type attribute. (For example, to distinguish between Hibernate.DATE and Hibernate.TIMESTAMP, or to specify a custom type.)" -msgstr "]]>" - -#: index.docbook:1427 -msgid "The access attribute lets you control how Hibernate will access the property at runtime. By default, Hibernate will call the property get/set pair. If you specify access=\"field\", Hibernate will bypass the get/set pair and access the field directly, using reflection. You may specify your own strategy for property access by naming a class that implements the interface org.hibernate.property.PropertyAccessor." -msgstr "property-ref 属性は、外部キーが関連付けられたテーブルの、主キーでない ユニークキーを参照しているレガシーデータをマップするためにだけ使うべきです。 これは醜いリレーショナルモデルです。 例えば Product クラスが、 主キーでないユニークなシリアルナンバーを持っていると仮定してみてください。 ( unique 属性はSchemaExportツールを使ったHibernateのDDL生成を制御します。)" - -#: index.docbook:1436 -msgid "An especially powerful feature are derived properties. These properties are by definition read-only, the property value is computed at load time. You declare the computation as a SQL expression, this translates to a SELECT clause subquery in the SQL query that loads an instance:" -msgstr "]]>" - -#: index.docbook:1443 +#. Tag: para +#: basic_mapping.xml:1493 basic_mapping.xml:2284 +#, fuzzy, no-c-format msgid "" - "]]>" -msgstr "以下のように OrderItem に対してマッピングを使えます:" +"column (optional): The name of the foreign key column. " +"This may also be specified by nested <column> " +"element(s)." +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"column (オプション):外部キーカラムの名前。 ネストした " +"<column> 要素でも指定できます。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"column (オプション):外部キーカラムの名前。 ネストした " +"<column> カラムによっても指定されます。" -#: index.docbook:1445 -msgid "Note that you can reference the entities own table by not declaring an alias on a particular column (customerId in the given example). Also note that you can use the nested <formula> mapping element if you don't like to use the attribute." -msgstr "]]>" +#. Tag: para +#: basic_mapping.xml:1500 basic_mapping.xml:1674 +#, fuzzy, no-c-format +msgid "" +"class (optional - defaults to the property type " +"determined by reflection): The name of the associated class." +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"class(オプション - デフォルトは、 リフレクションにより決" +"定されるプロパティの型):関連クラスの名前。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"class(オプション - デフォルトはリフレクションにより決定さ" +"れるプロパティの型): 関連クラスの名前。" -#: index.docbook:1455 -msgid "many-to-one" +#. Tag: para +#: basic_mapping.xml:1506 +#, no-c-format +msgid "" +"cascade (optional): Specifies which operations should be " +"cascaded from the parent object to the associated object." +msgstr "" +"cascade(オプション): どの操作を、親オブジェクトから関連" +"オブジェクトへとカスケードさせるかを指定します。" + +#. Tag: para +#: basic_mapping.xml:1512 basic_mapping.xml:1695 +#, fuzzy, no-c-format +msgid "" +"fetch (optional - defaults to select): " +"Chooses between outer-join fetching or sequential select fetching." +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"fetch (オプション - デフォルトは select ): 外部結合フェッチか順次選択フェッチ(sequential select fetch)を選" +"択します。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"fetch(オプション - デフォルトは select ): 外部結合フェッチと順次選択フェッチ(sequential select fetch)の" +"どちらかを選択します。" + +#. Tag: para +#: basic_mapping.xml:1518 +#, no-c-format +msgid "" +"update, insert (optional - defaults to true) specifies that the mapped columns should be included in SQL " +"UPDATE and/or INSERT statements. " +"Setting both to false allows a pure \"derived\" " +"association whose value is initialized from some other property that maps to " +"the same colum(s) or by a trigger or other application." +msgstr "" +"update, insert(オプション - デフォルトは true ): マッピングされたカラムがSQLの UPDATE または " +"INSERT 文に含まれることを指定します。 両方とも " +"false に設定すると、 その値が同じカラムにマッピングされた" +"他のプロパティやトリガや 他のアプリケーションによって初期化された純粋な「導" +"出」プロパティが可能になります。" + +#. Tag: para +#: basic_mapping.xml:1527 +#, no-c-format +msgid "" +"property-ref: (optional) The name of a property of the " +"associated class that is joined to this foreign key. If not specified, the " +"primary key of the associated class is used." +msgstr "" +"property-ref(オプション): この外部キーに結合された関連" +"クラスのプロパティ名。 何も指定しなければ、関連クラスの主キーが使われます。" + +#. Tag: para +#: basic_mapping.xml:1540 +#, no-c-format +msgid "" +"unique (optional): Enable the DDL generation of a unique " +"constraint for the foreign-key column. Also, allow this to be the target of " +"a property-ref. This makes the association multiplicity " +"effectively one to one." +msgstr "" +"unique(オプション): 外部キーカラムに対してユニーク制約" +"をつけたDDLの生成を可能にします。 また、property-ref の" +"ターゲットにすることもできます。 これにより関連の多重度を効果的に一対一にしま" +"す。" + +#. Tag: para +#: basic_mapping.xml:1548 +#, no-c-format +msgid "" +"not-null (optional): Enable the DDL generation of a " +"nullability constraint for the foreign key columns." +msgstr "" +"not-null (オプション):外部キーカラムに対して、 null値を許" +"可するDDLの生成を可能にします" + +#. Tag: para +#: basic_mapping.xml:1554 +#, no-c-format +msgid "" +"optimistic-lock (optional - defaults to true): Specifies that updates to this property do or do not require " +"acquisition of the optimistic lock. In other words, dertermines if a version " +"increment should occur when this property is dirty." +msgstr "" +"optimistic-lock (オプション - デフォルトは true ): このプロパティの更新に楽観的ロックの取得を要求するかどうかを指定" +"します。 言い換えれば、このプロパティがダーティであるときにバージョンを増やす" +"べきかを決定します。" + +#. Tag: para +#: basic_mapping.xml:1562 +#, no-c-format +msgid "" +"lazy (optional - defaults to proxy): " +"By default, single point associations are proxied. lazy=\"no-proxy" +"\" specifies that the property should be fetched lazily when the " +"instance variable is first accessed (requires build-time bytecode " +"instrumentation). lazy=\"false\" specifies that the " +"association will always be eagerly fetched." +msgstr "" +"lazy (オプション - デフォルトは proxy ): デフォルトでは、多重度1の関連がプロキシとなります。 " +"lazy=\"no-proxy\" は、インスタンス変数に最初にアクセスした" +"ときに、 プロパティを遅延フェッチするよう指定します (ビルド時にバイトコード実" +"装が必要になります)。 lazy=\"false\" は関連を常に即時に" +"フェッチするよう指定します。" + +#. Tag: para +#: basic_mapping.xml:1572 +#, no-c-format +msgid "" +"not-found (optional - defaults to exception): Specifies how foreign keys that reference missing rows will be " +"handled: ignore will treat a missing row as a null " +"association." +msgstr "" +"not-found (オプション - デフォルトは exception ): 欠落した行を参照する外部キーをどのように扱うかを指定します。 " +"ignore は欠落した行をnull関連として扱います。" + +#. Tag: para +#: basic_mapping.xml:1579 basic_mapping.xml:1733 +#, fuzzy, no-c-format +msgid "" +"entity-name (optional): The entity name of the associated " +"class." +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"entity-name (オプション):関連したクラスのエンティティ" +"名。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"entity-name (オプション):関連クラスのエンティティ名" + +#. Tag: para +#: basic_mapping.xml:1585 +#, no-c-format +msgid "" +"formula (optional): an SQL expression that defines the " +"value for a computed foreign key." +msgstr "" +"formula (オプション): 計算された 外" +"部キーに対して値を定義するSQL式" + +#. Tag: para +#: basic_mapping.xml:1592 +#, no-c-format +msgid "" +"Setting a value of the cascade attribute to any " +"meaningful value other than none will propagate certain " +"operations to the associated object. The meaningful values are the names of " +"Hibernate's basic operations, persist, merge, delete, save-update, " +"evict, replicate, lock, refresh, as well as the special values " +"delete-orphan and all and comma-" +"separated combinations of operation names, for example, cascade=" +"\"persist,merge,evict\" or cascade=\"all,delete-orphan\". See for a full " +"explanation. Note that single valued associations (many-to-one and one-to-" +"one associations) do not support orphan delete." +msgstr "" +"cascade 属性に none 以外の意味のある値" +"をを設定すると、 関連オブジェクトへある操作が伝播することになります。 意味の" +"ある値とはHibernateの基本操作の名前のことで、 delete-orphanall 、操作名をカンマで区切った組み合わせ (例" +"えば cascade=\"persist,merge,evict\"cascade=" +"\"all,delete-orphan\")、 またそれだけでなく persist, " +"merge, delete, save-update, evict, replicate, lock, refresh のこと" +"を指します。 詳しい説明は を見てく" +"ださい。 値が一つの関連(many-to-oneとone-to-one関連)は、 単独での削除" +"(orphan delete)をサポートしていないことに注意してください。" + +#. Tag: para +#: basic_mapping.xml:1605 +#, no-c-format +msgid "" +"A typical many-to-one declaration looks as simple as this:" +msgstr "" +"典型的な many-to-one 宣言は次のようにシンプルです。:" + +#. Tag: programlisting +#: basic_mapping.xml:1609 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1611 +#, no-c-format +msgid "" +"The property-ref attribute should only be used for " +"mapping legacy data where a foreign key refers to a unique key of the " +"associated table other than the primary key. This is an ugly relational " +"model. For example, suppose the Product class had a " +"unique serial number, that is not the primary key. (The unique attribute controls Hibernate's DDL generation with the SchemaExport " +"tool.)" +msgstr "" +"property-ref 属性は、外部キーが関連付けられたテーブルの、" +"主キーでない ユニークキーを参照しているレガシーデータをマップするためにだけ使" +"うべきです。 これは醜いリレーショナルモデルです。 例えば Product クラスが、 主キーでないユニークなシリアルナンバーを持っていると仮定" +"してみてください。 ( unique 属性はSchemaExportツールを" +"使ったHibernateのDDL生成を制御します。)" + +#. Tag: programlisting +#: basic_mapping.xml:1620 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1622 +#, no-c-format +msgid "Then the mapping for OrderItem might use:" +msgstr "" +"以下のように OrderItem に対してマッピングを使えます:" + +#. Tag: programlisting +#: basic_mapping.xml:1626 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1628 +#, no-c-format +msgid "This is certainly not encouraged, however." msgstr "しかし、これは決して推奨できません。" -#: index.docbook:1457 -msgid "An ordinary association to another persistent class is declared using a many-to-one element. The relational model is a many-to-one association: a foreign key in one table is referencing the primary key column(s) of the target table." -msgstr "参照したユニークキーが、関連するエンティティの多数のプロパティから構成される場合、 指定した <properties> 要素内で、参照するプロパティをマッピングするべきです。" - -#: index.docbook:1485 +#. Tag: para +#: basic_mapping.xml:1632 +#, no-c-format msgid "" - "]]>" -msgstr "もし参照したユニークキーがコンポーネントのプロパティである場合は、プロパティのパスを指定できます。" +"If the referenced unique key comprises multiple properties of the associated " +"entity, you should map the referenced properties inside a named <" +"properties> element." +msgstr "" +"参照したユニークキーが、関連するエンティティの多数のプロパティから構成される" +"場合、 指定した <properties> 要素内で、参照するプロ" +"パティをマッピングするべきです。" -#: index.docbook:1488, index.docbook:1669, index.docbook:1855 -msgid "name: The name of the property." -msgstr "]]>" +#. Tag: para +#: basic_mapping.xml:1637 +#, no-c-format +msgid "" +"If the referenced unique key is the property of a component, you may specify " +"a property path:" +msgstr "" +"もし参照したユニークキーがコンポーネントのプロパティである場合は、プロパティ" +"のパスを指定できます。" -#: index.docbook:1493, index.docbook:2284 -msgid "column (optional): The name of the foreign key column. This may also be specified by nested <column> element(s)." +#. Tag: programlisting +#: basic_mapping.xml:1641 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: title +#: basic_mapping.xml:1646 +#, no-c-format +msgid "one-to-one" msgstr "one-to-one" -#: index.docbook:1500, index.docbook:1674 -msgid "class (optional - defaults to the property type determined by reflection): The name of the associated class." -msgstr "他の永続クラスへの一対一関連は、one-to-one 要素で定義します。" - -#: index.docbook:1506 -msgid "cascade (optional): Specifies which operations should be cascaded from the parent object to the associated object." +#. Tag: para +#: basic_mapping.xml:1648 +#, no-c-format +msgid "" +"A one-to-one association to another persistent class is declared using a " +"one-to-one element." msgstr "" - "]]>" +"他の永続クラスへの一対一関連は、one-to-one 要素で定義しま" +"す。" -#: index.docbook:1512, index.docbook:1695 -msgid "fetch (optional - defaults to select): Chooses between outer-join fetching or sequential select fetching." -msgstr "name:プロパティ名。" +#. Tag: programlisting +#: basic_mapping.xml:1666 +#, no-c-format +msgid "" +"]]>" +msgstr "" -#: index.docbook:1518 -msgid "update, insert (optional - defaults to true) specifies that the mapped columns should be included in SQL UPDATE and/or INSERT statements. Setting both to false allows a pure \"derived\" association whose value is initialized from some other property that maps to the same colum(s) or by a trigger or other application." -msgstr "class(オプション - デフォルトはリフレクションにより決定されるプロパティの型): 関連クラスの名前。" +#. Tag: para +#: basic_mapping.xml:1680 +#, no-c-format +msgid "" +"cascade (optional) specifies which operations should be " +"cascaded from the parent object to the associated object." +msgstr "" +"cascade(オプション): 親オブジェクトから関連オブジェクト" +"へ、どの操作をカスケードするかを指定します。" -#: index.docbook:1527 -msgid "property-ref: (optional) The name of a property of the associated class that is joined to this foreign key. If not specified, the primary key of the associated class is used." -msgstr "cascade(オプション): 親オブジェクトから関連オブジェクトへ、どの操作をカスケードするかを指定します。" +#. Tag: para +#: basic_mapping.xml:1686 +#, no-c-format +msgid "" +"constrained (optional) specifies that a foreign key " +"constraint on the primary key of the mapped table references the table of " +"the associated class. This option affects the order in which save()" +" and delete() are cascaded, and determines " +"whether the association may be proxied (it is also used by the schema export " +"tool)." +msgstr "" +"constrained(オプション): マッピングされたテーブルの主" +"キーに対する外部キー制約が、 関連クラスのテーブルを参照することを指定しま" +"す。 このオプションは save()delete() がカスケードされる順序に影響し、 そして関連がプロキシされるかどうか" +"にも影響します (そしてスキーマエクスポートツールにも使われます)。" -#: index.docbook:1540 -msgid "unique (optional): Enable the DDL generation of a unique constraint for the foreign-key column. Also, allow this to be the target of a property-ref. This makes the association multiplicity effectively one to one." -msgstr "fetch(オプション - デフォルトは select ): 外部結合フェッチと順次選択フェッチ(sequential select fetch)のどちらかを選択します。" +#. Tag: para +#: basic_mapping.xml:1701 +#, no-c-format +msgid "" +"property-ref: (optional) The name of a property of the " +"associated class that is joined to the primary key of this class. If not " +"specified, the primary key of the associated class is used." +msgstr "" +"property-ref(オプション): このクラスの主キーに結合され" +"た関連クラスのプロパティ名。 指定されなければ、関連クラスの主キーが使われま" +"す。" -#: index.docbook:1548 -msgid "not-null (optional): Enable the DDL generation of a nullability constraint for the foreign key columns." -msgstr "property-ref(オプション): このクラスの主キーに結合された関連クラスのプロパティ名。 指定されなければ、関連クラスの主キーが使われます。" +#. Tag: para +#: basic_mapping.xml:1714 +#, no-c-format +msgid "" +"formula (optional): Almost all one to one associations " +"map to the primary key of the owning entity. In the rare case that this is " +"not the case, you may specify a some other column, columns or expression to " +"join on using an SQL formula. (See org.hibernate.test." +"onetooneformula for an example.)" +msgstr "" +"formula (オプション): ほとんどすべての一対一関連はオーナー" +"のエンティティの主キーへとマッピングされます。 これ以外の稀な場合は、 他のカ" +"ラムや、複数のカラム、SQL構文を使った結合するための式を指定できます。 (例は " +"org.hibernate.test.onetooneformula を参照してください。)" -#: index.docbook:1554 -msgid "optimistic-lock (optional - defaults to true): Specifies that updates to this property do or do not require acquisition of the optimistic lock. In other words, dertermines if a version increment should occur when this property is dirty." -msgstr "access(オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。" +#. Tag: para +#: basic_mapping.xml:1722 +#, no-c-format +msgid "" +"lazy (optional - defaults to proxy): " +"By default, single point associations are proxied. lazy=\"no-proxy" +"\" specifies that the property should be fetched lazily when the " +"instance variable is first accessed (requires build-time bytecode " +"instrumentation). lazy=\"false\" specifies that the " +"association will always be eagerly fetched. Note that if " +"constrained=\"false\", proxying is impossible and " +"Hibernate will eager fetch the association!" +msgstr "" +"lazy (オプション - デフォルトは proxy ): デフォルトでは、多重度1の関連がプロキシとなります。 " +"lazy=\"no-proxy\" は、インスタンス変数に最初にアクセスした" +"ときに、 プロパティを遅延フェッチするよう指定します (ビルド時にバイトコード実" +"装が必要になります)。 lazy=\"false\" は関連を常に即時に" +"フェッチするよう指定します。 もし constrained=\"false\" ならば、 プロキシは使用不可能となり、関連を即時にフェッチすることに" +"注意してください!" -#: index.docbook:1562 -msgid "lazy (optional - defaults to proxy): By default, single point associations are proxied. lazy=\"no-proxy\" specifies that the property should be fetched lazily when the instance variable is first accessed (requires build-time bytecode instrumentation). lazy=\"false\" specifies that the association will always be eagerly fetched." -msgstr "formula (オプション): ほとんどすべての一対一関連はオーナーのエンティティの主キーへとマッピングされます。 これ以外の稀な場合は、 他のカラムや、複数のカラム、SQL構文を使った結合するための式を指定できます。 (例は org.hibernate.test.onetooneformula を参照してください。)" - -#: index.docbook:1572 -msgid "not-found (optional - defaults to exception): Specifies how foreign keys that reference missing rows will be handled: ignore will treat a missing row as a null association." -msgstr "lazy (オプション - デフォルトは proxy ): デフォルトでは、多重度1の関連がプロキシとなります。 lazy=\"no-proxy\" は、インスタンス変数に最初にアクセスしたときに、 プロパティを遅延フェッチするよう指定します (ビルド時にバイトコード実装が必要になります)。 lazy=\"false\" は関連を常に即時にフェッチするよう指定します。 もし constrained=\"false\" ならば、 プロキシは使用不可能となり、関連を即時にフェッチすることに注意してください!" - -#: index.docbook:1579, index.docbook:1733 -msgid "entity-name (optional): The entity name of the associated class." -msgstr "entity-name (オプション):関連クラスのエンティティ名" - -#: index.docbook:1585 -msgid "formula (optional): an SQL expression that defines the value for a computed foreign key." +#. Tag: para +#: basic_mapping.xml:1740 +#, no-c-format +msgid "There are two varieties of one-to-one association:" msgstr "一対一関連には2種類あります:" -#: index.docbook:1592 -msgid "Setting a value of the cascade attribute to any meaningful value other than none will propagate certain operations to the associated object. The meaningful values are the names of Hibernate's basic operations, persist, merge, delete, save-update, evict, replicate, lock, refresh, as well as the special values delete-orphan and all and comma-separated combinations of operation names, for example, cascade=\"persist,merge,evict\" or cascade=\"all,delete-orphan\". See for a full explanation. Note that single valued associations (many-to-one and one-to-one associations) do not support orphan delete." +#. Tag: para +#: basic_mapping.xml:1744 +#, no-c-format +msgid "primary key associations" msgstr "主キー関連" -#: index.docbook:1605 -msgid "A typical many-to-one declaration looks as simple as this:" +#. Tag: para +#: basic_mapping.xml:1747 +#, no-c-format +msgid "unique foreign key associations" msgstr "ユニーク外部キー関連" -#: index.docbook:1609 -msgid "]]>" -msgstr "主キー関連には、特別なテーブルカラムは必要ありません。 もし2つの行が関連により関係していれば、2つのテーブルは同じ主キーの値を共有します。 そのため2つのオブジェクトを主キー関連によって関連付けたいのであれば、 確実に同じ識別子の値を代入しなければなりません。" - -#: index.docbook:1611 -msgid "The property-ref attribute should only be used for mapping legacy data where a foreign key refers to a unique key of the associated table other than the primary key. This is an ugly relational model. For example, suppose the Product class had a unique serial number, that is not the primary key. (The unique attribute controls Hibernate's DDL generation with the SchemaExport tool.)" -msgstr "主キー関連を行うためには、以下のマッピングを EmployeePerson のそれぞれに追加してください。" - -#: index.docbook:1620 -msgid "]]>" -msgstr "]]>" - -#: index.docbook:1622 -msgid "Then the mapping for OrderItem might use:" -msgstr "]]>" - -#: index.docbook:1626 -msgid "]]>" -msgstr "ここで、PERSONとEMPLOYEEテーブルの関係する行の主キーが同じであることを確実にしなければいけません。 ここでは、foreign という特殊なHibernate識別子生成戦略を使います:" - -#: index.docbook:1628 -msgid "This is certainly not encouraged, however." -msgstr "" - " \n" - " \n" - " \n" - " employee \n" - " \n" - " \n" - " ... \n" - " \n" - "]]>" - -#: index.docbook:1632 -msgid "If the referenced unique key comprises multiple properties of the associated entity, you should map the referenced properties inside a named <properties> element." -msgstr "Employee インスタンスが、Personemployee プロパティで参照されるように、 新しくセーブされた Person のインスタンスには同じ主キーの値が代入されます。 新しくセーブする Person インスタンスは、 その Personemployee プロパティが参照する Employee インスタンスとして同じ主キーが割り当てられます。" - -#: index.docbook:1637 -msgid "If the referenced unique key is the property of a component, you may specify a property path:" -msgstr "もう1つの方法として、Employee から Person への ユニーク制約を使った外部キー関連は以下のように表現されます:" - -#: index.docbook:1641 -msgid "]]>" -msgstr "]]>" - -#: index.docbook:1646 -msgid "one-to-one" -msgstr "そしてこの関連は、 以下の記述を Person のマッピングに追加することで双方向にすることができます:" - -#: index.docbook:1648 -msgid "A one-to-one association to another persistent class is declared using a one-to-one element." -msgstr "]]>" - -#: index.docbook:1666 +#. Tag: para +#: basic_mapping.xml:1752 +#, no-c-format msgid "" - "]]>" +"Primary key associations don't need an extra table column; if two rows are " +"related by the association then the two table rows share the same primary " +"key value. So if you want two objects to be related by a primary key " +"association, you must make sure that they are assigned the same identifier " +"value!" +msgstr "" +"主キー関連には、特別なテーブルカラムは必要ありません。 もし2つの行が関連によ" +"り関係していれば、2つのテーブルは同じ主キーの値を共有します。 そのため2つのオ" +"ブジェクトを主キー関連によって関連付けたいのであれば、 確実に同じ識別子の値を" +"代入しなければなりません。" + +#. Tag: para +#: basic_mapping.xml:1759 +#, no-c-format +msgid "" +"For a primary key association, add the following mappings to " +"Employee and Person, respectively." +msgstr "" +"主キー関連を行うためには、以下のマッピングを Employee と " +"Person のそれぞれに追加してください。" + +#. Tag: programlisting +#: basic_mapping.xml:1764 +#, no-c-format +msgid "]]>" +msgstr "" + +#. Tag: programlisting +#: basic_mapping.xml:1765 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1767 +#, no-c-format +msgid "" +"Now we must ensure that the primary keys of related rows in the PERSON and " +"EMPLOYEE tables are equal. We use a special Hibernate identifier generation " +"strategy called foreign:" +msgstr "" +"ここで、PERSONとEMPLOYEEテーブルの関係する行の主キーが同じであることを確実に" +"しなければいけません。 ここでは、foreign という特殊な" +"Hibernate識別子生成戦略を使います:" + +#. Tag: programlisting +#: basic_mapping.xml:1773 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" employee\n" +" \n" +" \n" +" ...\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1775 +#, no-c-format +msgid "" +"A newly saved instance of Person is then assigned the " +"same primary key value as the Employee instance refered " +"with the employee property of that Person." +msgstr "" +"Employee インスタンスが、Person の " +"employee プロパティで参照されるように、 新しくセーブされ" +"た Person のインスタンスには同じ主キーの値が代入されま" +"す。 新しくセーブする Person インスタンスは、 その " +"Personemployee プロパティが参照す" +"る Employee インスタンスとして同じ主キーが割り当てられま" +"す。" + +#. Tag: para +#: basic_mapping.xml:1781 +#, no-c-format +msgid "" +"Alternatively, a foreign key with a unique constraint, from " +"Employee to Person, may be expressed " +"as:" +msgstr "" +"もう1つの方法として、Employee から Person への ユニーク制約を使った外部キー関連は以下のように表現されます:" + +#. Tag: programlisting +#: basic_mapping.xml:1786 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1788 +#, no-c-format +msgid "" +"And this association may be made bidirectional by adding the following to " +"the Person mapping:" +msgstr "" +"そしてこの関連は、 以下の記述を Person のマッピングに追加" +"することで双方向にすることができます:" + +#. Tag: programlisting +#: basic_mapping.xml:1793 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: title +#: basic_mapping.xml:1798 +#, no-c-format +msgid "natural-id" msgstr "natural-id" -#: index.docbook:1680 -msgid "cascade (optional) specifies which operations should be cascaded from the parent object to the associated object." -msgstr "エンティティの自然キープロパティの比較には、 equals()hashCode() の実装を強くお勧めします。" +#. Tag: programlisting +#: basic_mapping.xml:1800 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" ......\n" +"]]>" +msgstr "" -#: index.docbook:1686 -msgid "constrained (optional) specifies that a foreign key constraint on the primary key of the mapped table references the table of the associated class. This option affects the order in which save() and delete() are cascaded, and determines whether the association may be proxied (it is also used by the schema export tool)." -msgstr "このマッピングは自然主キーを使ったエンティティでの使用を意図していません。" +#. Tag: para +#: basic_mapping.xml:1802 +#, no-c-format +msgid "" +"Even though we recommend the use of surrogate keys as primary keys, you " +"should still try to identify natural keys for all entities. A natural key is " +"a property or combination of properties that is unique and non-null. If it " +"is also immutable, even better. Map the properties of the natural key inside " +"the <natural-id> element. Hibernate will generate " +"the necessary unique key and nullability constraints, and your mapping will " +"be more self-documenting." +msgstr "" +"主キーとして代理キーの使用を推奨しますが、 すべてのエンティティに対して自然" +"キーを識別するようにすべきです。 自然キーはユニークかつ非nullな一つのプロパ" +"ティ、またはプロパティの連結です。 不変であればさらに良いです。 <" +"natural-id> 要素内で自然キーのプロパティをマッピングします。 " +"Hibernateは必然的にユニークかつnull値を許可する制約を生成し、 こうしてマッピ" +"ングはより自己記述的になります。" -#: index.docbook:1701 -msgid "property-ref: (optional) The name of a property of the associated class that is joined to the primary key of this class. If not specified, the primary key of the associated class is used." +#. Tag: para +#: basic_mapping.xml:1811 +#, no-c-format +msgid "" +"We strongly recommend that you implement equals() and " +"hashCode() to compare the natural key properties of the " +"entity." +msgstr "" +"エンティティの自然キープロパティの比較には、 equals() と " +"hashCode() の実装を強くお勧めします。" + +#. Tag: para +#: basic_mapping.xml:1816 +#, no-c-format +msgid "" +"This mapping is not intended for use with entities with natural primary keys." +msgstr "" +"このマッピングは自然主キーを使ったエンティティでの使用を意図していません。" + +#. Tag: para +#: basic_mapping.xml:1822 +#, no-c-format +msgid "" +"mutable (optional, defaults to false): " +"By default, natural identifier properties as assumed to be immutable " +"(constant)." +msgstr "" +"mutable (オプション, デフォルトは false ): デフォルトでは、自然識別子プロパティは不変(定数)と想定されていま" +"す。" + +#. Tag: title +#: basic_mapping.xml:1832 +#, no-c-format +msgid "component, dynamic-component" msgstr "component, dynamic-component" -#: index.docbook:1714 -msgid "formula (optional): Almost all one to one associations map to the primary key of the owning entity. In the rare case that this is not the case, you may specify a some other column, columns or expression to join on using an SQL formula. (See org.hibernate.test.onetooneformula for an example.)" -msgstr "" - " \n" - " \n" - " \n" - " \n" - " ........ \n" - "]]>" - -#: index.docbook:1722 -msgid "lazy (optional - defaults to proxy): By default, single point associations are proxied. lazy=\"no-proxy\" specifies that the property should be fetched lazily when the instance variable is first accessed (requires build-time bytecode instrumentation). lazy=\"false\" specifies that the association will always be eagerly fetched. Note that if constrained=\"false\", proxying is impossible and Hibernate will eager fetch the association!" -msgstr "name:プロパティ名。" - -#: index.docbook:1740 -msgid "There are two varieties of one-to-one association:" -msgstr "insert :マッピングされたカラムがSQLの INSERT に現れるようにするどうかを指定します。" - -#: index.docbook:1744 -msgid "primary key associations" -msgstr "update : マッピングされたカラムがSQL の UPDATE に現れるようにするかどうかを指定します。" - -#: index.docbook:1747 -msgid "unique foreign key associations" -msgstr "access (オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。" - -#: index.docbook:1752 -msgid "Primary key associations don't need an extra table column; if two rows are related by the association then the two table rows share the same primary key value. So if you want two objects to be related by a primary key association, you must make sure that they are assigned the same identifier value!" -msgstr "lazy (optional - デフォルトは false ): インスタンス変数に最初にアクセスしたときに、 コンポーネントを遅延してフェッチするよう指定します。 (バイトコード実装を作成する時間が必要になります)" - -#: index.docbook:1759 -msgid "For a primary key association, add the following mappings to Employee and Person, respectively." -msgstr "optimistic-lock (オプション - デフォルトは true ): このプロパティの更新に、楽観ロックの取得を要求するかどうかを指定します。 言い換えれば、このプロパティがダーティであるときにバージョンを増やすべきかを決定します。" - -#: index.docbook:1764 -msgid "]]>" -msgstr "unique (オプション - デフォルトは false ): コンポーネントのすべてのマッピングするカラムに、ユニーク制約が存在するかを指定します。" - -#: index.docbook:1765 -msgid "]]>" -msgstr "子の <property> タグで、 子のクラスのプロパティをテーブルカラムにマッピングします。" - -#: index.docbook:1767 -msgid "Now we must ensure that the primary keys of related rows in the PERSON and EMPLOYEE tables are equal. We use a special Hibernate identifier generation strategy called foreign:" -msgstr "<component> 要素は、親エンティティへ戻る参照として、 コンポーネントのクラスのプロパティをマッピングする <parent> サブ要素を許可します。" - -#: index.docbook:1773 +#. Tag: para +#: basic_mapping.xml:1834 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " employee\n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" -msgstr "<dynamic-component> 要素は、 Map がコンポーネントとしてマッピングされることを可能にします。 プロパティ名はmapのキーを参照します。 を参照してください。" +"The <component> element maps properties of a child " +"object to columns of the table of a parent class. Components may, in turn, " +"declare their own properties, components or collections. See \"Components\" " +"below." +msgstr "" +"<component> 要素は、 子オブジェクトのプロパティを親" +"クラスのテーブルのカラムへマッピングします。 コンポーネントは自分のプロパ" +"ティ、コンポーネント、コレクションの順に定義できます。 以下の「コンポーネン" +"ト」を見てください。" -#: index.docbook:1775 -msgid "A newly saved instance of Person is then assigned the same primary key value as the Employee instance refered with the employee property of that Person." +#. Tag: programlisting +#: basic_mapping.xml:1852 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +" \n" +" ........\n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1860 +#, no-c-format +msgid "" +"class (optional - defaults to the property type " +"determined by reflection): The name of the component (child) class." +msgstr "" +"class (オプション - デフォルトはリフレクションにより決定" +"されるプロパティの型): コンポーネント(子)クラスの名前。" + +#. Tag: para +#: basic_mapping.xml:1866 basic_mapping.xml:1955 +#, fuzzy, no-c-format +msgid "" +"insert: Do the mapped columns appear in SQL " +"INSERTs?" +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"insert :マッピングされたカラムがSQLの INSERT に現れるようにするどうかを指定します。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"insert:マッピングされたカラムがSQLの INSERT に現れるようにするかどうかを指定します。" + +#. Tag: para +#: basic_mapping.xml:1872 basic_mapping.xml:1961 +#, fuzzy, no-c-format +msgid "" +"update: Do the mapped columns appear in SQL " +"UPDATEs?" +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"update : マッピングされたカラムがSQL の UPDATE に現れるようにするかどうかを指定します。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"update:マッピングされたカラムがSQLの UPDATE に現れるようにするかどうかを指定します。" + +#. Tag: para +#: basic_mapping.xml:1884 +#, no-c-format +msgid "" +"lazy (optional - defaults to false): " +"Specifies that this component should be fetched lazily when the instance " +"variable is first accessed (requires build-time bytecode instrumentation)." +msgstr "" +"lazy (optional - デフォルトは false ): " +"インスタンス変数に最初にアクセスしたときに、 コンポーネントを遅延してフェッチ" +"するよう指定します。 (バイトコード実装を作成する時間が必要になります)" + +#. Tag: para +#: basic_mapping.xml:1891 +#, no-c-format +msgid "" +"optimistic-lock (optional - defaults to true): Specifies that updates to this component do or do not require " +"acquisition of the optimistic lock. In other words, determines if a version " +"increment should occur when this property is dirty." +msgstr "" +"optimistic-lock (オプション - デフォルトは true ): このプロパティの更新に、楽観ロックの取得を要求するかどうかを指定" +"します。 言い換えれば、このプロパティがダーティであるときにバージョンを増やす" +"べきかを決定します。" + +#. Tag: para +#: basic_mapping.xml:1899 basic_mapping.xml:1975 +#, no-c-format +msgid "" +"unique (optional - defaults to false): " +"Specifies that a unique constraint exists upon all mapped columns of the " +"component." +msgstr "" +"unique (オプション - デフォルトは false ): コンポーネントのすべてのマッピングするカラムに、ユニーク制約が存" +"在するかを指定します。" + +#. Tag: para +#: basic_mapping.xml:1908 +#, no-c-format +msgid "" +"The child <property> tags map properties of the " +"child class to table columns." +msgstr "" +"子の <property> タグで、 子のクラスのプロパティを" +"テーブルカラムにマッピングします。" + +#. Tag: para +#: basic_mapping.xml:1913 +#, no-c-format +msgid "" +"The <component> element allows a <" +"parent> subelement that maps a property of the component class " +"as a reference back to the containing entity." +msgstr "" +"<component> 要素は、親エンティティへ戻る参照とし" +"て、 コンポーネントのクラスのプロパティをマッピングする <" +"parent> サブ要素を許可します。" + +#. Tag: para +#: basic_mapping.xml:1919 +#, no-c-format +msgid "" +"The <dynamic-component> element allows a " +"Map to be mapped as a component, where the property names " +"refer to keys of the map, see ." +msgstr "" +"<dynamic-component> 要素は、 Map " +"がコンポーネントとしてマッピングされることを可能にします。 プロパティ名はmap" +"のキーを参照します。 を参照してくださ" +"い。" + +#. Tag: title +#: basic_mapping.xml:1928 +#, no-c-format +msgid "properties" msgstr "properties" -#: index.docbook:1781 -msgid "Alternatively, a foreign key with a unique constraint, from Employee to Person, may be expressed as:" -msgstr "<properties> 要素はクラスのプロパティの指定された、 論理的なグルーピングを可能にします。 この構造の最も重要な使用方法は、 property-ref のターゲットになるプロパティの結合を許可することです。 それはまた、複数カラムのユニーク制約を定義する簡単な方法でもあります。" - -#: index.docbook:1786 -msgid "]]>" -msgstr "" - " \n" - " \n" - " \n" - " \n" - " ........ \n" - "]]>" - -#: index.docbook:1788 -msgid "And this association may be made bidirectional by adding the following to the Person mapping:" -msgstr "name : グルーピングの論理名。 実際のプロパティ名では ありません 。" - -#: index.docbook:1793 -msgid "]]>" -msgstr "insert:マッピングされたカラムがSQLの INSERT に現れるようにするかどうかを指定します。" - -#: index.docbook:1798 -msgid "natural-id" -msgstr "update:マッピングされたカラムがSQLの UPDATE に現れるようにするかどうかを指定します。" - -#: index.docbook:1800 +#. Tag: para +#: basic_mapping.xml:1930 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " ......\n" - "]]>" -msgstr "optimistic-lock (オプション - デフォルトは true ): これらのプロパティの更新に楽観的ロックの取得を要求するかどうかを指定します。 言い換えれば、このプロパティがダーティであるときにバージョンを増やすべきかを決定します。" - -#: index.docbook:1802 -msgid "Even though we recommend the use of surrogate keys as primary keys, you should still try to identify natural keys for all entities. A natural key is a property or combination of properties that is unique and non-null. If it is also immutable, even better. Map the properties of the natural key inside the <natural-id> element. Hibernate will generate the necessary unique key and nullability constraints, and your mapping will be more self-documenting." -msgstr "unique (オプション - デフォルトは false ): コンポーネントのすべてのマッピングするカラムに、ユニーク制約が存在するかを指定します。" - -#: index.docbook:1811 -msgid "We strongly recommend that you implement equals() and hashCode() to compare the natural key properties of the entity." -msgstr "例えば、もし以下のような <properties> マッピングがあった場合:" - -#: index.docbook:1816 -msgid "This mapping is not intended for use with entities with natural primary keys." +"The <properties> element allows the definition of a " +"named, logical grouping of properties of a class. The most important use of " +"the construct is that it allows a combination of properties to be the target " +"of a property-ref. It is also a convenient way to define " +"a multi-column unique constraint." msgstr "" - " \n" - " \n" - " ... \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"<properties> 要素はクラスのプロパティの指定された、 " +"論理的なグルーピングを可能にします。 この構造の最も重要な使用方法は、 " +"property-ref のターゲットになるプロパティの結合を許可する" +"ことです。 それはまた、複数カラムのユニーク制約を定義する簡単な方法でもありま" +"す。" -#: index.docbook:1822 -msgid "mutable (optional, defaults to false): By default, natural identifier properties as assumed to be immutable (constant)." -msgstr "主キーの代わりに Person テーブルのユニークキーへの参照を持つ、 レガシーデータの関連を持つかもしれません。:" - -#: index.docbook:1832 -msgid "component, dynamic-component" -msgstr "" - " \n" - " \n" - " \n" - " \n" - "]]>" - -#: index.docbook:1834 -msgid "The <component> element maps properties of a child object to columns of the table of a parent class. Components may, in turn, declare their own properties, components or collections. See \"Components\" below." -msgstr "しかし、このようなレガシーデータマッピングのコンテキスト外への使用は推奨しません。" - -#: index.docbook:1852 +#. Tag: programlisting +#: basic_mapping.xml:1946 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " ........\n" - "]]>" +"\n" +"\n" +" \n" +" \n" +" ........\n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1949 +#, no-c-format +msgid "" +"name: The logical name of the grouping - not an actual property name." +msgstr "" +"name : グルーピングの論理名。 実際のプロパティ名では " +"ありません 。" + +#. Tag: para +#: basic_mapping.xml:1967 +#, no-c-format +msgid "" +"optimistic-lock (optional - defaults to true): Specifies that updates to these properties do or do not require " +"acquisition of the optimistic lock. In other words, determines if a version " +"increment should occur when these properties are dirty." +msgstr "" +"optimistic-lock (オプション - デフォルトは true ): これらのプロパティの更新に楽観的ロックの取得を要求するかどうかを" +"指定します。 言い換えれば、このプロパティがダーティであるときにバージョンを増" +"やすべきかを決定します。" + +#. Tag: para +#: basic_mapping.xml:1984 +#, no-c-format +msgid "" +"For example, if we have the following <properties> " +"mapping:" +msgstr "" +"例えば、もし以下のような <properties> マッピングが" +"あった場合:" + +#. Tag: programlisting +#: basic_mapping.xml:1988 +#, no-c-format +msgid "" +"\n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1990 +#, no-c-format +msgid "" +"Then we might have some legacy data association which refers to this unique " +"key of the Person table, instead of to the primary key:" +msgstr "" +"主キーの代わりに Person テーブルのユニークキーへの参照を持" +"つ、 レガシーデータの関連を持つかもしれません。:" + +#. Tag: programlisting +#: basic_mapping.xml:1995 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:1997 +#, no-c-format +msgid "" +"We don't recommend the use of this kind of thing outside the context of " +"mapping legacy data." +msgstr "" +"しかし、このようなレガシーデータマッピングのコンテキスト外への使用は推奨しま" +"せん。" + +#. Tag: title +#: basic_mapping.xml:2005 +#, no-c-format +msgid "subclass" msgstr "subclass" -#: index.docbook:1860 -msgid "class (optional - defaults to the property type determined by reflection): The name of the component (child) class." +#. Tag: para +#: basic_mapping.xml:2007 +#, no-c-format +msgid "" +"Finally, polymorphic persistence requires the declaration of each subclass " +"of the root persistent class. For the table-per-class-hierarchy mapping " +"strategy, the <subclass> declaration is used." msgstr "" - " \n" - " \n" - " \n" - " ..... \n" - "]]>" +"最後にポリモーフィックな永続化には、ルートの永続クラスの各サブクラスの定義が" +"必要です。 table-per-class-hierarchyマッピング戦略では、 <" +"subclass> 定義が使われます。" -#: index.docbook:1866, index.docbook:1955 -msgid "insert: Do the mapped columns appear in SQL INSERTs?" +#. Tag: programlisting +#: basic_mapping.xml:2020 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +" .....\n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:2023 basic_mapping.xml:2081 basic_mapping.xml:2144 +#, no-c-format +msgid "" +"name: The fully qualified class name of the subclass." msgstr "name:サブクラスの完全修飾されたクラス名。" -#: index.docbook:1872, index.docbook:1961 -msgid "update: Do the mapped columns appear in SQL UPDATEs?" -msgstr "discriminator-value(オプション - デフォルトはクラス名): 個々のサブクラスを区別するための値。" +#. Tag: para +#: basic_mapping.xml:2028 +#, no-c-format +msgid "" +"discriminator-value (optional - defaults to the class " +"name): A value that distiguishes individual subclasses." +msgstr "" +"discriminator-value(オプション - デフォルトはクラス" +"名): 個々のサブクラスを区別するための値。" -#: index.docbook:1884 -msgid "lazy (optional - defaults to false): Specifies that this component should be fetched lazily when the instance variable is first accessed (requires build-time bytecode instrumentation)." -msgstr "lazy(オプション, デフォルトは true ): lazy=\"false\" と設定すると、遅延フェッチが使用できません。" +#. Tag: para +#: basic_mapping.xml:2034 basic_mapping.xml:2091 basic_mapping.xml:2154 +#, fuzzy, no-c-format +msgid "" +"proxy (optional): Specifies a class or interface to use " +"for lazy initializing proxies." +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"proxy(オプション): 遅延初期化プロキシに使うクラスやイン" +"ターフェイスを指定します。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"proxy (オプション): 遅延初期化プロキシに使用するクラスやイ" +"ンターフェイスを指定します。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"proxy (オプション): 遅延初期化プロキシに使用するクラスやイ" +"ンターフェイスを指定します。" -#: index.docbook:1891 -msgid "optimistic-lock (optional - defaults to true): Specifies that updates to this component do or do not require acquisition of the optimistic lock. In other words, determines if a version increment should occur when this property is dirty." -msgstr "各サブクラスでは、永続プロパティとサブクラスを定義します。 <version><id> プロパティは、 ルートクラスから継承されると仮定されます。 階層構造におけるサブクラスは、 ユニークな discriminator-value を定義しなければなりません。 noneが指定されると、完全修飾されたJavaクラス名が使われます。" +#. Tag: para +#: basic_mapping.xml:2040 basic_mapping.xml:2097 basic_mapping.xml:2160 +#, fuzzy, no-c-format +msgid "" +"lazy (optional, defaults to true): " +"Setting lazy=\"false\" disables the use of lazy fetching." +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"lazy(オプション, デフォルトは true ): lazy=\"false\" と設定すると、遅延フェッチが" +"使用できません。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"lazy (オプション, デフォルトは true ): " +"lazy=\"false\" とすると、遅延フェッチが使用できません。\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"lazy (オプション, デフォルトは true ): " +"lazy=\"false\" とすると、遅延フェッチが使用できません。" -#: index.docbook:1899, index.docbook:1975 -msgid "unique (optional - defaults to false): Specifies that a unique constraint exists upon all mapped columns of the component." -msgstr "継承のマッピングに関する情報は を見てください。" +#. Tag: para +#: basic_mapping.xml:2048 +#, no-c-format +msgid "" +"Each subclass should declare its own persistent properties and subclasses. " +"<version> and <id> " +"properties are assumed to be inherited from the root class. Each subclass in " +"a heirarchy must define a unique discriminator-value. If " +"none is specified, the fully qualified Java class name is used." +msgstr "" +"各サブクラスでは、永続プロパティとサブクラスを定義します。 <" +"version><id> プロパティは、 ルート" +"クラスから継承されると仮定されます。 階層構造におけるサブクラスは、 ユニーク" +"な discriminator-value を定義しなければなりません。 noneが" +"指定されると、完全修飾されたJavaクラス名が使われます。" -#: index.docbook:1908 -msgid "The child <property> tags map properties of the child class to table columns." +#. Tag: para +#: basic_mapping.xml:2056 basic_mapping.xml:2114 basic_mapping.xml:2172 +#, no-c-format +msgid "" +"For information about inheritance mappings, see ." +msgstr "" +"継承のマッピングに関する情報は を見てくださ" +"い。" + +#. Tag: title +#: basic_mapping.xml:2063 +#, no-c-format +msgid "joined-subclass" msgstr "joined-subclass" -#: index.docbook:1913 -msgid "The <component> element allows a <parent> subelement that maps a property of the component class as a reference back to the containing entity." -msgstr "もう1つの方法として、各サブクラスを自身のテーブルへマッピングすることができます (table-per-subclass mapping strategy)。 継承した状態はスーパークラスのテーブルを使った結合で検索します。 <joined-subclass> 要素を使用します。" - -#: index.docbook:1919 -msgid "The <dynamic-component> element allows a Map to be mapped as a component, where the property names refer to keys of the map, see ." +#. Tag: para +#: basic_mapping.xml:2065 +#, no-c-format +msgid "" +"Alternatively, each subclass may be mapped to its own table (table-per-" +"subclass mapping strategy). Inherited state is retrieved by joining with the " +"table of the superclass. We use the <joined-subclass> element." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " ..... \n" - "]]>" +"もう1つの方法として、各サブクラスを自身のテーブルへマッピングすることができま" +"す (table-per-subclass mapping strategy)。 継承した状態はスーパークラスのテー" +"ブルを使った結合で検索します。 <joined-subclass> 要" +"素を使用します。" -#: index.docbook:1928 -msgid "properties" -msgstr "name:サブクラスの完全修飾されたクラス名。" +#. Tag: programlisting +#: basic_mapping.xml:2078 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +"\n" +" \n" +" .....\n" +"]]>" +msgstr "" -#: index.docbook:1930 -msgid "The <properties> element allows the definition of a named, logical grouping of properties of a class. The most important use of the construct is that it allows a combination of properties to be the target of a property-ref. It is also a convenient way to define a multi-column unique constraint." +#. Tag: para +#: basic_mapping.xml:2086 basic_mapping.xml:2149 +#, no-c-format +msgid "table: The name of the subclass table." msgstr "table :サブクラステーブルの名前。" -#: index.docbook:1946 +#. Tag: para +#: basic_mapping.xml:2105 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " ........\n" - "]]>" -msgstr "proxy (オプション): 遅延初期化プロキシに使用するクラスやインターフェイスを指定します。" - -#: index.docbook:1949 -msgid "name: The logical name of the grouping - not an actual property name." -msgstr "lazy (オプション, デフォルトは true ): lazy=\"false\" とすると、遅延フェッチが使用できません。" - -#: index.docbook:1967 -msgid "optimistic-lock (optional - defaults to true): Specifies that updates to these properties do or do not require acquisition of the optimistic lock. In other words, determines if a version increment should occur when these properties are dirty." -msgstr "継承のマッピングに関する情報は を見てください。" - -#: index.docbook:1984 -msgid "For example, if we have the following <properties> mapping:" -msgstr "3つ目の選択肢は、継承階層の具象クラスのみをテーブルにマッピングすることです (the table-per-concrete-class戦略)。 それぞれのテーブルは継承の状態を含めすべてのクラスの永続状態を定義します。 Hibernateではその様な継承階層が必ずしも必要ではありません。 単純にそれぞれのクラスを、 別々の <class> 宣言を使ってマッピングすることができます。 しかしポリモーフィックな関連(例えば 階層のスーパークラスへの関連)を使いたいなら、 <union-subclass> マッピングを使う必要があります。" - -#: index.docbook:1988 -msgid "" - "\n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"No discriminator column is required for this mapping strategy. Each subclass " +"must, however, declare a table column holding the object identifier using " +"the <key> element. The mapping at the start of the " +"chapter would be re-written as:" msgstr "" - " \n" - " \n" - " \n" - " ..... \n" - "]]>" +"このマッピング戦略には、識別カラムは必要ありません。 しかし各サブクラスは " +"<key> 要素を使い、 オブジェクト識別子を保持するテー" +"ブルカラムを定義しなければなりません。 この章の初めのマッピングは以下のように" +"書き直せます:" -#: index.docbook:1990 -msgid "Then we might have some legacy data association which refers to this unique key of the Person table, instead of to the primary key:" -msgstr "name:サブクラスの完全修飾されたクラス名。" - -#: index.docbook:1995 +#. Tag: programlisting +#: basic_mapping.xml:2112 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - "]]>" -msgstr "table :サブクラステーブルの名前。" +"\n" +"\n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +"\n" +"]]>" +msgstr "" -#: index.docbook:1997 -msgid "We don't recommend the use of this kind of thing outside the context of mapping legacy data." -msgstr "proxy (オプション): 遅延初期化プロキシに使用するクラスやインターフェイスを指定します。" +#. Tag: title +#: basic_mapping.xml:2121 +#, no-c-format +msgid "union-subclass" +msgstr "union-subclass" -#: index.docbook:2005 -msgid "subclass" -msgstr "lazy (オプション, デフォルトは true ): lazy=\"false\" とすると、遅延フェッチが使用できません。" +#. Tag: para +#: basic_mapping.xml:2123 +#, no-c-format +msgid "" +"A third option is to map only the concrete classes of an inheritance " +"hierarchy to tables, (the table-per-concrete-class strategy) where each " +"table defines all persistent state of the class, including inherited state. " +"In Hibernate, it is not absolutely necessary to explicitly map such " +"inheritance hierarchies. You can simply map each class with a separate " +"<class> declaration. However, if you wish use " +"polymorphic associations (e.g. an association to the superclass of your " +"hierarchy), you need to use the <union-subclass> " +"mapping." +msgstr "" +"3つ目の選択肢は、継承階層の具象クラスのみをテーブルにマッピングすることです " +"(the table-per-concrete-class戦略)。 それぞれのテーブルは継承の状態を含めすべ" +"てのクラスの永続状態を定義します。 Hibernateではその様な継承階層が必ずしも必" +"要ではありません。 単純にそれぞれのクラスを、 別々の <class> 宣言を使ってマッピングすることができます。 しかしポリモーフィックな" +"関連(例えば 階層のスーパークラスへの関連)を使いたいなら、 <union-" +"subclass> マッピングを使う必要があります。" -#: index.docbook:2007 -msgid "Finally, polymorphic persistence requires the declaration of each subclass of the root persistent class. For the table-per-class-hierarchy mapping strategy, the <subclass> declaration is used." +#. Tag: programlisting +#: basic_mapping.xml:2141 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +" .....\n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:2168 +#, no-c-format +msgid "" +"No discriminator column or key column is required for this mapping strategy." msgstr "このマッピング戦略では識別カラムやキーカラムは必要ありません。" -#: index.docbook:2020 -msgid "" - "\n" - "\n" - " \n" - " .....\n" - "]]>" -msgstr "継承のマッピングに関する情報は を見てください。" - -#: index.docbook:2023, index.docbook:2081, index.docbook:2144 -msgid "name: The fully qualified class name of the subclass." +#. Tag: title +#: basic_mapping.xml:2179 +#, no-c-format +msgid "join" msgstr "join" -#: index.docbook:2028 -msgid "discriminator-value (optional - defaults to the class name): A value that distiguishes individual subclasses." -msgstr "<join> 要素を使うことで、 1つのクラスのプロパティをいくつものテーブルにマッピングすることができます。" - -#: index.docbook:2034, index.docbook:2091, index.docbook:2154 -msgid "proxy (optional): Specifies a class or interface to use for lazy initializing proxies." +#. Tag: para +#: basic_mapping.xml:2181 +#, no-c-format +msgid "" +"Using the <join> element, it is possible to map " +"properties of one class to several tables, when there's a 1-to-1 " +"relationship between the tables." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " ... \n" - "]]>" +"<join> 要素を使うことで、 1つのクラスのプロパティを" +"いくつものテーブルにマッピングすることができます。" -#: index.docbook:2040, index.docbook:2097, index.docbook:2160 -msgid "lazy (optional, defaults to true): Setting lazy=\"false\" disables the use of lazy fetching." +#. Tag: programlisting +#: basic_mapping.xml:2195 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +"\n" +" \n" +" ...\n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:2199 +#, no-c-format +msgid "table: The name of the joined table." msgstr "table :結合したテーブルの名前" -#: index.docbook:2048 -msgid "Each subclass should declare its own persistent properties and subclasses. <version> and <id> properties are assumed to be inherited from the root class. Each subclass in a heirarchy must define a unique discriminator-value. If none is specified, the fully qualified Java class name is used." -msgstr "schema (オプション): ルートの <hibernate-mapping> 要素で指定したスキーマ名を オーバーライドします。" - -#: index.docbook:2056, index.docbook:2114, index.docbook:2172 -msgid "For information about inheritance mappings, see ." -msgstr "catalog (オプション): ルートの <hibernate-mapping> 要素で指定したカタログ名を オーバーライドします。" - -#: index.docbook:2063 -msgid "joined-subclass" -msgstr "fetch (オプション - デフォルトは join ): join を設定した場合、 Hibernateはデフォルトで、クラスやスーパークラスで定義された <join> を検索するのに内部結合を使い、サブクラスで定義された <join> を検索するのに外部結合を使います。 select を設定した場合には、 Hibernateはサブクラスで定義された <join> の選択に順次選択を使います。この場合、 行がサブクラスのインスタンスを代表することがわかった場合にのみ発行されます。 内部結合はクラスやそのスーパークラスで定義された <join> を検索 するために使用します。" - -#: index.docbook:2065 -msgid "Alternatively, each subclass may be mapped to its own table (table-per-subclass mapping strategy). Inherited state is retrieved by joining with the table of the superclass. We use the <joined-subclass> element." -msgstr "inverse (オプション - デフォルトは false ): もし可能であれば、Hibernateはこの結合で定義されているプロパティに対し 挿入や更新を行いません。" - -#: index.docbook:2078 +#. Tag: para +#: basic_mapping.xml:2216 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - "\n" - " \n" - " .....\n" - "]]>" -msgstr "optional (オプション - デフォルトは false ): もし可能であれば、Hibernateはこの結合で定義されたプロパティがnullでない場合にのみ 行を挿入し、そのプロパティの検索には常に外部結合を使用します。" - -#: index.docbook:2086, index.docbook:2149 -msgid "table: The name of the subclass table." +"fetch (optional - defaults to join): " +"If set to join, the default, Hibernate will use an inner " +"join to retrieve a <join> defined by a class or its " +"superclasses and an outer join for a <join> defined " +"by a subclass. If set to select then Hibernate will use a " +"sequential select for a <join> defined on a " +"subclass, which will be issued only if a row turns out to represent an " +"instance of the subclass. Inner joins will still be used to retrieve a " +"<join> defined by the class and its superclasses." msgstr "" - " \n" - " \n" - " ... \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...]]>" +"fetch (オプション - デフォルトは join ): join を設定した場合、 Hibernateはデフォルト" +"で、クラスやスーパークラスで定義された <join> を検索" +"するのに内部結合を使い、サブクラスで定義された <join> を検索するのに外部結合を使います。 select を設定" +"した場合には、 Hibernateはサブクラスで定義された <join> の選択に順次選択を使います。この場合、 行がサブクラスのインスタンス" +"を代表することがわかった場合にのみ発行されます。 内部結合はクラスやそのスー" +"パークラスで定義された <join> を検索 するために使用" +"します。" -#: index.docbook:2105 -msgid "No discriminator column is required for this mapping strategy. Each subclass must, however, declare a table column holding the object identifier using the <key> element. The mapping at the start of the chapter would be re-written as:" -msgstr "今まで何度か <key> 要素が出てきました。 この要素は新しいテーブルへの結合を定義したり、 結合テーブルで外部キーを定義したりする親要素のどこにでも現れ、 オリジナルテーブルの主キーを参照します。" - -#: index.docbook:2112 +#. Tag: para +#: basic_mapping.xml:2229 +#, no-c-format msgid "" - "\n" - "\n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"inverse (optional - defaults to false): If enabled, Hibernate will not try to insert or update the " +"properties defined by this join." msgstr "" - "]]>" +"inverse (オプション - デフォルトは false ): もし可能であれば、Hibernateはこの結合で定義されているプロパティに" +"対し 挿入や更新を行いません。" -#: index.docbook:2121 -msgid "union-subclass" -msgstr "on-delete (オプション, デフォルトは noaction): 外部キー制約がデータベースレベルでカスケード削除が可能かどうかを指定します。" - -#: index.docbook:2123 -msgid "A third option is to map only the concrete classes of an inheritance hierarchy to tables, (the table-per-concrete-class strategy) where each table defines all persistent state of the class, including inherited state. In Hibernate, it is not absolutely necessary to explicitly map such inheritance hierarchies. You can simply map each class with a separate <class> declaration. However, if you wish use polymorphic associations (e.g. an association to the superclass of your hierarchy), you need to use the <union-subclass> mapping." -msgstr "property-ref (オプション): オリジナルテーブルの主キーではないカラムを参照する外部キーを指定します (レガシーデータに対して提供されます)。" - -#: index.docbook:2141 +#. Tag: para +#: basic_mapping.xml:2236 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " .....\n" - "]]>" -msgstr "not-null (オプション): 外部キーカラムがnull値を許容しないことを指定します (このことは外部キーが主キーの一部であることを暗黙的に示します)。" +"optional (optional - defaults to false): If enabled, Hibernate will insert a row only if the properties " +"defined by this join are non-null and will always use an outer join to " +"retrieve the properties." +msgstr "" +"optional (オプション - デフォルトは false ): もし可能であれば、Hibernateはこの結合で定義されたプロパティがnull" +"でない場合にのみ 行を挿入し、そのプロパティの検索には常に外部結合を使用しま" +"す。" -#: index.docbook:2168 -msgid "No discriminator column or key column is required for this mapping strategy." +#. Tag: para +#: basic_mapping.xml:2245 +#, no-c-format +msgid "" +"For example, the address information for a person can be mapped to a " +"separate table (while preserving value type semantics for all properties):" +msgstr "" +"例えば人のアドレスの情報を分離したテーブルにマッピングすることが可能です (す" +"べてのプロパティに対して値型のセマンティクスを保持します)。" + +#. Tag: programlisting +#: basic_mapping.xml:2250 +#, no-c-format +msgid "" +"\n" +"\n" +" ...\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ...]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:2252 +#, no-c-format +msgid "" +"This feature is often only useful for legacy data models, we recommend fewer " +"tables than classes and a fine-grained domain model. However, it is useful " +"for switching between inheritance mapping strategies in a single hierarchy, " +"as explained later." +msgstr "" +"この特徴はしばしばレガシーデータモデルに対してのみ有用ですが、 クラスよりも少" +"ないテーブルと、きめの細かいドメインモデルを推奨します。 しかし後で説明するよ" +"うに、1つのクラス階層で継承のマッピング戦略を切り替える時には有用です。" + +#. Tag: title +#: basic_mapping.xml:2262 +#, no-c-format +msgid "key" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:2264 +#, no-c-format +msgid "" +"We've seen the <key> element crop up a few times " +"now. It appears anywhere the parent mapping element defines a join to a new " +"table, and defines the foreign key in the joined table, that references the " +"primary key of the original table." +msgstr "" +"今まで何度か <key> 要素が出てきました。 この要素は新" +"しいテーブルへの結合を定義したり、 結合テーブルで外部キーを定義したりする親要" +"素のどこにでも現れ、 オリジナルテーブルの主キーを参照します。" + +#. Tag: programlisting +#: basic_mapping.xml:2280 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:2291 +#, no-c-format +msgid "" +"on-delete (optional, defaults to noaction): Specifies whether the foreign key constraint has database-level " +"cascade delete enabled." +msgstr "" +"on-delete (オプション, デフォルトは noaction): 外部キー制約がデータベースレベルでカスケード削除が可能かどうかを指" +"定します。" + +#. Tag: para +#: basic_mapping.xml:2298 +#, no-c-format +msgid "" +"property-ref (optional): Specifies that the foreign key " +"refers to columns that are not the primary key of the orginal table. " +"(Provided for legacy data.)" +msgstr "" +"property-ref (オプション): オリジナルテーブルの主キーでは" +"ないカラムを参照する外部キーを指定します (レガシーデータに対して提供されま" +"す)。" + +#. Tag: para +#: basic_mapping.xml:2305 +#, no-c-format +msgid "" +"not-null (optional): Specifies that the foreign key " +"columns are not nullable (this is implied whenever the foreign key is also " +"part of the primary key)." +msgstr "" +"not-null (オプション): 外部キーカラムがnull値を許容しない" +"ことを指定します (このことは外部キーが主キーの一部であることを暗黙的に示しま" +"す)。" + +#. Tag: para +#: basic_mapping.xml:2312 +#, no-c-format +msgid "" +"update (optional): Specifies that the foreign key should " +"never be updated (this is implied whenever the foreign key is also part of " +"the primary key)." +msgstr "" +"update (オプション): 外部キーを決して更新してはならないこ" +"とを指定します (このことは外部キーが主キーの一部であることを暗黙的に示しま" +"す)。" + +#. Tag: para +#: basic_mapping.xml:2319 +#, no-c-format +msgid "" +"unique (optional): Specifies that the foreign key should " +"have a unique constraint (this is implied whenever the foreign key is also " +"the primary key)." +msgstr "" +"unique (オプション): 外部キーがユニーク制約を持つべきであ" +"ることを指定します (このことは外部キーが主キーの一部であることを暗黙的に示し" +"ます)。" + +#. Tag: para +#: basic_mapping.xml:2327 +#, no-c-format +msgid "" +"We recommend that for systems where delete performance is important, all " +"keys should be defined on-delete=\"cascade\", and " +"Hibernate will use a database-level ON CASCADE DELETE " +"constraint, instead of many individual DELETE statements. " +"Be aware that this feature bypasses Hibernate's usual optimistic locking " +"strategy for versioned data." +msgstr "" +"削除のパフォーマンスが重要であるシステムには、 すべてのキーを on-" +"delete=\"cascade\" と定義することを推奨します。 そうすることで" +"Hibernateは、DELETE 文を毎回発行する代わりに、 データベー" +"スレベルの ON CASCADE DELETE 制約を使用します。 この特徴は" +"バージョン付けられたデータに対するHibernateの通常の楽観的ロック戦略を 無視す" +"るということに注意してください。" + +#. Tag: para +#: basic_mapping.xml:2335 +#, no-c-format +msgid "" +"The not-null and update attributes are " +"useful when mapping a unidirectional one to many association. If you map a " +"unidirectional one to many to a non-nullable foreign key, you " +"must declare the key column using <key not-" +"null=\"true\">." +msgstr "" +"not-nullupdate 属性は、単方向一対多" +"関連の時には有用です。 単方向一対多関連をnullを許容しない外部キーにマッピング" +"するときは、 <key not-null=\"true\"> を使ってキーカ" +"ラムを宣言 しなくてはなりません 。" + +#. Tag: title +#: basic_mapping.xml:2345 +#, no-c-format +msgid "column and formula elements" msgstr "column と formula 要素" -#: index.docbook:2179 -msgid "join" -msgstr "" - "]]>" - -#: index.docbook:2181 -msgid "Using the <join> element, it is possible to map properties of one class to several tables, when there's a 1-to-1 relationship between the tables." -msgstr "SQL expression]]>" - -#: index.docbook:2195 +#. Tag: para +#: basic_mapping.xml:2346 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - "\n" - " \n" - " ...\n" - "]]>" -msgstr "同じプロパティや関連のマッピングの中で、 columnformula 属性を組み合わせることができます。 例えば、特殊な結合条件などです。" - -#: index.docbook:2199 -msgid "table: The name of the joined table." +"Any mapping element which accepts a column attribute will " +"alternatively accept a <column> subelement. " +"Likewise, <formula> is an alternative to the " +"formula attribute." msgstr "" - " \n" - " \n" - " 'MAILING' \n" - "]]>" +"column 属性を記述できる任意のマッピング要素はまた、 " +"<column> サブ要素も記述できます。 同様に " +"<formula>formula 属性の代替手" +"段です。" -#: index.docbook:2216 -msgid "fetch (optional - defaults to join): If set to join, the default, Hibernate will use an inner join to retrieve a <join> defined by a class or its superclasses and an outer join for a <join> defined by a subclass. If set to select then Hibernate will use a sequential select for a <join> defined on a subclass, which will be issued only if a row turns out to represent an instance of the subclass. Inner joins will still be used to retrieve a <join> defined by the class and its superclasses." -msgstr "]]>" - -#: index.docbook:2229 -msgid "inverse (optional - defaults to false): If enabled, Hibernate will not try to insert or update the properties defined by this join." +#. Tag: programlisting +#: basic_mapping.xml:2352 +#, no-c-format +msgid "" +"]]>" msgstr "" - "]]>" -#: index.docbook:2236 -msgid "optional (optional - defaults to false): If enabled, Hibernate will insert a row only if the properties defined by this join are non-null and will always use an outer join to retrieve the properties." +#. Tag: programlisting +#: basic_mapping.xml:2354 +#, no-c-format +msgid "SQL expression]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:2356 +#, no-c-format +msgid "" +"column and formula attributes may even " +"be combined within the same property or association mapping to express, for " +"example, exotic join conditions." +msgstr "" +"同じプロパティや関連のマッピングの中で、 column と " +"formula 属性を組み合わせることができます。 例えば、特殊な" +"結合条件などです。" + +#. Tag: programlisting +#: basic_mapping.xml:2362 +#, no-c-format +msgid "" +"\n" +" \n" +" 'MAILING'\n" +"]]>" +msgstr "" + +#. Tag: title +#: basic_mapping.xml:2367 +#, no-c-format +msgid "import" +msgstr "import" + +#. Tag: para +#: basic_mapping.xml:2369 +#, no-c-format +msgid "" +"Suppose your application has two persistent classes with the same name, and " +"you don't want to specify the fully qualified (package) name in Hibernate " +"queries. Classes may be \"imported\" explicitly, rather than relying upon " +"auto-import=\"true\". You may even import classes and " +"interfaces that are not explicitly mapped." +msgstr "" +"アプリケーションに同じ名前の2つの永続クラスがあり、 Hibernateクエリで完全修飾" +"された(パッケージの)名前を指定したくないと仮定します。 そのような場合は " +"auto-import=\"true\" に頼らず、 クラスが「インポート」され" +"たものであると明示できます。 明示的にマッピングされていないクラスやインター" +"フェイスでさえもインポートできます。" + +#. Tag: programlisting +#: basic_mapping.xml:2376 +#, no-c-format +msgid "]]>" +msgstr "" + +#. Tag: programlisting +#: basic_mapping.xml:2383 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:2386 +#, no-c-format +msgid "" +"class: The fully qualified class name of of any Java " +"class." msgstr "class:Javaクラスの完全修飾されたクラス名。" -#: index.docbook:2245 -msgid "For example, the address information for a person can be mapped to a separate table (while preserving value type semantics for all properties):" -msgstr "rename(オプション - デフォルトは修飾されていないクラス名): クエリ言語で使われる名前。" - -#: index.docbook:2250 +#. Tag: para +#: basic_mapping.xml:2391 +#, no-c-format msgid "" - "\n" - "\n" - " ...\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...]]>" -msgstr "any" - -#: index.docbook:2252 -msgid "This feature is often only useful for legacy data models, we recommend fewer tables than classes and a fine-grained domain model. However, it is useful for switching between inheritance mapping strategies in a single hierarchy, as explained later." -msgstr "プロパティマッピングにはさらにもう1つの型があります。 <any> マッピング要素は、 複数のテーブルからクラスへのポリモーフィックな関連を定義します。 この型のマッピングには必ず複数のカラムが必要です。1番目のカラムは関連エンティティの型を保持します。 残りのカラムは識別子を保持します。この種類の関連には外部キー制約を指定することはできません。 そのためこれは最も使われることのない(ポリモーフィックな)関連のマッピング方法です。 非常に特別な場合(例えば、検査ログやユーザセッションデータなど)に限って、これを使うべきです。" - -#: index.docbook:2262 -msgid "key" -msgstr "meta-type により、 アプリケーションはカスタム型を指定できます。このカスタム型は データベースカラムの値を、id-type で指定した型の 識別子プロパティを持った永続クラスへマッピングします。 meta-typeの値からクラス名へのマッピングを指定しなければなりません。" - -#: index.docbook:2264 -msgid "We've seen the <key> element crop up a few times now. It appears anywhere the parent mapping element defines a join to a new table, and defines the foreign key in the joined table, that references the primary key of the original table." +"rename (optional - defaults to the unqualified class " +"name): A name that may be used in the query language." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"rename(オプション - デフォルトは修飾されていないクラス" +"名): クエリ言語で使われる名前。" -#: index.docbook:2280 +#. Tag: title +#: basic_mapping.xml:2402 +#, no-c-format +msgid "any" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:2404 +#, no-c-format msgid "" - "]]>" +"There is one further type of property mapping. The <any> mapping element defines a polymorphic association to classes from " +"multiple tables. This type of mapping always requires more than one column. " +"The first column holds the type of the associated entity. The remaining " +"columns hold the identifier. It is impossible to specify a foreign key " +"constraint for this kind of association, so this is most certainly not meant " +"as the usual way of mapping (polymorphic) associations. You should use this " +"only in very special cases (eg. audit logs, user session data, etc)." msgstr "" - " \n" - " \n" - " \n" - " ..... \n" - " \n" - " \n" - " ..... \n" - "]]>" +"プロパティマッピングにはさらにもう1つの型があります。 <any> マッピング要素は、 複数のテーブルからクラスへのポリモーフィックな関" +"連を定義します。 この型のマッピングには必ず複数のカラムが必要です。1番目のカ" +"ラムは関連エンティティの型を保持します。 残りのカラムは識別子を保持します。こ" +"の種類の関連には外部キー制約を指定することはできません。 そのためこれは最も使" +"われることのない(ポリモーフィックな)関連のマッピング方法です。 非常に特別な" +"場合(例えば、検査ログやユーザセッションデータなど)に限って、これを使うべきで" +"す。" -#: index.docbook:2291 -msgid "on-delete (optional, defaults to noaction): Specifies whether the foreign key constraint has database-level cascade delete enabled." +#. Tag: para +#: basic_mapping.xml:2414 +#, no-c-format +msgid "" +"The meta-type attribute lets the application specify a " +"custom type that maps database column values to persistent classes which " +"have identifier properties of the type specified by id-type. You must specify the mapping from values of the meta-type to class " +"names." +msgstr "" +"meta-type により、 アプリケーションはカスタム型を指定でき" +"ます。このカスタム型は データベースカラムの値を、id-type " +"で指定した型の 識別子プロパティを持った永続クラスへマッピングします。 meta-" +"typeの値からクラス名へのマッピングを指定しなければなりません。" + +#. Tag: programlisting +#: basic_mapping.xml:2421 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: programlisting +#: basic_mapping.xml:2432 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" .....\n" +" \n" +" \n" +" .....\n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:2435 +#, no-c-format +msgid "name: the property name." +msgstr "name:プロパティ名。" + +#. Tag: para +#: basic_mapping.xml:2440 +#, no-c-format +msgid "id-type: the identifier type." msgstr "id-type:識別子の型。" -#: index.docbook:2298 -msgid "property-ref (optional): Specifies that the foreign key refers to columns that are not the primary key of the orginal table. (Provided for legacy data.)" -msgstr "meta-type(オプション - デフォルトは string ): ディスクリミネータマッピングで許された型" +#. Tag: para +#: basic_mapping.xml:2445 +#, no-c-format +msgid "" +"meta-type (optional - defaults to string): Any type that is allowed for a discriminator mapping." +msgstr "" +"meta-type(オプション - デフォルトは string ): ディスクリミネータマッピングで許された型" -#: index.docbook:2305 -msgid "not-null (optional): Specifies that the foreign key columns are not nullable (this is implied whenever the foreign key is also part of the primary key)." -msgstr "cascade(オプション - デフォルトは none ): カスケードのスタイル。" +#. Tag: para +#: basic_mapping.xml:2451 +#, no-c-format +msgid "" +"cascade (optional- defaults to none): " +"the cascade style." +msgstr "" +"cascade(オプション - デフォルトは none ): カスケードのスタイル。" -#: index.docbook:2312 -msgid "update (optional): Specifies that the foreign key should never be updated (this is implied whenever the foreign key is also part of the primary key)." -msgstr "access(オプション - デフォルトは property ): プロパティの値へのアクセスにHibernateが使う戦略。" +#. Tag: para +#: basic_mapping.xml:2463 +#, no-c-format +msgid "" +"optimistic-lock (optional - defaults to true): Specifies that updates to this property do or do not require " +"acquisition of the optimistic lock. In other words, define if a version " +"increment should occur if this property is dirty." +msgstr "" +"optimistic-lock (オプション - デフォルトは true ): このプロパティの更新に楽観ロックの取得を要求するかどうかを指定し" +"ます。 言い換えれば、このプロパティがダーティであるときにバージョンを増やすべ" +"きかを定義します。" -#: index.docbook:2319 -msgid "unique (optional): Specifies that the foreign key should have a unique constraint (this is implied whenever the foreign key is also the primary key)." -msgstr "optimistic-lock (オプション - デフォルトは true ): このプロパティの更新に楽観ロックの取得を要求するかどうかを指定します。 言い換えれば、このプロパティがダーティであるときにバージョンを増やすべきかを定義します。" - -#: index.docbook:2327 -msgid "We recommend that for systems where delete performance is important, all keys should be defined on-delete=\"cascade\", and Hibernate will use a database-level ON CASCADE DELETE constraint, instead of many individual DELETE statements. Be aware that this feature bypasses Hibernate's usual optimistic locking strategy for versioned data." +#. Tag: title +#: basic_mapping.xml:2478 +#, no-c-format +msgid "Hibernate Types" msgstr "Hibernateの型" -#: index.docbook:2335 -msgid "The not-null and update attributes are useful when mapping a unidirectional one to many association. If you map a unidirectional one to many to a non-nullable foreign key, you must declare the key column using <key not-null=\"true\">." +#. Tag: title +#: basic_mapping.xml:2481 +#, no-c-format +msgid "Entities and values" msgstr "エンティティと値" -#: index.docbook:2345 -msgid "column and formula elements" -msgstr "永続サービスに関わる様々なJava言語レベルのオブジェクトの振る舞いを理解するためには、 オブジェクトを2つのグループに分ける必要があります:" - -#: index.docbook:2346 -msgid "Any mapping element which accepts a column attribute will alternatively accept a <column> subelement. Likewise, <formula> is an alternative to the formula attribute." -msgstr " エンティティ はエンティティへの参照を保持する、 他のすべてのオブジェクトから独立して存在します。 参照されないオブジェクトがガベージコレクトされてしまう性質を持つ通常のJavaモデルと、 これを比べてみてください。 (親エンティティから子へ、セーブと削除が カスケード されうることを除いて) エンティティは明示的にセーブまたは削除されなければなりません。 これは到達可能性によるオブジェクト永続化のODMGモデルとは異なっています。 大規模なシステムでアプリケーションオブジェクトが普通どのように使われるかにより密接に対応します。 エンティティは循環と参照の共有をサポートします。 またそれらはバージョン付けすることもできます。" - -#: index.docbook:2352 +#. Tag: para +#: basic_mapping.xml:2483 +#, no-c-format msgid "" - "]]>" -msgstr "エンティティの永続状態は他のエンティティや 型の インスタンスへの参照から構成されます。 値はプリミティブ、コレクション(コレクションの内部ではなく)、 コンポーネント、不変オブジェクトです。 エンティティとは違い、値は(特にコレクションとコンポーネントにおいて)、 到達可能性による永続化や削除が 行われます 。 値オブジェクト(とプリミティブ)は、包含するエンティティと一緒に永続化や削除が行われるので、 それらを独立にバージョン付けすることはできません。 値には独立したアイデンティティがないので、 複数のエンティティやコレクションがこれを共有することはできません。" +"To understand the behaviour of various Java language-level objects with " +"respect to the persistence service, we need to classify them into two groups:" +msgstr "" +"永続サービスに関わる様々なJava言語レベルのオブジェクトの振る舞いを理解するた" +"めには、 オブジェクトを2つのグループに分ける必要があります:" -#: index.docbook:2354 -msgid "SQL expression]]>" -msgstr "これまで「永続クラス」という言葉をエンティティの意味で使ってきました。 これからもそうしていきます。 厳密に言うと、永続状態を持つユーザ定義のクラスのすべてが エンティティというわけではありません。 コンポーネント は値のセマンティクスを持つユーザ定義クラスです。 java.lang.String 型のプロパティもまた値のセマンティクスを持ちます。 定義するなら、JDKで提供されているすべてのJavaの型(クラス)が値のセマンティクスを持つといえます。 一方ユーザ定義型は、エンティティや値型のセマンティクスとともにマッピングできます。 この決定はアプリケーション開発者次第です。 そのクラスの1つのインスタンスへの共有参照は、 ドメインモデル内のエンティティクラスに対する良いヒントになります。 一方合成集約や集約は、通常値型へ変換されます。" +#. Tag: para +#: basic_mapping.xml:2488 +#, no-c-format +msgid "" +"An entity exists independently of any other objects " +"holding references to the entity. Contrast this with the usual Java model " +"where an unreferenced object is garbage collected. Entities must be " +"explicitly saved and deleted (except that saves and deletions may be " +"cascaded from a parent entity to its children). This is " +"different from the ODMG model of object persistence by reachablity - and " +"corresponds more closely to how application objects are usually used in " +"large systems. Entities support circular and shared references. They may " +"also be versioned." +msgstr "" +" エンティティ はエンティティへの参照を保持する、 他のす" +"べてのオブジェクトから独立して存在します。 参照されないオブジェクトがガベージ" +"コレクトされてしまう性質を持つ通常のJavaモデルと、 これを比べてみてくださ" +"い。 (親エンティティから子へ、セーブと削除が カスケード されうることを除いて) エンティティは明示的にセーブまたは削除されな" +"ければなりません。 これは到達可能性によるオブジェクト永続化のODMGモデルとは異" +"なっています。 大規模なシステムでアプリケーションオブジェクトが普通どのように" +"使われるかにより密接に対応します。 エンティティは循環と参照の共有をサポートし" +"ます。 またそれらはバージョン付けすることもできます。" -#: index.docbook:2356 -msgid "column and formula attributes may even be combined within the same property or association mapping to express, for example, exotic join conditions." +#. Tag: para +#: basic_mapping.xml:2499 +#, no-c-format +msgid "" +"An entity's persistent state consists of references to other entities and " +"instances of value types. Values are primitives, " +"collections (not what's inside a collection), components and certain " +"immutable objects. Unlike entities, values (in particular collections and " +"components) are persisted and deleted by reachability. " +"Since value objects (and primitives) are persisted and deleted along with " +"their containing entity they may not be independently versioned. Values have " +"no independent identity, so they cannot be shared by two entities or " +"collections." +msgstr "" +"エンティティの永続状態は他のエンティティや 型の イン" +"スタンスへの参照から構成されます。 値はプリミティブ、コレクション(コレクショ" +"ンの内部ではなく)、 コンポーネント、不変オブジェクトです。 エンティティとは違" +"い、値は(特にコレクションとコンポーネントにおいて)、 到達可能性による永続化" +"や削除が 行われます 。 値オブジェクト(とプリミティブ)" +"は、包含するエンティティと一緒に永続化や削除が行われるので、 それらを独立に" +"バージョン付けすることはできません。 値には独立したアイデンティティがないの" +"で、 複数のエンティティやコレクションがこれを共有することはできません。" + +#. Tag: para +#: basic_mapping.xml:2510 +#, no-c-format +msgid "" +"Up until now, we've been using the term \"persistent class\" to refer to " +"entities. We will continue to do that. Strictly speaking, however, not all " +"user-defined classes with persistent state are entities. A " +"component is a user defined class with value semantics. " +"A Java property of type java.lang.String also has value " +"semantics. Given this definition, we can say that all types (classes) " +"provided by the JDK have value type semantics in Java, while user-defined " +"types may be mapped with entity or value type semantics. This decision is up " +"to the application developer. A good hint for an entity class in a domain " +"model are shared references to a single instance of that class, while " +"composition or aggregation usually translates to a value type." +msgstr "" +"これまで「永続クラス」という言葉をエンティティの意味で使ってきました。 これか" +"らもそうしていきます。 厳密に言うと、永続状態を持つユーザ定義のクラスのすべて" +"が エンティティというわけではありません。 コンポーネント は値のセマンティクスを持つユーザ定義クラスです。 java." +"lang.String 型のプロパティもまた値のセマンティクスを持ちます。 定義" +"するなら、JDKで提供されているすべてのJavaの型(クラス)が値のセマンティクスを持" +"つといえます。 一方ユーザ定義型は、エンティティや値型のセマンティクスとともに" +"マッピングできます。 この決定はアプリケーション開発者次第です。 そのクラスの" +"1つのインスタンスへの共有参照は、 ドメインモデル内のエンティティクラスに対す" +"る良いヒントになります。 一方合成集約や集約は、通常値型へ変換されます。" + +#. Tag: para +#: basic_mapping.xml:2524 +#, no-c-format +msgid "We'll revisit both concepts throughout the documentation." msgstr "本ドキュメントを通して、何度もこの概念を取り上げます。" -#: index.docbook:2362 +#. Tag: para +#: basic_mapping.xml:2528 +#, no-c-format msgid "" - "\n" - " \n" - " 'MAILING'\n" - "]]>" -msgstr "Java型のシステム(もしくは開発者が定義したエンティティと値型)を SQL/データベース型のシステムにマッピングすることは難しいです。 Hibernateは2つのシステムの架け橋を提供します。 エンティティに対しては <class><subclass> などを使用します。 値型に対しては <property><component> などを、通常 type とともに使います。 この属性の値はHibernateの マッピング型 の名前です。 Hibernateは(標準JDKの値型に対して)多くの自由なマッピングを提供します。 後で見るように、自身のマッピング型を記述し、同様にカスタムの変換戦略を実装することができます。" +"The challenge is to map the Java type system (and the developers' definition " +"of entities and value types) to the SQL/database type system. The bridge " +"between both systems is provided by Hibernate: for entities we use " +"<class>, <subclass> and so " +"on. For value types we use <property>, <" +"component>, etc, usually with a type " +"attribute. The value of this attribute is the name of a Hibernate " +"mapping type. Hibernate provides many mappings (for " +"standard JDK value types) out of the box. You can write your own mapping " +"types and implement your custom conversion strategies as well, as you'll see " +"later." +msgstr "" +"Java型のシステム(もしくは開発者が定義したエンティティと値型)を SQL/データベー" +"ス型のシステムにマッピングすることは難しいです。 Hibernateは2つのシステムの" +"架け橋を提供します。 エンティティに対しては <class> " +"や <subclass> などを使用します。 値型に対しては " +"<property><component> " +"などを、通常 type とともに使います。 この属性の値は" +"Hibernateの マッピング型 の名前です。 Hibernateは(標準" +"JDKの値型に対して)多くの自由なマッピングを提供します。 後で見るように、自身の" +"マッピング型を記述し、同様にカスタムの変換戦略を実装することができます。" -#: index.docbook:2367 -msgid "import" -msgstr "コレクションを除く組み込みのHibernateの型はすべて、nullセマンティクスをサポートします。" +#. Tag: para +#: basic_mapping.xml:2541 +#, no-c-format +msgid "All built-in Hibernate types except collections support null semantics." +msgstr "" +"コレクションを除く組み込みのHibernateの型はすべて、nullセマンティクスをサポー" +"トします。" -#: index.docbook:2369 -msgid "Suppose your application has two persistent classes with the same name, and you don't want to specify the fully qualified (package) name in Hibernate queries. Classes may be \"imported\" explicitly, rather than relying upon auto-import=\"true\". You may even import classes and interfaces that are not explicitly mapped." +#. Tag: title +#: basic_mapping.xml:2548 +#, no-c-format +msgid "Basic value types" msgstr "基本的な型" -#: index.docbook:2376 -msgid "]]>" -msgstr "組み込みの 基本的なマッピング型 は大まかに以下のように分けられます。" - -#: index.docbook:2383 +#. Tag: para +#: basic_mapping.xml:2550 +#, fuzzy, no-c-format msgid "" - "]]>" -msgstr "integer, long, short, float, double, character, byte, boolean, yes_no, true_false" +"The built-in basic mapping types may be roughly " +"categorized into" +msgstr "" +"組み込みの 基本的なマッピング型 は大まかに以下のように分" +"けられます。 " -#: index.docbook:2386 -msgid "class: The fully qualified class name of of any Java class." -msgstr "Javaのプリミティブやラッパークラスから適切な(ベンダー固有の) SQLカラム型への型マッピング。 boolean, yes_notrue_false は、 すべてJavaの boolean または java.lang.Boolean の代替エンコードです。" +#. Tag: literal +#: basic_mapping.xml:2555 +#, no-c-format +msgid "" +"integer, long, short, float, double, character, byte, boolean, yes_no, " +"true_false" +msgstr "" +"integer, long, short, float, double, character, byte, boolean, yes_no, " +"true_false" -#: index.docbook:2391 -msgid "rename (optional - defaults to the unqualified class name): A name that may be used in the query language." +#. Tag: para +#: basic_mapping.xml:2558 +#, no-c-format +msgid "" +"Type mappings from Java primitives or wrapper classes to appropriate (vendor-" +"specific) SQL column types. boolean, yes_no and " +"true_false are all alternative encodings for a Java " +"boolean or java.lang.Boolean." +msgstr "" +"Javaのプリミティブやラッパークラスから適切な(ベンダー固有の) SQLカラム型へ" +"の型マッピング。 boolean, yes_notrue_false は、 すべてJavaの boolean または java." +"lang.Boolean の代替エンコードです。" + +#. Tag: literal +#: basic_mapping.xml:2567 +#, no-c-format +msgid "string" msgstr "string" -#: index.docbook:2402 -msgid "any" -msgstr "java.lang.String から VARCHAR (またはOracleの VARCHAR2 )への型マッピング。" +#. Tag: para +#: basic_mapping.xml:2569 +#, no-c-format +msgid "" +"A type mapping from java.lang.String to VARCHAR (or Oracle VARCHAR2)." +msgstr "" +"java.lang.String から VARCHAR (または" +"Oracleの VARCHAR2 )への型マッピング。" -#: index.docbook:2404 -msgid "There is one further type of property mapping. The <any> mapping element defines a polymorphic association to classes from multiple tables. This type of mapping always requires more than one column. The first column holds the type of the associated entity. The remaining columns hold the identifier. It is impossible to specify a foreign key constraint for this kind of association, so this is most certainly not meant as the usual way of mapping (polymorphic) associations. You should use this only in very special cases (eg. audit logs, user session data, etc)." +#. Tag: literal +#: basic_mapping.xml:2576 +#, no-c-format +msgid "date, time, timestamp" msgstr "date, time, timestamp" -#: index.docbook:2414 -msgid "The meta-type attribute lets the application specify a custom type that maps database column values to persistent classes which have identifier properties of the type specified by id-type. You must specify the mapping from values of the meta-type to class names." -msgstr "java.util.Date とそのサブクラスからSQL型の DATE, TIME , TIMESTAMP (またはそれらと等価なもの) への型マッピング。" - -#: index.docbook:2421 +#. Tag: para +#: basic_mapping.xml:2578 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"Type mappings from java.util.Date and its subclasses to " +"SQL types DATE, TIME and " +"TIMESTAMP (or equivalent)." +msgstr "" +"java.util.Date とそのサブクラスからSQL型の DATE, TIME , TIMESTAMP (またはそれ" +"らと等価なもの) への型マッピング。" + +#. Tag: literal +#: basic_mapping.xml:2586 +#, no-c-format +msgid "calendar, calendar_date" msgstr "calendar, calendar_date" -#: index.docbook:2432 +#. Tag: para +#: basic_mapping.xml:2588 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " .....\n" - " \n" - " \n" - " .....\n" - "]]>" -msgstr "java.util.Calendar からSQL型 の「 TIMESTAMP , DATE (またはそれらと等価なもの)への型マッピング。" +"Type mappings from java.util.Calendar to SQL types " +"TIMESTAMP and DATE (or equivalent)." +msgstr "" +"java.util.Calendar からSQL型 の「 TIMESTAMP , DATE (またはそれらと等価なもの)への型マッピン" +"グ。" -#: index.docbook:2435 -msgid "name: the property name." +#. Tag: literal +#: basic_mapping.xml:2596 +#, no-c-format +msgid "big_decimal, big_integer" msgstr "big_decimal, big_integer" -#: index.docbook:2440 -msgid "id-type: the identifier type." -msgstr "java.math.BigDecimaljava.math.BigInteger から NUMERIC(またはOracleの NUMBER )への型マッピング。" +#. Tag: para +#: basic_mapping.xml:2598 +#, no-c-format +msgid "" +"Type mappings from java.math.BigDecimal and java." +"math.BigInteger to NUMERIC (or Oracle " +"NUMBER)." +msgstr "" +"java.math.BigDecimaljava.math.BigInteger から NUMERIC(またはOracleの NUMBER )への型マッピング。" -#: index.docbook:2445 -msgid "meta-type (optional - defaults to string): Any type that is allowed for a discriminator mapping." +#. Tag: literal +#: basic_mapping.xml:2606 +#, no-c-format +msgid "locale, timezone, currency" msgstr "locale, timezone, currency" -#: index.docbook:2451 -msgid "cascade (optional- defaults to none): the cascade style." -msgstr "java.util.Locale , java.util.TimeZone , java.util.Currency から VARCHAR (またはOracleの VARCHAR2 )への型マッピング。 LocaleCurrency のインスタンスは、 それらのISOコードにマッピングされます。 TimeZone のインスタンスは、 それらの ID にマッピングされます。" +#. Tag: para +#: basic_mapping.xml:2608 +#, no-c-format +msgid "" +"Type mappings from java.util.Locale, java.util." +"TimeZone and java.util.Currency to " +"VARCHAR (or Oracle VARCHAR2). " +"Instances of Locale and Currency are " +"mapped to their ISO codes. Instances of TimeZone are " +"mapped to their ID." +msgstr "" +"java.util.Locale , java.util.TimeZone , java.util.Currency から VARCHAR (またはOracleの VARCHAR2 )への型マッピング。 " +"LocaleCurrency のインスタンスは、 " +"それらのISOコードにマッピングされます。 TimeZone のインス" +"タンスは、 それらの ID にマッピングされます。" -#: index.docbook:2463 -msgid "optimistic-lock (optional - defaults to true): Specifies that updates to this property do or do not require acquisition of the optimistic lock. In other words, define if a version increment should occur if this property is dirty." -msgstr "java.lang.Class から VARCHAR (またはOracleの VARCHAR2 )への型マッピング。 Class はその完全修飾された名前にマッピングされます。" +#. Tag: literal +#: basic_mapping.xml:2620 +#, fuzzy, no-c-format +msgid "class" +msgstr "all すべてのカラムをチェックします。" -#: index.docbook:2478 -msgid "Hibernate Types" +#. Tag: para +#: basic_mapping.xml:2622 +#, no-c-format +msgid "" +"A type mapping from java.lang.Class to VARCHAR (or Oracle VARCHAR2). A Class " +"is mapped to its fully qualified name." +msgstr "" +"java.lang.Class から VARCHAR (または" +"Oracleの VARCHAR2 )への型マッピング。 Class はその完全修飾された名前にマッピングされます。" + +#. Tag: literal +#: basic_mapping.xml:2630 +#, no-c-format +msgid "binary" msgstr "binary" -#: index.docbook:2481 -msgid "Entities and values" +#. Tag: para +#: basic_mapping.xml:2632 +#, no-c-format +msgid "Maps byte arrays to an appropriate SQL binary type." msgstr "バイト配列は、適切なSQLのバイナリ型にマッピングされます。" -#: index.docbook:2483 -msgid "To understand the behaviour of various Java language-level objects with respect to the persistence service, we need to classify them into two groups:" +#. Tag: literal +#: basic_mapping.xml:2638 +#, no-c-format +msgid "text" msgstr "text" -#: index.docbook:2488 -msgid "An entity exists independently of any other objects holding references to the entity. Contrast this with the usual Java model where an unreferenced object is garbage collected. Entities must be explicitly saved and deleted (except that saves and deletions may be cascaded from a parent entity to its children). This is different from the ODMG model of object persistence by reachablity - and corresponds more closely to how application objects are usually used in large systems. Entities support circular and shared references. They may also be versioned." -msgstr "長いJava文字列は、SQLの CLOB または TEXT 型にマッピングされます。" +#. Tag: para +#: basic_mapping.xml:2640 +#, no-c-format +msgid "" +"Maps long Java strings to a SQL CLOB or TEXT type." +msgstr "" +"長いJava文字列は、SQLの CLOB または TEXT 型にマッピングされます。" -#: index.docbook:2499 -msgid "An entity's persistent state consists of references to other entities and instances of value types. Values are primitives, collections (not what's inside a collection), components and certain immutable objects. Unlike entities, values (in particular collections and components) are persisted and deleted by reachability. Since value objects (and primitives) are persisted and deleted along with their containing entity they may not be independently versioned. Values have no independent identity, so they cannot be shared by two entities or collections." +#. Tag: literal +#: basic_mapping.xml:2647 +#, no-c-format +msgid "serializable" msgstr "serializable" -#: index.docbook:2510 -msgid "Up until now, we've been using the term \"persistent class\" to refer to entities. We will continue to do that. Strictly speaking, however, not all user-defined classes with persistent state are entities. A component is a user defined class with value semantics. A Java property of type java.lang.String also has value semantics. Given this definition, we can say that all types (classes) provided by the JDK have value type semantics in Java, while user-defined types may be mapped with entity or value type semantics. This decision is up to the application developer. A good hint for an entity class in a domain model are shared references to a single instance of that class, while composition or aggregation usually translates to a value type." -msgstr "シリアライズ可能なJava型は、適切なSQLのバイナリ型にマッピングされます。 デフォルトで基本型ではないシリアライズ可能なJavaクラスや インターフェイスの名前を指定することで、 Hibernateの型を serializable とすることもできます。" +#. Tag: para +#: basic_mapping.xml:2649 +#, no-c-format +msgid "" +"Maps serializable Java types to an appropriate SQL binary type. You may also " +"indicate the Hibernate type serializable with the name of " +"a serializable Java class or interface that does not default to a basic type." +msgstr "" +"シリアライズ可能なJava型は、適切なSQLのバイナリ型にマッピングされます。 デ" +"フォルトで基本型ではないシリアライズ可能なJavaクラスや インターフェイスの名前" +"を指定することで、 Hibernateの型を serializable とすること" +"もできます。" -#: index.docbook:2524 -msgid "We'll revisit both concepts throughout the documentation." +#. Tag: literal +#: basic_mapping.xml:2658 +#, no-c-format +msgid "clob, blob" msgstr "clob, blob" -#: index.docbook:2528 -msgid "The challenge is to map the Java type system (and the developers' definition of entities and value types) to the SQL/database type system. The bridge between both systems is provided by Hibernate: for entities we use <class>, <subclass> and so on. For value types we use <property>, <component>, etc, usually with a type attribute. The value of this attribute is the name of a Hibernate mapping type. Hibernate provides many mappings (for standard JDK value types) out of the box. You can write your own mapping types and implement your custom conversion strategies as well, as you'll see later." -msgstr "JDBCクラス java.sql.Clobjava.sql.Blob に対する型マッピング。 blobやclobオブジェクトはトランザクションの外では再利用できないため、 アプリケーションによっては不便かもしれません。 (さらにはドライバサポートが一貫していません。)" +#. Tag: para +#: basic_mapping.xml:2660 +#, no-c-format +msgid "" +"Type mappings for the JDBC classes java.sql.Clob and " +"java.sql.Blob. These types may be inconvenient for some " +"applications, since the blob or clob object may not be reused outside of a " +"transaction. (Furthermore, driver support is patchy and inconsistent.)" +msgstr "" +"JDBCクラス java.sql.Clobjava.sql.Blob に対する型マッピング。 blobやclobオブジェクトはトランザクションの外" +"では再利用できないため、 アプリケーションによっては不便かもしれません。 (さ" +"らにはドライバサポートが一貫していません。)" -#: index.docbook:2541 -msgid "All built-in Hibernate types except collections support null semantics." -msgstr "imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, imm_serializable, imm_binary" +#. Tag: literal +#: basic_mapping.xml:2670 +#, no-c-format +msgid "" +"imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, " +"imm_serializable, imm_binary" +msgstr "" +"imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, " +"imm_serializable, imm_binary" -#: index.docbook:2548 -msgid "Basic value types" -msgstr "ほとんどの場合に可変であるJavaの型に対する型マッピング。 Hibernateは不変なJavaの型に対しては最適化を行い、 アプリケーションはそれを不変オブジェクトとして扱います。 例えば imm_timestamp としてマップしたインスタンスに対して、 Date.setTime() を呼び出してはなりません。 プロパティの値を変更しその変更を永続化するためには、 アプリケーションはプロパティに対して新しい(同一でない)オブジェクトを割り当てなければなりません。" +#. Tag: para +#: basic_mapping.xml:2674 +#, no-c-format +msgid "" +"Type mappings for what are usually considered mutable Java types, where " +"Hibernate makes certain optimizations appropriate only for immutable Java " +"types, and the application treats the object as immutable. For example, you " +"should not call Date.setTime() for an instance mapped as " +"imm_timestamp. To change the value of the property, and " +"have that change made persistent, the application must assign a new " +"(nonidentical) object to the property." +msgstr "" +"ほとんどの場合に可変であるJavaの型に対する型マッピング。 Hibernateは不変な" +"Javaの型に対しては最適化を行い、 アプリケーションはそれを不変オブジェクトとし" +"て扱います。 例えば imm_timestamp としてマップしたインスタ" +"ンスに対して、 Date.setTime() を呼び出してはなりません。 " +"プロパティの値を変更しその変更を永続化するためには、 アプリケーションはプロパ" +"ティに対して新しい(同一でない)オブジェクトを割り当てなければなりません。" -#: index.docbook:2550 -msgid "The built-in basic mapping types may be roughly categorized into" -msgstr "エンティティとコレクションのユニークな識別子は、binary , blob , clob を除く、どんな基本型でも構いません。 (複合識別子でも構いません。以下を見てください。)" +#. Tag: para +#: basic_mapping.xml:2689 +#, no-c-format +msgid "" +"Unique identifiers of entities and collections may be of any basic type " +"except binary, blob and clob. (Composite identifiers are also allowed, see below.)" +msgstr "" +"エンティティとコレクションのユニークな識別子は、binary , " +"blob , clob を除く、どんな基本型でも構" +"いません。 (複合識別子でも構いません。以下を見てください。)" -#: index.docbook:2555 -msgid "integer, long, short, float, double, character, byte, boolean, yes_no, true_false" -msgstr "基本的な値型には、org.hibernate.Hibernate で定義された Type 定数がそれぞれあります。 例えば、Hibernate.STRINGstring 型を表現しています。" +#. Tag: para +#: basic_mapping.xml:2695 +#, no-c-format +msgid "" +"The basic value types have corresponding Type constants " +"defined on org.hibernate.Hibernate. For example, " +"Hibernate.STRING represents the string " +"type." +msgstr "" +"基本的な値型には、org.hibernate.Hibernate で定義された " +"Type 定数がそれぞれあります。 例えば、Hibernate." +"STRINGstring 型を表現しています。" -#: index.docbook:2558 -msgid "Type mappings from Java primitives or wrapper classes to appropriate (vendor-specific) SQL column types. boolean, yes_no and true_false are all alternative encodings for a Java boolean or java.lang.Boolean." +#. Tag: title +#: basic_mapping.xml:2704 +#, no-c-format +msgid "Custom value types" msgstr "カスタム型" -#: index.docbook:2567 -msgid "string" -msgstr "開発者が独自の値型を作成することは、比較的簡単です。 例えば、java.lang.BigInteger 型のプロパティを VARCHAR カラムに永続化したいかもしれません。 Hibernateはこのための組み込み型を用意していません。 しかしカスタム型は、プロパティ(またはコレクションの要素)を1つのテーブルカラムに マッピングするのに制限はありません。 そのため例えば、java.lang.String 型の getName() / setName() Javaプロパティを FIRST_NAME , INITIAL, SURNAME カラムに永続化できます。" - -#: index.docbook:2569 -msgid "A type mapping from java.lang.String to VARCHAR (or Oracle VARCHAR2)." -msgstr "カスタム型を実装するには、org.hibernate.UserType または org.hibernate.CompositeUserType を実装し、 型の完全修飾された名前を使ってプロパティを定義します。 どのような種類のものが可能かを調べるには、 org.hibernate.test.DoubleStringType を確認してください。" - -#: index.docbook:2576 -msgid "date, time, timestamp" +#. Tag: para +#: basic_mapping.xml:2706 +#, no-c-format +msgid "" +"It is relatively easy for developers to create their own value types. For " +"example, you might want to persist properties of type java.lang." +"BigInteger to VARCHAR columns. Hibernate does " +"not provide a built-in type for this. But custom types are not limited to " +"mapping a property (or collection element) to a single table column. So, for " +"example, you might have a Java property getName()/" +"setName() of type java.lang.String " +"that is persisted to the columns FIRST_NAME, " +"INITIAL, SURNAME." msgstr "" - " \n" - " \n" - " \n" - "]]>" +"開発者が独自の値型を作成することは、比較的簡単です。 例えば、java." +"lang.BigInteger 型のプロパティを VARCHAR カラム" +"に永続化したいかもしれません。 Hibernateはこのための組み込み型を用意していま" +"せん。 しかしカスタム型は、プロパティ(またはコレクションの要素)を1つのテー" +"ブルカラムに マッピングするのに制限はありません。 そのため例えば、" +"java.lang.String 型の getName() / " +"setName() Javaプロパティを FIRST_NAME , INITIAL, SURNAME カラムに永" +"続化できます。" -#: index.docbook:2578 -msgid "Type mappings from java.util.Date and its subclasses to SQL types DATE, TIME and TIMESTAMP (or equivalent)." -msgstr "<column> タグで、 プロパティを複数のカラムへマッピングできることに注目してください。" - -#: index.docbook:2586 -msgid "calendar, calendar_date" -msgstr "CompositeUserType , EnhancedUserType , UserCollectionType , UserVersionType インターフェイスは、より特殊な使用法に対してのサポートを提供します。" - -#: index.docbook:2588 -msgid "Type mappings from java.util.Calendar to SQL types TIMESTAMP and DATE (or equivalent)." -msgstr "マッピングファイル内で UserType へパラメータを提供できます。 このためには、UserTypeorg.hibernate.usertype.ParameterizedType を実装しなくてはなりません。 カスタム型パラメータを提供するために、 マッピングファイル内で <type> 要素を使用できます。" - -#: index.docbook:2596 -msgid "big_decimal, big_integer" +#. Tag: para +#: basic_mapping.xml:2717 +#, no-c-format +msgid "" +"To implement a custom type, implement either org.hibernate." +"UserType or org.hibernate.CompositeUserType and " +"declare properties using the fully qualified classname of the type. Check " +"out org.hibernate.test.DoubleStringType to see the kind " +"of things that are possible." msgstr "" - " \n" - " \n" - " 0 \n" - " \n" - "]]>" +"カスタム型を実装するには、org.hibernate.UserType または " +"org.hibernate.CompositeUserType を実装し、 型の完全修飾さ" +"れた名前を使ってプロパティを定義します。 どのような種類のものが可能かを調べる" +"には、 org.hibernate.test.DoubleStringType を確認してくだ" +"さい。" -#: index.docbook:2598 -msgid "Type mappings from java.math.BigDecimal and java.math.BigInteger to NUMERIC (or Oracle NUMBER)." -msgstr "UserType は、 引数として渡された Properties オブジェクトから、 default で指定したパラメータに対する値を検索することができます。" - -#: index.docbook:2606 -msgid "locale, timezone, currency" -msgstr "特定の UserType を頻繁に使用するならば、短い名前を定義すると便利になるでしょう。 <typedef> 要素を使ってこのようなことが行えます。 Typedefsはカスタム型に名前を割り当てます。 その型がパラメータを持つならば、 パラメータのデフォルト値のリストを含むこともできます。" - -#: index.docbook:2608 -msgid "Type mappings from java.util.Locale, java.util.TimeZone and java.util.Currency to VARCHAR (or Oracle VARCHAR2). Instances of Locale and Currency are mapped to their ISO codes. Instances of TimeZone are mapped to their ID." +#. Tag: programlisting +#: basic_mapping.xml:2725 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " 0 \n" - "]]>" -#: index.docbook:2620 -msgid "class" -msgstr "]]>" +#. Tag: para +#: basic_mapping.xml:2727 +#, no-c-format +msgid "" +"Notice the use of <column> tags to map a property " +"to multiple columns." +msgstr "" +"<column> タグで、 プロパティを複数のカラムへマッピン" +"グできることに注目してください。" -#: index.docbook:2622 -msgid "A type mapping from java.lang.Class to VARCHAR (or Oracle VARCHAR2). A Class is mapped to its fully qualified name." -msgstr "プロパティのマッピングで型パラメータを使うことで、 typedefで提供されたパラメータをその都度オーバーライドすることが可能です。" +#. Tag: para +#: basic_mapping.xml:2732 +#, no-c-format +msgid "" +"The CompositeUserType, EnhancedUserType, UserCollectionType, and " +"UserVersionType interfaces provide support for more " +"specialized uses." +msgstr "" +"CompositeUserType , EnhancedUserType , " +"UserCollectionType , UserVersionType イ" +"ンターフェイスは、より特殊な使用法に対してのサポートを提供します。" -#: index.docbook:2630 -msgid "binary" -msgstr "Hibernateの幅広い組み込み型とコンポーネントに対するサポートは、 カスタム型をめったに 使わない ということを意味します。 それでもなお、アプリケーションで頻出する(エンティティではない)クラスに対するカスタム型の使用は、 よいやり方であるとみなされます。 例えば MonetaryAmount クラスはコンポーネントとして簡単にマッピングできますが、 CompositeUserType の良い候補です。 カスタム型を使用する動機の1つは抽象化です。 カスタム型を使うことで、通貨をどのように表現しようとも マッピングドキュメントは起こりうる変化に対応できます。" +#. Tag: para +#: basic_mapping.xml:2738 +#, no-c-format +msgid "" +"You may even supply parameters to a UserType in the " +"mapping file. To do this, your UserType must implement " +"the org.hibernate.usertype.ParameterizedType interface. " +"To supply parameters to your custom type, you can use the <" +"type> element in your mapping files." +msgstr "" +"マッピングファイル内で UserType へパラメータを提供できま" +"す。 このためには、UserTypeorg.hibernate." +"usertype.ParameterizedType を実装しなくてはなりません。 カスタム型" +"パラメータを提供するために、 マッピングファイル内で <type> 要素を使用できます。" -#: index.docbook:2632 -msgid "Maps byte arrays to an appropriate SQL binary type." +#. Tag: programlisting +#: basic_mapping.xml:2746 +#, no-c-format +msgid "" +"\n" +" \n" +" 0\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:2748 +#, no-c-format +msgid "" +"The UserType can now retrieve the value for the parameter " +"named default from the Properties " +"object passed to it." +msgstr "" +"UserType は、 引数として渡された Properties オブジェクトから、 default で指定したパラメータに" +"対する値を検索することができます。" + +#. Tag: para +#: basic_mapping.xml:2753 +#, no-c-format +msgid "" +"If you use a certain UserType very often, it may be " +"useful to define a shorter name for it. You can do this using the " +"<typedef> element. Typedefs assign a name to a " +"custom type, and may also contain a list of default parameter values if the " +"type is parameterized." +msgstr "" +"特定の UserType を頻繁に使用するならば、短い名前を定義する" +"と便利になるでしょう。 <typedef> 要素を使ってこのよ" +"うなことが行えます。 Typedefsはカスタム型に名前を割り当てます。 その型がパラ" +"メータを持つならば、 パラメータのデフォルト値のリストを含むこともできます。" + +#. Tag: programlisting +#: basic_mapping.xml:2760 +#, no-c-format +msgid "" +"\n" +" 0\n" +"]]>" +msgstr "" + +#. Tag: programlisting +#: basic_mapping.xml:2762 +#, no-c-format +msgid "]]>" +msgstr "" + +#. Tag: para +#: basic_mapping.xml:2764 +#, no-c-format +msgid "" +"It is also possible to override the parameters supplied in a typedef on a " +"case-by-case basis by using type parameters on the property mapping." +msgstr "" +"プロパティのマッピングで型パラメータを使うことで、 typedefで提供されたパラ" +"メータをその都度オーバーライドすることが可能です。" + +#. Tag: para +#: basic_mapping.xml:2769 +#, no-c-format +msgid "" +"Even though Hibernate's rich range of built-in types and support for " +"components means you will very rarely need to use a " +"custom type, it is nevertheless considered good form to use custom types for " +"(non-entity) classes that occur frequently in your application. For example, " +"a MonetaryAmount class is a good candidate for a " +"CompositeUserType, even though it could easily be mapped " +"as a component. One motivation for this is abstraction. With a custom type, " +"your mapping documents would be future-proofed against possible changes in " +"your way of representing monetary values." +msgstr "" +"Hibernateの幅広い組み込み型とコンポーネントに対するサポートは、 カスタム型を" +"めったに 使わない ということを意味します。 それでもな" +"お、アプリケーションで頻出する(エンティティではない)クラスに対するカスタム型" +"の使用は、 よいやり方であるとみなされます。 例えば MonetaryAmount クラスはコンポーネントとして簡単にマッピングできますが、 " +"CompositeUserType の良い候補です。 カスタム型を使用する動" +"機の1つは抽象化です。 カスタム型を使うことで、通貨をどのように表現しようとも " +"マッピングドキュメントは起こりうる変化に対応できます。" + +#. Tag: title +#: basic_mapping.xml:2785 +#, no-c-format +msgid "Mapping a class more than once" msgstr "1つのクラスに1つ以上のマッピング" -#: index.docbook:2638 -msgid "text" -msgstr "ある永続クラスに、一つ以上のマッピングを提供することが出来ます。 この場合、マッピングする2つのエンティティのインスタンスを明確にするために、 エンティティ名 を指定しなければなりません (デフォルトではエンティティ名はクラス名と同じです。)。 永続オブジェクトを扱うとき、クエリを書き込むとき、 指定されたエンティティへの関連をマッピングするときには、 Hibernateではエンティティ名を指定しなければなりません。" - -#: index.docbook:2640 -msgid "Maps long Java strings to a SQL CLOB or TEXT type." +#. Tag: para +#: basic_mapping.xml:2786 +#, no-c-format +msgid "" +"It is possible to provide more than one mapping for a particular persistent " +"class. In this case you must specify an entity name do " +"disambiguate between instances of the two mapped entities. (By default, the " +"entity name is the same as the class name.) Hibernate lets you specify the " +"entity name when working with persistent objects, when writing queries, or " +"when mapping associations to the named entity." msgstr "" - " \n" - " ... \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ... \n" - " \n" - "]]>" +"ある永続クラスに、一つ以上のマッピングを提供することが出来ます。 この場合、" +"マッピングする2つのエンティティのインスタンスを明確にするために、 " +"エンティティ名 を指定しなければなりません (デフォルトではエンティ" +"ティ名はクラス名と同じです。)。 永続オブジェクトを扱うとき、クエリを書き込む" +"とき、 指定されたエンティティへの関連をマッピングするときには、 Hibernateでは" +"エンティティ名を指定しなければなりません。" -#: index.docbook:2647 -msgid "serializable" -msgstr "関連がclass の代わりに entity-name を使って、 どのように指定されるのかに注目してください。" +#. Tag: programlisting +#: basic_mapping.xml:2794 +#, no-c-format +msgid "" +"\n" +" ...\n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" ...\n" +" \n" +"]]>" +msgstr "" -#: index.docbook:2649 -msgid "Maps serializable Java types to an appropriate SQL binary type. You may also indicate the Hibernate type serializable with the name of a serializable Java class or interface that does not default to a basic type." +#. Tag: para +#: basic_mapping.xml:2796 +#, no-c-format +msgid "" +"Notice how associations are now specified using entity-name instead of class." +msgstr "" +"関連がclass の代わりに entity-name を" +"使って、 どのように指定されるのかに注目してください。" + +#. Tag: title +#: basic_mapping.xml:2804 +#, no-c-format +msgid "SQL quoted identifiers" msgstr "バッククォートで囲んだ SQL 識別子" -#: index.docbook:2658 -msgid "clob, blob" -msgstr "マッピングドキュメントでテーブルやカラムの名前をバッククォートで囲むことで、 Hibernateで生成されたSQL中の識別子を引用させることができます。 HibernateはSQLの Dialect に対応する、正しい引用スタイルを使います (普通はダブルクォートですが、SQL Serverではかぎ括弧、MySQLではバッククォートです)。" - -#: index.docbook:2660 -msgid "Type mappings for the JDBC classes java.sql.Clob and java.sql.Blob. These types may be inconvenient for some applications, since the blob or clob object may not be reused outside of a transaction. (Furthermore, driver support is patchy and inconsistent.)" +#. Tag: para +#: basic_mapping.xml:2805 +#, no-c-format +msgid "" +"You may force Hibernate to quote an identifier in the generated SQL by " +"enclosing the table or column name in backticks in the mapping document. " +"Hibernate will use the correct quotation style for the SQL Dialect (usually double quotes, but brackets for SQL Server and backticks " +"for MySQL)." msgstr "" - " \n" - " \n" - " \n" - " ... \n" - "]]>" +"マッピングドキュメントでテーブルやカラムの名前をバッククォートで囲むことで、 " +"Hibernateで生成されたSQL中の識別子を引用させることができます。 HibernateはSQL" +"の Dialect に対応する、正しい引用スタイルを使います (普通" +"はダブルクォートですが、SQL Serverではかぎ括弧、MySQLではバッククォートで" +"す)。" -#: index.docbook:2670 -msgid "imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, imm_serializable, imm_binary" +#. Tag: programlisting +#: basic_mapping.xml:2812 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" ...\n" +"]]>" +msgstr "" + +#. Tag: title +#: basic_mapping.xml:2818 +#, no-c-format +msgid "Metadata alternatives" msgstr "メタデータの代替手段" -#: index.docbook:2674 -msgid "Type mappings for what are usually considered mutable Java types, where Hibernate makes certain optimizations appropriate only for immutable Java types, and the application treats the object as immutable. For example, you should not call Date.setTime() for an instance mapped as imm_timestamp. To change the value of the property, and have that change made persistent, the application must assign a new (nonidentical) object to the property." -msgstr "XMLの記述以外に、 HibernateではO/Rマッピングのメタデータを定義する代替方法があります。" +#. Tag: para +#: basic_mapping.xml:2820 +#, no-c-format +msgid "" +"XML isn't for everyone, and so there are some alternative ways to define O/R " +"mapping metadata in Hibernate." +msgstr "" +"XMLの記述以外に、 HibernateではO/Rマッピングのメタデータを定義する代替方法が" +"あります。" -#: index.docbook:2689 -msgid "Unique identifiers of entities and collections may be of any basic type except binary, blob and clob. (Composite identifiers are also allowed, see below.)" +#. Tag: title +#: basic_mapping.xml:2825 +#, no-c-format +msgid "Using XDoclet markup" msgstr "XDoclet マークアップの使用" -#: index.docbook:2695 -msgid "The basic value types have corresponding Type constants defined on org.hibernate.Hibernate. For example, Hibernate.STRING represents the string type." -msgstr "多くのHibernateユーザはXDocletの @hibernate.tags を使って、 ソースコード内に直接マッピング情報を埋め込むことを好みます。 これは厳密に言えばXDocletの分野なので、本ドキュメントではこの方法を対象とはしません。 しかしXDocletを使った以下の Cat マッピングの例を示します。" - -#: index.docbook:2704 -msgid "Custom value types" -msgstr "" - "" - -#: index.docbook:2706 -msgid "It is relatively easy for developers to create their own value types. For example, you might want to persist properties of type java.lang.BigInteger to VARCHAR columns. Hibernate does not provide a built-in type for this. But custom types are not limited to mapping a property (or collection element) to a single table column. So, for example, you might have a Java property getName()/setName() of type java.lang.String that is persisted to the columns FIRST_NAME, INITIAL, SURNAME." -msgstr "Hibernateのウェブサイトには、XDocletとHibernateに関するサンプルが多数あります。" - -#: index.docbook:2717 -msgid "To implement a custom type, implement either org.hibernate.UserType or org.hibernate.CompositeUserType and declare properties using the fully qualified classname of the type. Check out org.hibernate.test.DoubleStringType to see the kind of things that are possible." -msgstr "JDK 5.0 アノテーションの使用" - -#: index.docbook:2725 +#. Tag: para +#: basic_mapping.xml:2827 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "]]>" -msgstr "JDK5.0ではタイプセーフかつコンパイル時にチェックできる、 言語レベルのXDocletスタイルのアノテーションを導入しました。 このメカニズムはXDocletのアノテーションよりも強力で、ツールやIDEも多くがサポートしています。 例えばIntelliJ IDEAは、JDK5.0にアノテーションの自動補完と構文の強調表示をサポートしています。 EJB仕様 (JSR-220)の新しいバージョンでは、エンティティビーンに対する主要なメタデータメカニズムとして JDK5.0のアノテーションを使用しています。 Hibernate3ではJSR-220 (永続化API)の EntityManager を実装し、 メタデータマッピングに対するサポートは、 別ダウンロードの Hibernate Annotations パッケージにより利用可能です。 これはEJB3(JSR-220)とHibernate3のメタデータをどちらもサポートしています。" - -#: index.docbook:2727 -msgid "Notice the use of <column> tags to map a property to multiple columns." -msgstr "以下はEJBのエンティティビーンとして注釈されたPOJOクラスの例です。" - -#: index.docbook:2732 -msgid "The CompositeUserType, EnhancedUserType, UserCollectionType, and UserVersionType interfaces provide support for more specialized uses." +"Many Hibernate users prefer to embed mapping information directly in " +"sourcecode using XDoclet @hibernate.tags. We will not " +"cover this approach in this document, since strictly it is considered part " +"of XDoclet. However, we include the following example of the Cat class with XDoclet mappings." msgstr "" - " orders; \n" - " \n" - " // Getter/setter and business methods \n" - "}]]>" +"多くのHibernateユーザはXDocletの @hibernate.tags を使っ" +"て、 ソースコード内に直接マッピング情報を埋め込むことを好みます。 これは厳密" +"に言えばXDocletの分野なので、本ドキュメントではこの方法を対象とはしません。 " +"しかしXDocletを使った以下の Cat マッピングの例を示します。" -#: index.docbook:2738 -msgid "You may even supply parameters to a UserType in the mapping file. To do this, your UserType must implement the org.hibernate.usertype.ParameterizedType interface. To supply parameters to your custom type, you can use the <type> element in your mapping files." -msgstr "JDK5.0のアノテーション(とJSR-220)のサポートは進行中の作業であり、完全ではないことに注意してください。 さらに詳しい情報はHibernateのアノテーション・モジュールを参照してください。" - -#: index.docbook:2746 +#. Tag: programlisting +#: basic_mapping.xml:2834 +#, no-c-format msgid "" - "\n" - " \n" - " 0\n" - " \n" - "]]>" -msgstr "生成プロパティ" - -#: index.docbook:2748 -msgid "The UserType can now retrieve the value for the parameter named default from the Properties object passed to it." -msgstr "生成プロパティとは、データベースによって生成された値を持つプロパティです。 通常、Hibernateアプリケーションは、データベースが値を生成したプロパティを含むオブジェクトを リフレッシュ する必要がありました。 しかし、プロパティが生成されたということをマークすることで、 アプリケーションはリフレッシュの責任をHibernateに委譲します。 基本的に、生成プロパティを持つと定義したエンティティに対して HibernateがINSERTやUPDATEのSQLを発行した後すぐに、 生成された値を読み込むための SELECT SQL が発行されます。" - -#: index.docbook:2753 -msgid "If you use a certain UserType very often, it may be useful to define a shorter name for it. You can do this using the <typedef> element. Typedefs assign a name to a custom type, and may also contain a list of default parameter values if the type is parameterized." -msgstr "生成プロパティは、挿入不可能かつ更新不可能でなければなりません。 versions 、 timestamps 、 simple properties だけが生成されたとマークできます。" - -#: index.docbook:2760 -msgid "" - "\n" - " 0\n" - "]]>" -msgstr "never (デフォルト) - 与えられたプロパティの値は、 データベースから生成されないことを意味します。" - -#: index.docbook:2762 -msgid "]]>" -msgstr "insert - 与えられたプロパティの値は挿入時に生成されるが、 続いて起こる更新時には生成されないこと示します。 作成された日付などは、このカテゴリに分類されます。 version や timestamp の プロパティは生成されたとマークできますが、このオプションは利用できないことに注意してください。" - -#: index.docbook:2764 -msgid "It is also possible to override the parameters supplied in a typedef on a case-by-case basis by using type parameters on the property mapping." -msgstr "always - 挿入時も更新時もプロパティの値が生成されることを示します。" - -#: index.docbook:2769 -msgid "Even though Hibernate's rich range of built-in types and support for components means you will very rarely need to use a custom type, it is nevertheless considered good form to use custom types for (non-entity) classes that occur frequently in your application. For example, a MonetaryAmount class is a good candidate for a CompositeUserType, even though it could easily be mapped as a component. One motivation for this is abstraction. With a custom type, your mapping documents would be future-proofed against possible changes in your way of representing monetary values." -msgstr "補助的なデータベース・オブジェクト" - -#: index.docbook:2785 -msgid "Mapping a class more than once" -msgstr "Hibernateのスキーマ・エボリューションツールと連動することで、 任意のデータベース・オブジェクト(トリガーやストアドプロシージャなど)のCREATEとDROPにより、 Hibernateのマッピングファイル内のユーザ・スキーマをすべて定義することが出来ます。 主にトリガやストアドプロシージャのようなデータベース・オブジェクトを生成や削除することを意図していますが、 実際には java.sql.Statement.execute() メソッドによって実行できる 任意のSQLコマンド(ALTER、INSERTなど)が実行できます。 補助的なデータベース・オブジェクトを定義するための、2つの基本的な方法があります。" - -#: index.docbook:2786 -msgid "It is possible to provide more than one mapping for a particular persistent class. In this case you must specify an entity name do disambiguate between instances of the two mapped entities. (By default, the entity name is the same as the class name.) Hibernate lets you specify the entity name when working with persistent objects, when writing queries, or when mapping associations to the named entity." -msgstr "1つ目の方法は、CREATEとDROPコマンドをマッピングファイルの外に、明示的に記載することです。" - -#: index.docbook:2794 -msgid "" - "\n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " ...\n" - " \n" - "]]>" -msgstr "" - " \n" - " ... \n" - " \n" - " CREATE TRIGGER my_trigger ... \n" - " DROP TRIGGER my_trigger \n" - " \n" - "]]>" - -#: index.docbook:2796 -msgid "Notice how associations are now specified using entity-name instead of class." -msgstr "2つ目の方法は、CREATEとDROPコマンドの組み立て方を知っているカスタムクラスを提供することです。 このカスタムクラスは org.hibernate.mapping.AuxiliaryDatabaseObject インタフェースを 実装しなければなりません。" - -#: index.docbook:2804 -msgid "SQL quoted identifiers" -msgstr "" - " \n" - " ... \n" - " \n" - " \n" - " \n" - "]]>" - -#: index.docbook:2805 -msgid "You may force Hibernate to quote an identifier in the generated SQL by enclosing the table or column name in backticks in the mapping document. Hibernate will use the correct quotation style for the SQL Dialect (usually double quotes, but brackets for SQL Server and backticks for MySQL)." -msgstr "さらに、あるデータベース方言が使用される時にだけ適用するといったように、 データベース・オブジェクトが使われるケースを限定できます。" - -#: index.docbook:2812 -msgid "" - "\n" - " \n" - " \n" - " ...\n" - "]]>" -msgstr "" - " \n" - " ... \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" - -#: index.docbook:2818 -msgid "Metadata alternatives" +"" msgstr "" -#: index.docbook:2820 -msgid "XML isn't for everyone, and so there are some alternative ways to define O/R mapping metadata in Hibernate." -msgstr "" - -#: index.docbook:2825 -msgid "Using XDoclet markup" -msgstr "" - -#: index.docbook:2827 -msgid "Many Hibernate users prefer to embed mapping information directly in sourcecode using XDoclet @hibernate.tags. We will not cover this approach in this document, since strictly it is considered part of XDoclet. However, we include the following example of the Cat class with XDoclet mappings." -msgstr "" - -#: index.docbook:2834 -msgid "" - "" -msgstr "" - -#: index.docbook:2836 +#. Tag: para +#: basic_mapping.xml:2836 +#, no-c-format msgid "See the Hibernate web site for more examples of XDoclet and Hibernate." msgstr "" +"Hibernateのウェブサイトには、XDocletとHibernateに関するサンプルが多数ありま" +"す。" -#: index.docbook:2843 +#. Tag: title +#: basic_mapping.xml:2843 +#, no-c-format msgid "Using JDK 5.0 Annotations" -msgstr "" +msgstr "JDK 5.0 アノテーションの使用" -#: index.docbook:2845 -msgid "JDK 5.0 introduced XDoclet-style annotations at the language level, type-safe and checked at compile time. This mechnism is more powerful than XDoclet annotations and better supported by tools and IDEs. IntelliJ IDEA, for example, supports auto-completion and syntax highlighting of JDK 5.0 annotations. The new revision of the EJB specification (JSR-220) uses JDK 5.0 annotations as the primary metadata mechanism for entity beans. Hibernate3 implements the EntityManager of JSR-220 (the persistence API), support for mapping metadata is available via the Hibernate Annotations package, as a separate download. Both EJB3 (JSR-220) and Hibernate3 metadata is supported." +#. Tag: para +#: basic_mapping.xml:2845 +#, no-c-format +msgid "" +"JDK 5.0 introduced XDoclet-style annotations at the language level, type-" +"safe and checked at compile time. This mechnism is more powerful than " +"XDoclet annotations and better supported by tools and IDEs. IntelliJ IDEA, " +"for example, supports auto-completion and syntax highlighting of JDK 5.0 " +"annotations. The new revision of the EJB specification (JSR-220) uses JDK " +"5.0 annotations as the primary metadata mechanism for entity beans. " +"Hibernate3 implements the EntityManager of JSR-220 (the " +"persistence API), support for mapping metadata is available via the " +"Hibernate Annotations package, as a separate download. " +"Both EJB3 (JSR-220) and Hibernate3 metadata is supported." msgstr "" +"JDK5.0ではタイプセーフかつコンパイル時にチェックできる、 言語レベルのXDoclet" +"スタイルのアノテーションを導入しました。 このメカニズムはXDocletのアノテー" +"ションよりも強力で、ツールやIDEも多くがサポートしています。 例えばIntelliJ " +"IDEAは、JDK5.0にアノテーションの自動補完と構文の強調表示をサポートしていま" +"す。 EJB仕様 (JSR-220)の新しいバージョンでは、エンティティビーンに対する主要" +"なメタデータメカニズムとして JDK5.0のアノテーションを使用しています。 " +"Hibernate3ではJSR-220 (永続化API)の EntityManager を実装" +"し、 メタデータマッピングに対するサポートは、 別ダウンロードの " +"Hibernate Annotations パッケージにより利用可能です。 こ" +"れはEJB3(JSR-220)とHibernate3のメタデータをどちらもサポートしています。" -#: index.docbook:2856 +#. Tag: para +#: basic_mapping.xml:2856 +#, no-c-format msgid "This is an example of a POJO class annotated as an EJB entity bean:" -msgstr "" +msgstr "以下はEJBのエンティティビーンとして注釈されたPOJOクラスの例です。" -#: index.docbook:2860 +#. Tag: programlisting +#: basic_mapping.xml:2860 +#, no-c-format msgid "" - " orders;\n" - "\n" - " // Getter/setter and business methods\n" - "}]]>" +" orders;\n" +"\n" +" // Getter/setter and business methods\n" +"}]]>" msgstr "" -#: index.docbook:2862 -msgid "Note that support for JDK 5.0 Annotations (and JSR-220) is still work in progress and not completed. Please refer to the Hibernate Annotations module for more details." +#. Tag: para +#: basic_mapping.xml:2862 +#, no-c-format +msgid "" +"Note that support for JDK 5.0 Annotations (and JSR-220) is still work in " +"progress and not completed. Please refer to the Hibernate Annotations module " +"for more details." msgstr "" +"JDK5.0のアノテーション(とJSR-220)のサポートは進行中の作業であり、完全ではない" +"ことに注意してください。 さらに詳しい情報はHibernateのアノテーション・モ" +"ジュールを参照してください。" -#: index.docbook:2871 +#. Tag: title +#: basic_mapping.xml:2871 +#, no-c-format msgid "Generated Properties" -msgstr "" +msgstr "生成プロパティ" -#: index.docbook:2872 -msgid "Generated properties are properties which have their values generated by the database. Typically, Hibernate applications needed to refresh objects which contain any properties for which the database was generating values. Marking properties as generated, however, lets the application delegate this responsibility to Hibernate. Essentially, whenever Hibernate issues an SQL INSERT or UPDATE for an entity which has defined generated properties, it immediately issues a select afterwards to retrieve the generated values." +#. Tag: para +#: basic_mapping.xml:2872 +#, no-c-format +msgid "" +"Generated properties are properties which have their values generated by the " +"database. Typically, Hibernate applications needed to refresh objects which contain any properties for which the database was " +"generating values. Marking properties as generated, however, lets the " +"application delegate this responsibility to Hibernate. Essentially, whenever " +"Hibernate issues an SQL INSERT or UPDATE for an entity which has defined " +"generated properties, it immediately issues a select afterwards to retrieve " +"the generated values." msgstr "" +"生成プロパティとは、データベースによって生成された値を持つプロパティです。 通" +"常、Hibernateアプリケーションは、データベースが値を生成したプロパティを含むオ" +"ブジェクトを リフレッシュ する必要がありました。 しかし、" +"プロパティが生成されたということをマークすることで、 アプリケーションはリフ" +"レッシュの責任をHibernateに委譲します。 基本的に、生成プロパティを持つと定義" +"したエンティティに対して HibernateがINSERTやUPDATEのSQLを発行した後すぐに、 " +"生成された値を読み込むための SELECT SQL が発行されます。" -#: index.docbook:2881 -msgid "Properties marked as generated must additionally be non-insertable and non-updateable. Only versions, timestamps, and simple properties can be marked as generated." +#. Tag: para +#: basic_mapping.xml:2881 +#, no-c-format +msgid "" +"Properties marked as generated must additionally be non-insertable and non-" +"updateable. Only versions, timestamps, " +"and simple properties " +"can be marked as generated." msgstr "" +"生成プロパティは、挿入不可能かつ更新不可能でなければなりません。 versionstimestampssimple properties だけが生成されたと" +"マークできます。" -#: index.docbook:2888 -msgid "never (the default) - means that the given property value is not generated within the database." +#. Tag: para +#: basic_mapping.xml:2888 +#, no-c-format +msgid "" +"never (the default) - means that the given property value " +"is not generated within the database." msgstr "" +"never (デフォルト) - 与えられたプロパティの値は、 データ" +"ベースから生成されないことを意味します。" -#: index.docbook:2892 -msgid "insert - states that the given property value is generated on insert, but is not regenerated on subsequent updates. Things like created-date would fall into this category. Note that even thought version and timestamp properties can be marked as generated, this option is not available there..." +#. Tag: para +#: basic_mapping.xml:2892 +#, no-c-format +msgid "" +"insert - states that the given property value is " +"generated on insert, but is not regenerated on subsequent updates. Things " +"like created-date would fall into this category. Note that even thought " +"version and timestamp properties can be " +"marked as generated, this option is not available there..." msgstr "" +"insert - 与えられたプロパティの値は挿入時に生成されるが、 " +"続いて起こる更新時には生成されないこと示します。 作成された日付などは、このカ" +"テゴリに分類されます。 versiontimestamp の プロパティは生成されたとマークできますが、このオプショ" +"ンは利用できないことに注意してください。" -#: index.docbook:2900 -msgid "always - states that the property value is generated both on insert and on update." +#. Tag: para +#: basic_mapping.xml:2900 +#, no-c-format +msgid "" +"always - states that the property value is generated both " +"on insert and on update." msgstr "" +"always - 挿入時も更新時もプロパティの値が生成されることを" +"示します。" -#: index.docbook:2907 +#. Tag: title +#: basic_mapping.xml:2907 +#, no-c-format msgid "Auxiliary Database Objects" -msgstr "" +msgstr "補助的なデータベース・オブジェクト" -#: index.docbook:2908 -msgid "Allows CREATE and DROP of arbitrary database objects, in conjunction with Hibernate's schema evolution tools, to provide the ability to fully define a user schema within the Hibernate mapping files. Although designed specifically for creating and dropping things like triggers or stored procedures, really any SQL command that can be run via a java.sql.Statement.execute() method is valid here (ALTERs, INSERTS, etc). There are essentially two modes for defining auxiliary database objects..." -msgstr "" - -#: index.docbook:2917 -msgid "The first mode is to explicitly list the CREATE and DROP commands out in the mapping file:" -msgstr "" - -#: index.docbook:2921 +#. Tag: para +#: basic_mapping.xml:2908 +#, no-c-format msgid "" - "\n" - " ...\n" - " \n" - " CREATE TRIGGER my_trigger ...\n" - " DROP TRIGGER my_trigger\n" - " \n" - "]]>" +"Allows CREATE and DROP of arbitrary database objects, in conjunction with " +"Hibernate's schema evolution tools, to provide the ability to fully define a " +"user schema within the Hibernate mapping files. Although designed " +"specifically for creating and dropping things like triggers or stored " +"procedures, really any SQL command that can be run via a java.sql." +"Statement.execute() method is valid here (ALTERs, INSERTS, etc). " +"There are essentially two modes for defining auxiliary database objects..." msgstr "" +"Hibernateのスキーマ・エボリューションツールと連動することで、 任意のデータ" +"ベース・オブジェクト(トリガーやストアドプロシージャなど)のCREATEとDROPによ" +"り、 Hibernateのマッピングファイル内のユーザ・スキーマをすべて定義することが" +"出来ます。 主にトリガやストアドプロシージャのようなデータベース・オブジェクト" +"を生成や削除することを意図していますが、 実際には java.sql." +"Statement.execute() メソッドによって実行できる 任意のSQLコマンド" +"(ALTER、INSERTなど)が実行できます。 補助的なデータベース・オブジェクトを定" +"義するための、2つの基本的な方法があります。" -#: index.docbook:2922 -msgid "The second mode is to supply a custom class which knows how to construct the CREATE and DROP commands. This custom class must implement the org.hibernate.mapping.AuxiliaryDatabaseObject interface." -msgstr "" - -#: index.docbook:2927 +#. Tag: para +#: basic_mapping.xml:2917 +#, no-c-format msgid "" - "\n" - " ...\n" - " \n" - " \n" - " \n" - "]]>" +"The first mode is to explicitly list the CREATE and DROP commands out in the " +"mapping file:" msgstr "" +"1つ目の方法は、CREATEとDROPコマンドをマッピングファイルの外に、明示的に記載す" +"ることです。" -#: index.docbook:2928 -msgid "Additionally, these database objects can be optionally scoped such that they only apply when certain dialects are used." -msgstr "" - -#: index.docbook:2932 +#. Tag: programlisting +#: basic_mapping.xml:2921 +#, no-c-format msgid "" - "\n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" ...\n" +" \n" +" CREATE TRIGGER my_trigger ...\n" +" DROP TRIGGER my_trigger\n" +" \n" +"]]>" msgstr "" -msgid "ROLES_OF_TRANSLATORS" -msgstr "" +#. Tag: para +#: basic_mapping.xml:2922 +#, no-c-format +msgid "" +"The second mode is to supply a custom class which knows how to construct the " +"CREATE and DROP commands. This custom class must implement the org." +"hibernate.mapping.AuxiliaryDatabaseObject interface." +msgstr "" +"2つ目の方法は、CREATEとDROPコマンドの組み立て方を知っているカスタムクラスを提" +"供することです。 このカスタムクラスは org.hibernate.mapping." +"AuxiliaryDatabaseObject インタフェースを 実装しなければなりません。" -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#. Tag: programlisting +#: basic_mapping.xml:2927 +#, no-c-format +msgid "" +"\n" +" ...\n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" +#. Tag: para +#: basic_mapping.xml:2928 +#, no-c-format +msgid "" +"Additionally, these database objects can be optionally scoped such that they " +"only apply when certain dialects are used." +msgstr "" +"さらに、あるデータベース方言が使用される時にだけ適用するといったように、 デー" +"タベース・オブジェクトが使われるケースを限定できます。" + +#. Tag: programlisting +#: basic_mapping.xml:2932 +#, no-c-format +msgid "" +"\n" +" ...\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#~ msgid "class" +#~ msgstr "class" + +#~ msgid "id" +#~ msgstr "id" + +#~ msgid "" +#~ "optimizer (optional, defaults to none): See " +#~ msgstr "" +#~ "optimizer (optional, defaults to none): See " + +#~ msgid "" +#~ "optimizer (optional, defaults to ): See " +#~ "" +#~ msgstr "" +#~ "optimizer (optional, defaults to ): See " +#~ "" + +#~ msgid "key" +#~ msgstr "key" + +#~ msgid "any" +#~ msgstr "any" diff --git a/documentation/manual/translations/ja-JP/content/batch.po b/documentation/manual/translations/ja-JP/content/batch.po index 87028cc994..57f0670c30 100644 --- a/documentation/manual/translations/ja-JP/content/batch.po +++ b/documentation/manual/translations/ja-JP/content/batch.po @@ -1,374 +1,630 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: batch.xml:5 +#, no-c-format msgid "Batch processing" msgstr "バッチ処理" -#: index.docbook:7 -msgid "A naive approach to inserting 100 000 rows in the database using Hibernate might look like this:" -msgstr "Hibernateを使ってデータベースに100,000行を挿入する愚直な方法は、このようなものです:" - -#: index.docbook:12 +#. Tag: para +#: batch.xml:7 +#, no-c-format msgid "" - "" +"A naive approach to inserting 100 000 rows in the database using Hibernate " +"might look like this:" msgstr "" - "" +"Hibernateを使ってデータベースに100,000行を挿入する愚直な方法は、このようなも" +"のです:" -#: index.docbook:14 -msgid "This would fall over with an OutOfMemoryException somewhere around the 50 000th row. That's because Hibernate caches all the newly inserted Customer instances in the session-level cache." -msgstr "これは50,000番目の行のあたりで OutOfMemoryException で失敗するでしょう。 Hibernateがセッションレベルキャッシュで、 新しく挿入されたすべての Customer インスタンスをキャッシュするからです。" +#. Tag: programlisting +#: batch.xml:12 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:20 -msgid "In this chapter we'll show you how to avoid this problem. First, however, if you are doing batch processing, it is absolutely critical that you enable the use of JDBC batching, if you intend to achieve reasonable performance. Set the JDBC batch size to a reasonable number (say, 10-50):" -msgstr "この章では、この問題を回避する方法を紹介します。 しかしバッチ処理をするなら、JDBCバッチが使用可能であることが非常に重要です。 そうでなければ手頃なパフォーマンスが得られません。 JDBCバッチサイズを手頃な数値(例えば、10から50)に設定してください:" +#. Tag: para +#: batch.xml:14 +#, no-c-format +msgid "" +"This would fall over with an OutOfMemoryException " +"somewhere around the 50 000th row. That's because Hibernate caches all the " +"newly inserted Customer instances in the session-level " +"cache." +msgstr "" +"これは50,000番目の行のあたりで OutOfMemoryException で失敗" +"するでしょう。 Hibernateがセッションレベルキャッシュで、 新しく挿入されたすべ" +"ての Customer インスタンスをキャッシュするからです。" -#: index.docbook:27 +#. Tag: para +#: batch.xml:20 +#, no-c-format +msgid "" +"In this chapter we'll show you how to avoid this problem. First, however, if " +"you are doing batch processing, it is absolutely critical that you enable " +"the use of JDBC batching, if you intend to achieve reasonable performance. " +"Set the JDBC batch size to a reasonable number (say, 10-50):" +msgstr "" +"この章では、この問題を回避する方法を紹介します。 しかしバッチ処理をするなら、" +"JDBCバッチが使用可能であることが非常に重要です。 そうでなければ手頃なパフォー" +"マンスが得られません。 JDBCバッチサイズを手頃な数値(例えば、10から50)に設定" +"してください:" + +#. Tag: programlisting +#: batch.xml:27 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:29 -msgid "Note that Hibernate disables insert batching at the JDBC level transparently if you use an identiy identifier generator." -msgstr "また二次キャッシュが全く効かないプロセスで、 このような作業をしたいと思うかもしれません:" +#. Tag: para +#: batch.xml:29 +#, no-c-format +msgid "" +"Note that Hibernate disables insert batching at the JDBC level transparently " +"if you use an identiy identifier generator." +msgstr "" +"Note that Hibernate disables insert batching at the JDBC level transparently " +"if you use an identiy identifier generator." -#: index.docbook:34 -msgid "You also might like to do this kind of work in a process where interaction with the second-level cache is completely disabled:" -msgstr "" +#. Tag: para +#: batch.xml:34 +#, no-c-format +msgid "" +"You also might like to do this kind of work in a process where interaction " +"with the second-level cache is completely disabled:" +msgstr "" +"また二次キャッシュが全く効かないプロセスで、 このような作業をしたいと思うかも" +"しれません:" -#: index.docbook:39 +#. Tag: programlisting +#: batch.xml:39 +#, no-c-format msgid "" -msgstr "しかし、これは絶対に必要というわけではありません。 なぜなら明示的に CacheMode を設定して、 二次キャッシュとの相互作用を無効にすることができるからです。" +msgstr "" -#: index.docbook:41 -msgid "However, this is not absolutely necessary, since we can explicitly set the CacheMode to disable interaction with the second-level cache." +#. Tag: para +#: batch.xml:41 +#, no-c-format +msgid "" +"However, this is not absolutely necessary, since we can explicitly set the " +"CacheMode to disable interaction with the second-level " +"cache." +msgstr "" +"しかし、これは絶対に必要というわけではありません。 なぜなら明示的に " +"CacheMode を設定して、 二次キャッシュとの相互作用を無効に" +"することができるからです。" + +#. Tag: title +#: batch.xml:47 +#, no-c-format +msgid "Batch inserts" msgstr "バッチ挿入" -#: index.docbook:47 -msgid "Batch inserts" -msgstr "新しいオブジェクトを永続化するとき、一次キャッシュのサイズを制限するため、 セッションを flush() して clear() しなければなりません。" - -#: index.docbook:49 -msgid "When making new objects persistent, you must flush() and then clear() the session regularly, to control the size of the first-level cache." -msgstr "" - "" - -#: index.docbook:55 +#. Tag: para +#: batch.xml:49 +#, no-c-format msgid "" - "" +"When making new objects persistent, you must flush() and " +"then clear() the session regularly, to control the size " +"of the first-level cache." +msgstr "" +"新しいオブジェクトを永続化するとき、一次キャッシュのサイズを制限するため、 " +"セッションを flush() して clear() しな" +"ければなりません。" + +#. Tag: programlisting +#: batch.xml:55 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: batch.xml:60 +#, no-c-format +msgid "Batch updates" msgstr "バッチ更新" -#: index.docbook:60 -msgid "Batch updates" -msgstr "データを復元したり更新したりするには同じアイディアを適用します。 それに加えて、データの行を多く返すクエリに対して有効な サーバーサイドのカーソルの利点を生かしたければ scroll() を使う必要があります。" - -#: index.docbook:62 -msgid "For retrieving and updating data the same ideas apply. In addition, you need to use scroll() to take advantage of server-side cursors for queries that return many rows of data." -msgstr "" - "" - -#: index.docbook:68 +#. Tag: para +#: batch.xml:62 +#, no-c-format msgid "" - "" +"For retrieving and updating data the same ideas apply. In addition, you need " +"to use scroll() to take advantage of server-side cursors " +"for queries that return many rows of data." +msgstr "" +"データを復元したり更新したりするには同じアイディアを適用します。 それに加え" +"て、データの行を多く返すクエリに対して有効な サーバーサイドのカーソルの利点を" +"生かしたければ scroll() を使う必要があります。" + +#. Tag: programlisting +#: batch.xml:68 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: batch.xml:73 +#, no-c-format +msgid "The StatelessSession interface" msgstr "StatelessSessionインターフェイス" -#: index.docbook:73 -msgid "The StatelessSession interface" -msgstr "また別の方法として、Hibernateはコマンド指向のAPIを用意しています。 これは分離オブジェクトの形で、 データベースとのデータストリームのやり取りに使うことができます。 StatelessSession は関連する永続コンテキストを持たず、 高レベルのライフサイクルセマンティクスの多くを提供しません。 特にステートレスセッションは、一時キャッシュを実装せず、 またどのような二次キャッシュやクエリキャッシュとも相互作用しません。 トランザクショナルなwrite-behindや自動ダーティチェックも実装しません。 ステートレスセッションを使って行われる操作が、 関連するインスタンスへカスケードされることは決してありません。 コレクションは、ステートレスセッションからは無視されます。 ステートレスセッションを通して行われる操作は、 Hibernateのイベントモデルやインターセプタの影響を受けません。 一時キャッシュを持たないため、 ステートレスセッションは別名を持つデータに上手く対処できません。 ステートレスセッションは低レベルの抽象化であり、JDBCに非常によく似ています。" - -#: index.docbook:74 -msgid "Alternatively, Hibernate provides a command-oriented API that may be used for streaming data to and from the database in the form of detached objects. A StatelessSession has no persistence context associated with it and does not provide many of the higher-level life cycle semantics. In particular, a stateless session does not implement a first-level cache nor interact with any second-level or query cache. It does not implement transactional write-behind or automatic dirty checking. Operations performed using a stateless session do not ever cascade to associated instances. Collections are ignored by a stateless session. Operations performed via a stateless session bypass Hibernate's event model and interceptors. Stateless sessions are vulnerable to data aliasing effects, due to the lack of a first-level cache. A stateless session is a lower-level abstraction, much closer to the underlying JDBC." -msgstr "" - "" - -#: index.docbook:89 +#. Tag: para +#: batch.xml:74 +#, no-c-format msgid "" - "" -msgstr "このコード例では、クエリが返す Customer インスタンスは即座に(セッションから)分離されることに注意してください。 これは、どのような永続コンテキストとも決して関連しません。" +"Alternatively, Hibernate provides a command-oriented API that may be used " +"for streaming data to and from the database in the form of detached objects. " +"A StatelessSession has no persistence context associated " +"with it and does not provide many of the higher-level life cycle semantics. " +"In particular, a stateless session does not implement a first-level cache " +"nor interact with any second-level or query cache. It does not implement " +"transactional write-behind or automatic dirty checking. Operations performed " +"using a stateless session do not ever cascade to associated instances. " +"Collections are ignored by a stateless session. Operations performed via a " +"stateless session bypass Hibernate's event model and interceptors. Stateless " +"sessions are vulnerable to data aliasing effects, due to the lack of a first-" +"level cache. A stateless session is a lower-level abstraction, much closer " +"to the underlying JDBC." +msgstr "" +"また別の方法として、Hibernateはコマンド指向のAPIを用意しています。 これは分離" +"オブジェクトの形で、 データベースとのデータストリームのやり取りに使うことがで" +"きます。 StatelessSession は関連する永続コンテキストを持た" +"ず、 高レベルのライフサイクルセマンティクスの多くを提供しません。 特にステー" +"トレスセッションは、一時キャッシュを実装せず、 またどのような二次キャッシュや" +"クエリキャッシュとも相互作用しません。 トランザクショナルなwrite-behindや自動" +"ダーティチェックも実装しません。 ステートレスセッションを使って行われる操作" +"が、 関連するインスタンスへカスケードされることは決してありません。 コレク" +"ションは、ステートレスセッションからは無視されます。 ステートレスセッションを" +"通して行われる操作は、 Hibernateのイベントモデルやインターセプタの影響を受け" +"ません。 一時キャッシュを持たないため、 ステートレスセッションは別名を持つ" +"データに上手く対処できません。 ステートレスセッションは低レベルの抽象化であ" +"り、JDBCに非常によく似ています。" -#: index.docbook:91 -msgid "Note that in this code example, the Customer instances returned by the query are immediately detached. They are never associated with any persistence context." -msgstr "StatelessSession インターフェイスで定義されている insert(), update(), delete() は、 低レベルの直接的なデータベース操作と考えられます。 結果として、SQLの INSERT, UPDATE, DELETE がそれぞれ即座に実行されます。 このように、これらは Session インターフェイスで定義されている save(), saveOrUpdate(), delete() とは非常に異なる意味を持ちます。" +#. Tag: programlisting +#: batch.xml:89 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:97 -msgid "The insert(), update() and delete() operations defined by the StatelessSession interface are considered to be direct database row-level operations, which result in immediate execution of a SQL INSERT, UPDATE or DELETE respectively. Thus, they have very different semantics to the save(), saveOrUpdate() and delete() operations defined by the Session interface." +#. Tag: para +#: batch.xml:91 +#, no-c-format +msgid "" +"Note that in this code example, the Customer instances " +"returned by the query are immediately detached. They are never associated " +"with any persistence context." +msgstr "" +"このコード例では、クエリが返す Customer インスタンスは即座" +"に(セッションから)分離されることに注意してください。 これは、どのような永続" +"コンテキストとも決して関連しません。" + +#. Tag: para +#: batch.xml:97 +#, no-c-format +msgid "" +"The insert(), update() and delete() " +"operations defined by the StatelessSession interface are " +"considered to be direct database row-level operations, which result in " +"immediate execution of a SQL INSERT, UPDATE or " +"DELETE respectively. Thus, they have very different " +"semantics to the save(), saveOrUpdate() and " +"delete() operations defined by the Session interface." +msgstr "" +"StatelessSession インターフェイスで定義されている " +"insert(), update(), delete() は、 低レベルの直接的なデータ" +"ベース操作と考えられます。 結果として、SQLの INSERT, UPDATE, " +"DELETE がそれぞれ即座に実行されます。 このように、これらは " +"Session インターフェイスで定義されている save(), " +"saveOrUpdate(), delete() とは非常に異なる意味を持ちます。" + +#. Tag: title +#: batch.xml:110 +#, no-c-format +msgid "DML-style operations" msgstr "DMLスタイルの操作" -#: index.docbook:110 -msgid "DML-style operations" -msgstr "すでに議論したように、自動的かつ透過的なオブジェクト/リレーショナルマッピングは、 オブジェクトの状態の管理であると考えられます。 これはメモリ内のオブジェクトの状態を利用できるということです。 そのため(SQLの データ操作言語 (DML) 文: INSERT, UPDATE, DELETE を使って)データベース内のデータを直接操作しても、 メモリ内の状態には影響を与えません。 しかしHibernateは、バルクSQLスタイルのDML文実行に対応するメソッドを用意しています。 これはHibernateクエリ言語(HQL) を通して実行されます。" +#. Tag: para +#: batch.xml:112 +#, no-c-format +msgid "" +"As already discussed, automatic and transparent object/relational mapping is " +"concerned with the management of object state. This implies that the object " +"state is available in memory, hence manipulating (using the SQL " +"Data Manipulation Language (DML) statements: " +"INSERT, UPDATE, DELETE) data directly in the database will not affect in-memory state. " +"However, Hibernate provides methods for bulk SQL-style DML statement " +"execution which are performed through the Hibernate Query Language (HQL)." +msgstr "" +"すでに議論したように、自動的かつ透過的なオブジェクト/リレーショナルマッピング" +"は、 オブジェクトの状態の管理であると考えられます。 これはメモリ内のオブジェ" +"クトの状態を利用できるということです。 そのため(SQLの データ操作言" +"語 (DML) 文: INSERT, UPDATE, DELETE を使って)データベース内のデータを直接操" +"作しても、 メモリ内の状態には影響を与えません。 しかしHibernateは、バルクSQL" +"スタイルのDML文実行に対応するメソッドを用意しています。 これはHibernateクエリ" +"言語(HQL) を通して実行されます。" -#: index.docbook:112 -msgid "As already discussed, automatic and transparent object/relational mapping is concerned with the management of object state. This implies that the object state is available in memory, hence manipulating (using the SQL Data Manipulation Language (DML) statements: INSERT, UPDATE, DELETE) data directly in the database will not affect in-memory state. However, Hibernate provides methods for bulk SQL-style DML statement execution which are performed through the Hibernate Query Language (HQL)." -msgstr "UPDATEDELETE 文の疑似構文は: ( UPDATE | DELETE ) FROM? エンティティ名 (WHERE 条件節)? です。 注意すべき点がいくつかあります:" +#. Tag: para +#: batch.xml:122 +#, no-c-format +msgid "" +"The pseudo-syntax for UPDATE and DELETE statements is: ( UPDATE | DELETE ) FROM? EntityName (WHERE " +"where_conditions)?. Some points to note:" +msgstr "" +"UPDATEDELETE 文の疑似構文は: " +"( UPDATE | DELETE ) FROM? エンティティ名 (WHERE 条件節)? " +"です。 注意すべき点がいくつかあります:" -#: index.docbook:122 -msgid "The pseudo-syntax for UPDATE and DELETE statements is: ( UPDATE | DELETE ) FROM? EntityName (WHERE where_conditions)?. Some points to note:" +#. Tag: para +#: batch.xml:130 +#, no-c-format +msgid "In the from-clause, the FROM keyword is optional" msgstr "from節において、FROMキーワードはオプションです。" -#: index.docbook:130 -msgid "In the from-clause, the FROM keyword is optional" -msgstr "from節では単一のエンティティ名だけが可能で、 任意で別名を付けることができます。 エンティティ名に別名が与えられると、どのようなプロパティ参照も、 その別名を使って修飾しなければなりません。 もしエンティティ名に別名が与えられなければ、 どのようなプロパティ参照も修飾してはなりません。" +#. Tag: para +#: batch.xml:135 +#, no-c-format +msgid "" +"There can only be a single entity named in the from-clause; it can " +"optionally be aliased. If the entity name is aliased, then any property " +"references must be qualified using that alias; if the entity name is not " +"aliased, then it is illegal for any property references to be qualified." +msgstr "" +"from節では単一のエンティティ名だけが可能で、 任意で別名を付けることができま" +"す。 エンティティ名に別名が与えられると、どのようなプロパティ参照も、 その別" +"名を使って修飾しなければなりません。 もしエンティティ名に別名が与えられなけれ" +"ば、 どのようなプロパティ参照も修飾してはなりません。" -#: index.docbook:135 -msgid "There can only be a single entity named in the from-clause; it can optionally be aliased. If the entity name is aliased, then any property references must be qualified using that alias; if the entity name is not aliased, then it is illegal for any property references to be qualified." -msgstr "(暗黙的であれ明示的であれ)結合 をバルクHQLクエリ内で指定することはできません。 サブクエリはwhere節で使うことができます サブクエリそのものは、結合を含められます。" +#. Tag: para +#: batch.xml:143 +#, no-c-format +msgid "" +"No joins (either implicit or " +"explicit) can be specified in a bulk HQL query. Sub-queries may be used in " +"the where-clause; the subqueries, themselves, may contain joins." +msgstr "" +"(暗黙的であれ明示的であれ)結合 をバルクHQLクエリ内で指定することはできません。 サブクエリはwhere節で使" +"うことができます サブクエリそのものは、結合を含められます。" -#: index.docbook:143 -msgid "No joins (either implicit or explicit) can be specified in a bulk HQL query. Sub-queries may be used in the where-clause; the subqueries, themselves, may contain joins." +#. Tag: para +#: batch.xml:150 +#, no-c-format +msgid "The where-clause is also optional." msgstr "where節はオプションです。" -#: index.docbook:150 -msgid "The where-clause is also optional." -msgstr "例として、HQLの UPDATE を実行するには、 Query.executeUpdate() メソッドを使ってください。 (このメソッドはおなじみのJDBC PreparedStatement.executeUpdate() から名付けられました): d" - -#: index.docbook:156 -msgid "As an example, to execute an HQL UPDATE, use the Query.executeUpdate() method (the method is named for those familiar with JDBC's PreparedStatement.executeUpdate()):" -msgstr "" - "" - -#: index.docbook:162 +#. Tag: para +#: batch.xml:156 +#, no-c-format msgid "" - "" -msgstr "HQLの UPDATE 文は、デフォルトでは、作用するエンティティの version や timestamp プロパティの値には影響しません。 これはEJB3の仕様にも受け継がれています。 しかし versioned update を使って、 versiontimestamp プロパティの値を強制的にリセットさせることができます。 これは UPDATE キーワードの後に VERSIONED キーワードを追加することで行えます。" - -#: index.docbook:164 -msgid "HQL UPDATE statements, by default do not effect the version or the timestamp property values for the affected entities; this is in keeping with the EJB3 specification. However, you can force Hibernate to properly reset the version or timestamp property values through the use of a versioned update. This is achieved by adding the VERSIONED keyword after the UPDATE keyword." +"As an example, to execute an HQL UPDATE, use the " +"Query.executeUpdate() method (the method is named for " +"those familiar with JDBC's PreparedStatement.executeUpdate()):" msgstr "" - "" +"例として、HQLの UPDATE を実行するには、 Query." +"executeUpdate() メソッドを使ってください。 (このメソッドはおなじみ" +"のJDBC PreparedStatement.executeUpdate() から名付けられま" +"した): d" -#: index.docbook:174 +#. Tag: programlisting +#: batch.xml:162 +#, no-c-format msgid "" - "" -msgstr "カスタムバージョン型(org.hibernate.usertype.UserVersionType) は update versioned 文と一緒に使えないことに注意してください。" - -#: index.docbook:176 -msgid "Note that custom version types (org.hibernate.usertype.UserVersionType) are not allowed in conjunction with a update versioned statement." -msgstr "HQLの DELETE を実行するには、 同じ Query.executeUpdate() メソッドを使ってください:" - -#: index.docbook:181 -msgid "To execute an HQL DELETE, use the same Query.executeUpdate() method:" +"" msgstr "" - "" -#: index.docbook:186 +#. Tag: para +#: batch.xml:164 +#, no-c-format msgid "" - "" -msgstr "Query.executeUpdate() メソッドが返す int の値は、この操作が影響を及ぼしたエンティティの数です。 これが影響するデータベース内の行数と、相互に関係するかどうかを考えてみてください。 HQLバルク操作は、結果として、実際のSQL文が複数実行されることになります。 例えばjoined-subclassです。 返される数は、その文によって影響された実際のエンティティの数を示します。 joined-subclassの例に戻ると、サブクラスの一つに対する削除は、 そのサブクラスがマッピングされたテーブルだけではなく、 「ルート」テーブルと継承階層をさらに下ったjoined-subclassのテーブルの削除になります。" +"HQL UPDATE statements, by default do not effect the version or the timestamp property values for the " +"affected entities; this is in keeping with the EJB3 specification. However, " +"you can force Hibernate to properly reset the version or " +"timestamp property values through the use of a " +"versioned update. This is achieved by adding the " +"VERSIONED keyword after the UPDATE " +"keyword." +msgstr "" +"HQLの UPDATE 文は、デフォルトでは、作用するエンティティの " +"versiontimestamp プロパティの値には" +"影響しません。 これはEJB3の仕様にも受け継がれています。 しかし " +"versioned update を使って、 version や " +"timestamp プロパティの値を強制的にリセットさせることができ" +"ます。 これは UPDATE キーワードの後に VERSIONED キーワードを追加することで行えます。" -#: index.docbook:188 -msgid "The int value returned by the Query.executeUpdate() method indicate the number of entities effected by the operation. Consider this may or may not correlate to the number of rows effected in the database. An HQL bulk operation might result in multiple actual SQL statements being executed, for joined-subclass, for example. The returned number indicates the number of actual entities affected by the statement. Going back to the example of joined-subclass, a delete against one of the subclasses may actually result in deletes against not just the table to which that subclass is mapped, but also the \"root\" table and potentially joined-subclass tables further down the inheritence hierarchy." -msgstr "INSERT 文の疑似構文は: INSERT INTO エンティティ名 プロパティリスト select文 です。 注意すべき点がいくつかあります:" +#. Tag: programlisting +#: batch.xml:174 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:199 -msgid "The pseudo-syntax for INSERT statements is: INSERT INTO EntityName properties_list select_statement. Some points to note:" -msgstr "INSERT INTO ... SELECT ... の形式だけがサポートされています。 INSERT INTO ... VALUES ... の形式はサポートされていません。" +#. Tag: para +#: batch.xml:176 +#, no-c-format +msgid "" +"Note that custom version types (org.hibernate.usertype." +"UserVersionType) are not allowed in conjunction with a " +"update versioned statement." +msgstr "" +"カスタムバージョン型(org.hibernate.usertype.UserVersionType) は update versioned 文と一緒に使えないことに注" +"意してください。" -#: index.docbook:207 -msgid "Only the INSERT INTO ... SELECT ... form is supported; not the INSERT INTO ... VALUES ... form." -msgstr "プロパティリストは、SQLの INSERT 文における カラムの仕様 に類似しています。 継承のマッピングに含まれるエンティティに対して、 クラスレベルで直接定義されたプロパティだけが、プロパティリストに使えます。 スーパークラスのプロパティは認められず、サブクラスのプロパティは効果がありません。 言い換えると INSERT 文は、本質的にポリモーフィックではありません。" +#. Tag: para +#: batch.xml:181 +#, no-c-format +msgid "" +"To execute an HQL DELETE, use the same Query." +"executeUpdate() method:" +msgstr "" +"HQLの DELETE を実行するには、 同じ Query." +"executeUpdate() メソッドを使ってください:" -#: index.docbook:210 -msgid "The properties_list is analogous to the column speficiation in the SQL INSERT statement. For entities involved in mapped inheritence, only properties directly defined on that given class-level can be used in the properties_list. Superclass properties are not allowed; and subclass properties do not make sense. In other words, INSERT statements are inherently non-polymorphic." -msgstr "select文の返り値の型がinsert文が期待する型とマッチしていれば、 そのselect文は妥当なHQL selectクエリとなりえます。 現在このチェックをデータベースへ任せるのではなく、クエリのコンパイル時にチェックします。 このことは、equalとは違い、 Hibernateの Type 間の equivalent に関する 問題を引き起こすことに注意してください。 これは org.hibernate.type.DataType として定義されたプロパティと、 org.hibernate.type.TimestampType として定義されたプロパティの間のミスマッチの問題を引き起こします。 データベースがそれらを区別できなくても、変換することができても、この問題は発生します。" +#. Tag: programlisting +#: batch.xml:186 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:220 -msgid "select_statement can be any valid HQL select query, with the caveat that the return types must match the types expected by the insert. Currently, this is checked during query compilation rather than allowing the check to relegate to the database. Note however that this might cause problems between Hibernate Types which are equivalent as opposed to equal. This might cause issues with mismatches between a property defined as a org.hibernate.type.DateType and a property defined as a org.hibernate.type.TimestampType, even though the database might not make a distinction or might be able to handle the conversion." -msgstr "idプロパティに対して、insert文には二つの選択肢があります。 プロパティリストで明示的にidプロパティを指定するか (この場合、対応するselect式から値が取られます)、 プロパティリストから除外するか (この場合、生成される値が使われます)のいずれかです。 後者の選択肢は、データベース内を操作するidジェネレータを使うときのみ、利用可能です。 この選択肢を採る場合、「インメモリ」型のジェネレータを使うと、構文解析時に例外が発生します。 この議論では、インデータベース型ジェネレータは org.hibernate.id.SequenceGenerator (とそのサブクラス)と、org.hibernate.id.PostInsertIdentifierGenerator の実装であると考えています。 ここで最も注意すべき例外は、org.hibernate.id.TableHiLoGenerator です。 値を取得する選択可能な方法がないため、このジェネレータを使うことはできません。" +#. Tag: para +#: batch.xml:188 +#, no-c-format +msgid "" +"The int value returned by the Query.executeUpdate" +"() method indicate the number of entities effected by the " +"operation. Consider this may or may not correlate to the number of rows " +"effected in the database. An HQL bulk operation might result in multiple " +"actual SQL statements being executed, for joined-subclass, for example. The " +"returned number indicates the number of actual entities affected by the " +"statement. Going back to the example of joined-subclass, a delete against " +"one of the subclasses may actually result in deletes against not just the " +"table to which that subclass is mapped, but also the \"root\" table and " +"potentially joined-subclass tables further down the inheritence hierarchy." +msgstr "" +"Query.executeUpdate() メソッドが返す int の値は、この操作が影響を及ぼしたエンティティの数です。 これが影響す" +"るデータベース内の行数と、相互に関係するかどうかを考えてみてください。 HQLバ" +"ルク操作は、結果として、実際のSQL文が複数実行されることになります。 例えば" +"joined-subclassです。 返される数は、その文によって影響された実際のエンティ" +"ティの数を示します。 joined-subclassの例に戻ると、サブクラスの一つに対する削" +"除は、 そのサブクラスがマッピングされたテーブルだけではなく、 「ルート」テー" +"ブルと継承階層をさらに下ったjoined-subclassのテーブルの削除になります。" -#: index.docbook:232 -msgid "For the id property, the insert statement gives you two options. You can either explicitly specify the id property in the properties_list (in which case its value is taken from the corresponding select expression) or omit it from the properties_list (in which case a generated value is used). This later option is only available when using id generators that operate in the database; attempting to use this option with any \"in memory\" type generators will cause an exception during parsing. Note that for the purposes of this discussion, in-database generators are considered to be org.hibernate.id.SequenceGenerator (and its subclasses) and any implementors of org.hibernate.id.PostInsertIdentifierGenerator. The most notable exception here is org.hibernate.id.TableHiLoGenerator, which cannot be used because it does not expose a selectable way to get its values." -msgstr "versiontimestamp としてマッピングされるプロパティに対して、 insert文には二つの選択肢があります。 プロパティリストで明示的にプロパティを指定するか (この場合、対応するselect式から値が取られます)、 プロパティリストから除外するか (この場合、org.hibernate.type.VersionType で定義された シード値 が使われます)のいずれかです。" +#. Tag: para +#: batch.xml:199 +#, no-c-format +msgid "" +"The pseudo-syntax for INSERT statements is: " +"INSERT INTO EntityName properties_list select_statement. " +"Some points to note:" +msgstr "" +"INSERT 文の疑似構文は: INSERT INTO エンティティ" +"名 プロパティリスト select文 です。 注意すべき点がいくつかありま" +"す:" -#: index.docbook:247 -msgid "For properties mapped as either version or timestamp, the insert statement gives you two options. You can either specify the property in the properties_list (in which case its value is taken from the corresponding select expressions) or omit it from the properties_list (in which case the seed value defined by the org.hibernate.type.VersionType is used)." +#. Tag: para +#: batch.xml:207 +#, no-c-format +msgid "" +"Only the INSERT INTO ... SELECT ... form is supported; not the INSERT " +"INTO ... VALUES ... form." +msgstr "" +"INSERT INTO ... SELECT ... の形式だけがサポートされています。 INSERT " +"INTO ... VALUES ... の形式はサポートされていません。" + +#. Tag: para +#: batch.xml:210 +#, no-c-format +msgid "" +"The properties_list is analogous to the column speficiation in the SQL INSERT statement. For entities " +"involved in mapped inheritence, only properties directly defined on that " +"given class-level can be used in the properties_list. Superclass properties " +"are not allowed; and subclass properties do not make sense. In other words, " +"INSERT statements are inherently non-polymorphic." +msgstr "" +"プロパティリストは、SQLの INSERT 文における カラ" +"ムの仕様 に類似しています。 継承のマッピングに含まれるエンティティ" +"に対して、 クラスレベルで直接定義されたプロパティだけが、プロパティリストに使" +"えます。 スーパークラスのプロパティは認められず、サブクラスのプロパティは効果" +"がありません。 言い換えると INSERT 文は、本質的にポリモー" +"フィックではありません。" + +#. Tag: para +#: batch.xml:220 +#, no-c-format +msgid "" +"select_statement can be any valid HQL select query, with the caveat that the " +"return types must match the types expected by the insert. Currently, this is " +"checked during query compilation rather than allowing the check to relegate " +"to the database. Note however that this might cause problems between " +"Hibernate Types which are equivalent " +"as opposed to equal. This might cause issues with " +"mismatches between a property defined as a org.hibernate.type." +"DateType and a property defined as a org.hibernate.type." +"TimestampType, even though the database might not make a " +"distinction or might be able to handle the conversion." +msgstr "" +"select文の返り値の型がinsert文が期待する型とマッチしていれば、 そのselect文は" +"妥当なHQL selectクエリとなりえます。 現在このチェックをデータベースへ任せるの" +"ではなく、クエリのコンパイル時にチェックします。 このことは、" +"equalとは違い、 Hibernateの Type 間" +"の equivalent に関する 問題を引き起こすことに注意してく" +"ださい。 これは org.hibernate.type.DataType として定義され" +"たプロパティと、 org.hibernate.type.TimestampType として定" +"義されたプロパティの間のミスマッチの問題を引き起こします。 データベースがそれ" +"らを区別できなくても、変換することができても、この問題は発生します。" + +#. Tag: para +#: batch.xml:232 +#, no-c-format +msgid "" +"For the id property, the insert statement gives you two options. You can " +"either explicitly specify the id property in the properties_list (in which " +"case its value is taken from the corresponding select expression) or omit it " +"from the properties_list (in which case a generated value is used). This " +"later option is only available when using id generators that operate in the " +"database; attempting to use this option with any \"in memory\" type " +"generators will cause an exception during parsing. Note that for the " +"purposes of this discussion, in-database generators are considered to be " +"org.hibernate.id.SequenceGenerator (and its subclasses) " +"and any implementors of org.hibernate.id." +"PostInsertIdentifierGenerator. The most notable exception here is " +"org.hibernate.id.TableHiLoGenerator, which cannot be used " +"because it does not expose a selectable way to get its values." +msgstr "" +"idプロパティに対して、insert文には二つの選択肢があります。 プロパティリストで" +"明示的にidプロパティを指定するか (この場合、対応するselect式から値が取られま" +"す)、 プロパティリストから除外するか (この場合、生成される値が使われます)" +"のいずれかです。 後者の選択肢は、データベース内を操作するidジェネレータを使う" +"ときのみ、利用可能です。 この選択肢を採る場合、「インメモリ」型のジェネレータ" +"を使うと、構文解析時に例外が発生します。 この議論では、インデータベース型ジェ" +"ネレータは org.hibernate.id.SequenceGenerator (とそのサブ" +"クラス)と、org.hibernate.id.PostInsertIdentifierGenerator の実装であると考えています。 ここで最も注意すべき例外は、" +"org.hibernate.id.TableHiLoGenerator です。 値を取得する選" +"択可能な方法がないため、このジェネレータを使うことはできません。" + +#. Tag: para +#: batch.xml:247 +#, no-c-format +msgid "" +"For properties mapped as either version or " +"timestamp, the insert statement gives you two options. " +"You can either specify the property in the properties_list (in which case " +"its value is taken from the corresponding select expressions) or omit it " +"from the properties_list (in which case the seed value " +"defined by the org.hibernate.type.VersionType is used)." +msgstr "" +"versiontimestamp としてマッピングさ" +"れるプロパティに対して、 insert文には二つの選択肢があります。 プロパティリス" +"トで明示的にプロパティを指定するか (この場合、対応するselect式から値が取られ" +"ます)、 プロパティリストから除外するか (この場合、org.hibernate." +"type.VersionType で定義された シード値 が使われ" +"ます)のいずれかです。" + +#. Tag: para +#: batch.xml:257 +#, no-c-format +msgid "An example HQL INSERT statement execution:" msgstr "HQLの INSERT 文の実行例です:" -#: index.docbook:257 -msgid "An example HQL INSERT statement execution:" -msgstr "" - "" - -#: index.docbook:261 +#. Tag: programlisting +#: batch.xml:261 +#, no-c-format msgid "" - "" +"" msgstr "" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" - diff --git a/documentation/manual/translations/ja-JP/content/best_practices.po b/documentation/manual/translations/ja-JP/content/best_practices.po index c215f7be20..6d4f556b27 100644 --- a/documentation/manual/translations/ja-JP/content/best_practices.po +++ b/documentation/manual/translations/ja-JP/content/best_practices.po @@ -1,168 +1,447 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: best_practices.xml:5 +#, no-c-format msgid "Best Practices" msgstr "ベストプラクティス" -#: index.docbook:9 -msgid "Write fine-grained classes and map them using <component>." -msgstr "クラスは細かい粒度で書き <component> でマッピングしましょう。" +#. Tag: term +#: best_practices.xml:9 +#, no-c-format +msgid "" +"Write fine-grained classes and map them using <component>." +msgstr "" +"クラスは細かい粒度で書き <component> でマッピングし" +"ましょう。" -#: index.docbook:11 -msgid "Use an Address class to encapsulate street, suburb, state, postcode. This encourages code reuse and simplifies refactoring." -msgstr "street(通り), suburb (都市), state(州), postcode (郵便番号)をカプセル化する Address(住所)クラスを使いましょう。 そうすればコードが再利用しやすくなり、リファクタリングも簡単になります。" +#. Tag: para +#: best_practices.xml:11 +#, no-c-format +msgid "" +"Use an Address class to encapsulate street, suburb, state, " +"postcode. This encourages code reuse and simplifies " +"refactoring." +msgstr "" +"street(通り), suburb (都市), " +"state(州), postcode (郵便番号)をカ" +"プセル化する Address(住所)クラスを使いましょう。 そうす" +"ればコードが再利用しやすくなり、リファクタリングも簡単になります。" -#: index.docbook:19 +#. Tag: term +#: best_practices.xml:19 +#, no-c-format msgid "Declare identifier properties on persistent classes." msgstr "永続クラスには識別子プロパティを定義しましょう。" -#: index.docbook:21 -msgid "Hibernate makes identifier properties optional. There are all sorts of reasons why you should use them. We recommend that identifiers be 'synthetic' (generated, with no business meaning)." -msgstr "Hibernateでは識別子プロパティはオプションですが、 使用すべき理由がたくさんあります。 識別子は「人工的」(生成された、業務的な意味を持たない) なものにすることをおすすめします。" +#. Tag: para +#: best_practices.xml:21 +#, no-c-format +msgid "" +"Hibernate makes identifier properties optional. There are all sorts of " +"reasons why you should use them. We recommend that identifiers be " +"'synthetic' (generated, with no business meaning)." +msgstr "" +"Hibernateでは識別子プロパティはオプションですが、 使用すべき理由がたくさんあ" +"ります。 識別子は「人工的」(生成された、業務的な意味を持たない) なものにす" +"ることをおすすめします。" -#: index.docbook:29 +#. Tag: term +#: best_practices.xml:29 +#, no-c-format msgid "Identify natural keys." msgstr "自然キーを見つけましょう。" -#: index.docbook:31 -msgid "Identify natural keys for all entities, and map them using <natural-id>. Implement equals() and hashCode() to compare the properties that make up the natural key." -msgstr "すべてのエンティティに対して自然キーを見つけて、 <natural-id> でマッピングしましょう。 自然キーを構成するプロパティを比較するために、 equals()hashCode() を実装しましょう。" +#. Tag: para +#: best_practices.xml:31 +#, no-c-format +msgid "" +"Identify natural keys for all entities, and map them using <" +"natural-id>. Implement equals() and " +"hashCode() to compare the properties that make up the " +"natural key." +msgstr "" +"すべてのエンティティに対して自然キーを見つけて、 <natural-id>" +" でマッピングしましょう。 自然キーを構成するプロパティを比較するた" +"めに、 equals()hashCode() を実装し" +"ましょう。" -#: index.docbook:39 +#. Tag: term +#: best_practices.xml:39 +#, no-c-format msgid "Place each class mapping in its own file." msgstr "クラスのマッピングはそれぞれのクラス専用のファイルに書きましょう。" -#: index.docbook:41 -msgid "Don't use a single monolithic mapping document. Map com.eg.Foo in the file com/eg/Foo.hbm.xml. This makes particularly good sense in a team environment." -msgstr "単一の巨大なマッピングドキュメントを使用しないでください。 com.eg.Foo クラスなら com/eg/Foo.hbm.xml ファイルにマッピングしましょう。 このことは、特にチームでの開発に意味があります。" +#. Tag: para +#: best_practices.xml:41 +#, no-c-format +msgid "" +"Don't use a single monolithic mapping document. Map com.eg.Foo in the file com/eg/Foo.hbm.xml. This makes " +"particularly good sense in a team environment." +msgstr "" +"単一の巨大なマッピングドキュメントを使用しないでください。 com.eg." +"Foo クラスなら com/eg/Foo.hbm.xml ファイルにマッ" +"ピングしましょう。 このことは、特にチームでの開発に意味があります。" -#: index.docbook:49 +#. Tag: term +#: best_practices.xml:49 +#, no-c-format msgid "Load mappings as resources." msgstr "リソースとしてマッピングをロードしましょう。" -#: index.docbook:51 +#. Tag: para +#: best_practices.xml:51 +#, no-c-format msgid "Deploy the mappings along with the classes they map." msgstr "マッピングを、それらがマッピングするするクラスと一緒に配置しましょう。" -#: index.docbook:57 +#. Tag: term +#: best_practices.xml:57 +#, no-c-format msgid "Consider externalising query strings." msgstr "クエリ文字列を外部に置くことを考えましょう" -#: index.docbook:59 -msgid "This is a good practice if your queries call non-ANSI-standard SQL functions. Externalising the query strings to mapping files will make the application more portable." -msgstr "クエリがANSI標準でないSQL関数を呼んでいるなら、これはよいプラクティスです。 クエリ文字列をマッピングファイルへ外出しすればアプリケーションがポータブルになります。" +#. Tag: para +#: best_practices.xml:59 +#, no-c-format +msgid "" +"This is a good practice if your queries call non-ANSI-standard SQL " +"functions. Externalising the query strings to mapping files will make the " +"application more portable." +msgstr "" +"クエリがANSI標準でないSQL関数を呼んでいるなら、これはよいプラクティスです。 " +"クエリ文字列をマッピングファイルへ外出しすればアプリケーションがポータブルに" +"なります。" -#: index.docbook:67 +#. Tag: term +#: best_practices.xml:67 +#, no-c-format msgid "Use bind variables." msgstr "バインド変数を使いましょう。" -#: index.docbook:69 -msgid "As in JDBC, always replace non-constant values by \"?\". Never use string manipulation to bind a non-constant value in a query! Even better, consider using named parameters in queries." -msgstr "JDBCの場合と同じように、定数でない値は必ず\"?\"で置き換えましょう。 定数でない値をバインドするために、クエリで文字列操作を使ってはいけません。 名前付きのパラメータを使うようにするとさらに良いです。" +#. Tag: para +#: best_practices.xml:69 +#, no-c-format +msgid "" +"As in JDBC, always replace non-constant values by \"?\". Never use string " +"manipulation to bind a non-constant value in a query! Even better, consider " +"using named parameters in queries." +msgstr "" +"JDBCの場合と同じように、定数でない値は必ず\"?\"で置き換えましょう。 定数でな" +"い値をバインドするために、クエリで文字列操作を使ってはいけません。 名前付きの" +"パラメータを使うようにするとさらに良いです。" -#: index.docbook:77 +#. Tag: term +#: best_practices.xml:77 +#, no-c-format msgid "Don't manage your own JDBC connections." msgstr "JDBCコネクションを管理してはいけません。" -#: index.docbook:79 -msgid "Hibernate lets the application manage JDBC connections. This approach should be considered a last-resort. If you can't use the built-in connections providers, consider providing your own implementation of org.hibernate.connection.ConnectionProvider." -msgstr "HibernateではアプリケーションがJDBCコネクションを管理することが許されています。 しかしこれは最終手段だと思ってください。 組み込みのコネクションプロバイダを使うことができなければ、 org.hibernate.connection.ConnectionProvider を実装することを考えてください。" +#. Tag: para +#: best_practices.xml:79 +#, no-c-format +msgid "" +"Hibernate lets the application manage JDBC connections. This approach should " +"be considered a last-resort. If you can't use the built-in connections " +"providers, consider providing your own implementation of org." +"hibernate.connection.ConnectionProvider." +msgstr "" +"HibernateではアプリケーションがJDBCコネクションを管理することが許されていま" +"す。 しかしこれは最終手段だと思ってください。 組み込みのコネクションプロバイ" +"ダを使うことができなければ、 org.hibernate.connection." +"ConnectionProvider を実装することを考えてください。" -#: index.docbook:87 +#. Tag: term +#: best_practices.xml:87 +#, no-c-format msgid "Consider using a custom type." msgstr "カスタム型の使用を考えましょう。" -#: index.docbook:89 -msgid "Suppose you have a Java type, say from some library, that needs to be persisted but doesn't provide the accessors needed to map it as a component. You should consider implementing org.hibernate.UserType. This approach frees the application code from implementing transformations to / from a Hibernate type." -msgstr "あるライブラリから持ってきたJava型を永続化する必要があるとしましょう。 しかしその型には、コンポーネントとしてマッピングするために必要なアクセサがないとします。 このような場合は org.hibernate.UserType の実装を考えるべきです。 そうすればHibernate型との実装変換を心配せずにアプリケーションのコードを扱えます。" +#. Tag: para +#: best_practices.xml:89 +#, no-c-format +msgid "" +"Suppose you have a Java type, say from some library, that needs to be " +"persisted but doesn't provide the accessors needed to map it as a component. " +"You should consider implementing org.hibernate.UserType. " +"This approach frees the application code from implementing transformations " +"to / from a Hibernate type." +msgstr "" +"あるライブラリから持ってきたJava型を永続化する必要があるとしましょう。 しかし" +"その型には、コンポーネントとしてマッピングするために必要なアクセサがないとし" +"ます。 このような場合は org.hibernate.UserType の実装を考" +"えるべきです。 そうすればHibernate型との実装変換を心配せずにアプリケーション" +"のコードを扱えます。" -#: index.docbook:98 +#. Tag: term +#: best_practices.xml:98 +#, no-c-format msgid "Use hand-coded JDBC in bottlenecks." msgstr "ボトルネックを解消するにはJDBCをハンドコードしましょう。" -#: index.docbook:100 -msgid "In performance-critical areas of the system, some kinds of operations might benefit from direct JDBC. But please, wait until you know something is a bottleneck. And don't assume that direct JDBC is necessarily faster. If you need to use direct JDBC, it might be worth opening a Hibernate Session and using that JDBC connection. That way you can still use the same transaction strategy and underlying connection provider." -msgstr "システムのパフォーマンスクリティカルな領域では、 ある種の操作にJDBCを直接使うと良いかもしれません。 しかし何がボトルネックになっているか はっきりする までは待ってください。 またJDBCを直接使うからといって、必ずしも速くなるとは限らないことも理解してください。 JDBCを直接使う必要があれば、Hibernateの Session をオープンして、 JDBCコネクションを使うと良いかもしれません。 依然として同じトランザクション戦略とコネクションプロバイダが使えるからです。" +#. Tag: para +#: best_practices.xml:100 +#, no-c-format +msgid "" +"In performance-critical areas of the system, some kinds of operations might " +"benefit from direct JDBC. But please, wait until you know something is a bottleneck. And don't assume that direct JDBC is " +"necessarily faster. If you need to use direct JDBC, it might be worth " +"opening a Hibernate Session and using that JDBC " +"connection. That way you can still use the same transaction strategy and " +"underlying connection provider." +msgstr "" +"システムのパフォーマンスクリティカルな領域では、 ある種の操作にJDBCを直接使う" +"と良いかもしれません。 しかし何がボトルネックになっているか はっき" +"りする までは待ってください。 またJDBCを直接使うからといって、必ず" +"しも速くなるとは限らないことも理解してください。 JDBCを直接使う必要があれば、" +"Hibernateの Session をオープンして、 JDBCコネクションを使" +"うと良いかもしれません。 依然として同じトランザクション戦略とコネクションプロ" +"バイダが使えるからです。" -#: index.docbook:110 +#. Tag: term +#: best_practices.xml:110 +#, no-c-format msgid "Understand Session flushing." msgstr "Session のフラッシュを理解しましょう。" -#: index.docbook:112 -msgid "From time to time the Session synchronizes its persistent state with the database. Performance will be affected if this process occurs too often. You may sometimes minimize unnecessary flushing by disabling automatic flushing or even by changing the order of queries and other operations within a particular transaction." -msgstr "Sessionが永続状態をデータベースと同期させることがときどきあります。 しかしこれがあまりに頻繁に起こるようだと、パフォーマンスに影響が出てきます。 自動フラッシュを無効にしたり、特定のトランザクションのクエリや操作の順番を変更することで、 不必要なフラッシュを最小限にできます。" +#. Tag: para +#: best_practices.xml:112 +#, no-c-format +msgid "" +"From time to time the Session synchronizes its persistent state with the " +"database. Performance will be affected if this process occurs too often. You " +"may sometimes minimize unnecessary flushing by disabling automatic flushing " +"or even by changing the order of queries and other operations within a " +"particular transaction." +msgstr "" +"Sessionが永続状態をデータベースと同期させることがときどきあります。 しかしこ" +"れがあまりに頻繁に起こるようだと、パフォーマンスに影響が出てきます。 自動フ" +"ラッシュを無効にしたり、特定のトランザクションのクエリや操作の順番を変更する" +"ことで、 不必要なフラッシュを最小限にできます。" -#: index.docbook:121 +#. Tag: term +#: best_practices.xml:121 +#, no-c-format msgid "In a three tiered architecture, consider using detached objects." msgstr "3層アーキテクチャでは分離オブジェクトの使用を考えましょう。" -#: index.docbook:123 -msgid "When using a servlet / session bean architecture, you could pass persistent objects loaded in the session bean to and from the servlet / JSP layer. Use a new session to service each request. Use Session.merge() or Session.saveOrUpdate() to synchronize objects with the database." -msgstr "サーブレット / セッションビーンアーキテクチャを使うとき、 サーブレット層 / JSP層間でセッションビーンでロードした永続オブジェクトをやり取りできます。 その際リクエストごとに新しいSessionを使ってください。 また Session.merge()Session.saveOrUpdate() を使って、オブジェクトとデータベースを同期させてください。" +#. Tag: para +#: best_practices.xml:123 +#, no-c-format +msgid "" +"When using a servlet / session bean architecture, you could pass persistent " +"objects loaded in the session bean to and from the servlet / JSP layer. Use " +"a new session to service each request. Use Session.merge() or Session.saveOrUpdate() to synchronize objects " +"with the database." +msgstr "" +"サーブレット / セッションビーンアーキテクチャを使うとき、 サーブレット層 / " +"JSP層間でセッションビーンでロードした永続オブジェクトをやり取りできます。 そ" +"の際リクエストごとに新しいSessionを使ってください。 また Session." +"merge()Session.saveOrUpdate() を使って、オブ" +"ジェクトとデータベースを同期させてください。" -#: index.docbook:132 +#. Tag: term +#: best_practices.xml:132 +#, no-c-format msgid "In a two tiered architecture, consider using long persistence contexts." msgstr "2層アーキテクチャでは長い永続コンテキストの使用を考えましょう。" -#: index.docbook:134 -msgid "Database Transactions have to be as short as possible for best scalability. However, it is often neccessary to implement long running application transactions, a single unit-of-work from the point of view of a user. An application transaction might span several client request/response cycles. It is common to use detached objects to implement application transactions. An alternative, extremely appropriate in two tiered architecture, is to maintain a single open persistence contact (session) for the whole life cycle of the application transaction and simply disconnect from the JDBC connection at the end of each request and reconnect at the beginning of the subsequent request. Never share a single session across more than one application transaction, or you will be working with stale data." -msgstr "最高のスケーラビリティを得るには、 データベーストランザクションをできるだけ短くしなければなりません。 しかし長い間実行する アプリケーショントランザクション の実装が必要なことはしばしばです。 これはユーザの視点からは1個の作業単位(unit of work)になります。 アプリケーショントランザクションはいくつかのクライアントのリクエスト/レスポンスサイクルにまたがります。 アプリケーショントランザクションの実装に分離オブジェクトを使うのは一般的です。 そうでなければ、2層アーキテクチャの場合は特に適切なことですが、 アプリケーショントランザクションのライフサイクル全体に対して 単一のオープンな永続化コンテキスト(セッション)を維持してください。 そして単純にリクエストの最後にJDBCコネクションから切断し、 次のリクエストの最初に再接続します。 決して複数のアプリケーショントランザクションユースケースに渡って 1個のSessionを使い回さないでください。 そうでなければ、古いデータで作業することになります。" +#. Tag: para +#: best_practices.xml:134 +#, no-c-format +msgid "" +"Database Transactions have to be as short as possible for best scalability. " +"However, it is often neccessary to implement long running " +"application transactions, a single unit-of-work from " +"the point of view of a user. An application transaction might span several " +"client request/response cycles. It is common to use detached objects to " +"implement application transactions. An alternative, extremely appropriate in " +"two tiered architecture, is to maintain a single open persistence contact " +"(session) for the whole life cycle of the application transaction and simply " +"disconnect from the JDBC connection at the end of each request and reconnect " +"at the beginning of the subsequent request. Never share a single session " +"across more than one application transaction, or you will be working with " +"stale data." +msgstr "" +"最高のスケーラビリティを得るには、 データベーストランザクションをできるだけ短" +"くしなければなりません。 しかし長い間実行する アプリケーショントラ" +"ンザクション の実装が必要なことはしばしばです。 これはユーザの視点" +"からは1個の作業単位(unit of work)になります。 アプリケーショントランザク" +"ションはいくつかのクライアントのリクエスト/レスポンスサイクルにまたがりま" +"す。 アプリケーショントランザクションの実装に分離オブジェクトを使うのは一般的" +"です。 そうでなければ、2層アーキテクチャの場合は特に適切なことですが、 アプリ" +"ケーショントランザクションのライフサイクル全体に対して 単一のオープンな永続化" +"コンテキスト(セッション)を維持してください。 そして単純にリクエストの最後に" +"JDBCコネクションから切断し、 次のリクエストの最初に再接続します。 決して複数" +"のアプリケーショントランザクションユースケースに渡って 1個のSessionを使い回さ" +"ないでください。 そうでなければ、古いデータで作業することになります。" -#: index.docbook:148 +#. Tag: term +#: best_practices.xml:148 +#, no-c-format msgid "Don't treat exceptions as recoverable." msgstr "例外を復帰可能なものとして扱ってはいけません。" -#: index.docbook:150 -msgid "This is more of a necessary practice than a \"best\" practice. When an exception occurs, roll back the Transaction and close the Session. If you don't, Hibernate can't guarantee that in-memory state accurately represents persistent state. As a special case of this, do not use Session.load() to determine if an instance with the given identifier exists on the database; use Session.get() or a query instead." -msgstr "これは「ベスト」プラクティス以上の、必須のプラクティスです。 例外が発生したときは Transaction をロールバックして、 Session をクローズしてください。 そうしないとHibernateはメモリの状態が永続状態を正確に表現していることを保証できません。 この特別な場合として、与えられた識別子を持つインスタンスがデータベースに存在するかどうかを判定するために、 Session.load() を使うことはやめてください。 その代わりに Session.get() かクエリを使ってください。" +#. Tag: para +#: best_practices.xml:150 +#, no-c-format +msgid "" +"This is more of a necessary practice than a \"best\" practice. When an " +"exception occurs, roll back the Transaction and close the " +"Session. If you don't, Hibernate can't guarantee that in-" +"memory state accurately represents persistent state. As a special case of " +"this, do not use Session.load() to determine if an " +"instance with the given identifier exists on the database; use " +"Session.get() or a query instead." +msgstr "" +"これは「ベスト」プラクティス以上の、必須のプラクティスです。 例外が発生したと" +"きは Transaction をロールバックして、 Session をクローズしてください。 そうしないとHibernateはメモリの状態が永続状" +"態を正確に表現していることを保証できません。 この特別な場合として、与えられた" +"識別子を持つインスタンスがデータベースに存在するかどうかを判定するために、 " +"Session.load() を使うことはやめてください。 その代わりに " +"Session.get() かクエリを使ってください。" -#: index.docbook:160 +#. Tag: term +#: best_practices.xml:160 +#, no-c-format msgid "Prefer lazy fetching for associations." msgstr "関連にはなるべく遅延フェッチを使いましょう。" -#: index.docbook:162 -msgid "Use eager fetching sparingly. Use proxies and lazy collections for most associations to classes that are not likely to be completely held in the second-level cache. For associations to cached classes, where there is an a extremely high probability of a cache hit, explicitly disable eager fetching using lazy=\"false\". When an join fetching is appropriate to a particular use case, use a query with a left join fetch." -msgstr "即時フェッチは控えめにしましょう。 二次キャッシュには完全に保持されないようなクラスの関連には、 プロキシと遅延コレクションを使ってください。 キャッシュされるクラスの関連、つまりキャッシュがヒットする可能性が非常に高い関連は、 lazy=\"false\" で積極的なフェッチを明示的に無効にしてください。 結合フェッチが適切な特定のユースケースには、 クエリで left join fetch を使ってください。" +#. Tag: para +#: best_practices.xml:162 +#, no-c-format +msgid "" +"Use eager fetching sparingly. Use proxies and lazy collections for most " +"associations to classes that are not likely to be completely held in the " +"second-level cache. For associations to cached classes, where there is an a " +"extremely high probability of a cache hit, explicitly disable eager fetching " +"using lazy=\"false\". When an join fetching is " +"appropriate to a particular use case, use a query with a left join " +"fetch." +msgstr "" +"即時フェッチは控えめにしましょう。 二次キャッシュには完全に保持されないような" +"クラスの関連には、 プロキシと遅延コレクションを使ってください。 キャッシュさ" +"れるクラスの関連、つまりキャッシュがヒットする可能性が非常に高い関連は、 " +"lazy=\"false\" で積極的なフェッチを明示的に無効にしてくだ" +"さい。 結合フェッチが適切な特定のユースケースには、 クエリで left " +"join fetch を使ってください。" -#: index.docbook:172 -msgid "Use the open session in view pattern, or a disciplined assembly phase to avoid problems with unfetched data." -msgstr "フェッチされていないデータに関わる問題を避けるために、 ビューの中でオープンセッションを使う(open session in view) パターンか、統制された 組み立てフェーズ(assembly phase) を使いましょう。" +#. Tag: term +#: best_practices.xml:172 +#, no-c-format +msgid "" +"Use the open session in view pattern, or a disciplined " +"assembly phase to avoid problems with unfetched data." +msgstr "" +"フェッチされていないデータに関わる問題を避けるために、 ビューの中で" +"オープンセッションを使う(open session in view) パターンか、統制さ" +"れた 組み立てフェーズ(assembly phase) を使いましょう。" -#: index.docbook:177 -msgid "Hibernate frees the developer from writing tedious Data Transfer Objects (DTO). In a traditional EJB architecture, DTOs serve dual purposes: first, they work around the problem that entity beans are not serializable; second, they implicitly define an assembly phase where all data to be used by the view is fetched and marshalled into the DTOs before returning control to the presentation tier. Hibernate eliminates the first purpose. However, you will still need an assembly phase (think of your business methods as having a strict contract with the presentation tier about what data is available in the detached objects) unless you are prepared to hold the persistence context (the session) open across the view rendering process. This is not a limitation of Hibernate! It is a fundamental requirement of safe transactional data access." -msgstr "Hibernateは Data Transfer Objects (DTO)を書く退屈な作業から開発者を解放します。 伝統的なEJBアーキテクチャではDTOは二つ目的があります: 1つ目は、エンティティビーンがシリアライズされない問題への対策です。 2つ目は、プレゼンテーション層に制御が戻る前に、 ビューに使われるすべてのデータがフェッチされて、DTOに復元されるような組み立てフェーズを暗黙的に定義します。 Hibernateでは1つ目の目的が不要になります。 しかしビューのレンダリング処理の間、永続コンテキスト(セッション)をオープンにしたままにしなければ、 組み立てフェーズはまだ必要です(分離オブジェクトの中のどのデータが利用可能かについて、 プレゼンテーション層と厳密な取り決めをしているビジネスメソッドを考えてみてください)。 これはHibernate側の問題ではありません。 トランザクション内で安全にデータアクセスするための基本的な要件です。" +#. Tag: para +#: best_practices.xml:177 +#, no-c-format +msgid "" +"Hibernate frees the developer from writing tedious Data Transfer " +"Objects (DTO). In a traditional EJB architecture, DTOs serve dual " +"purposes: first, they work around the problem that entity beans are not " +"serializable; second, they implicitly define an assembly phase where all " +"data to be used by the view is fetched and marshalled into the DTOs before " +"returning control to the presentation tier. Hibernate eliminates the first " +"purpose. However, you will still need an assembly phase (think of your " +"business methods as having a strict contract with the presentation tier " +"about what data is available in the detached objects) unless you are " +"prepared to hold the persistence context (the session) open across the view " +"rendering process. This is not a limitation of Hibernate! It is a " +"fundamental requirement of safe transactional data access." +msgstr "" +"Hibernateは Data Transfer Objects (DTO)を書く退屈な作業" +"から開発者を解放します。 伝統的なEJBアーキテクチャではDTOは二つ目的がありま" +"す: 1つ目は、エンティティビーンがシリアライズされない問題への対策です。 2つ" +"目は、プレゼンテーション層に制御が戻る前に、 ビューに使われるすべてのデータが" +"フェッチされて、DTOに復元されるような組み立てフェーズを暗黙的に定義します。 " +"Hibernateでは1つ目の目的が不要になります。 しかしビューのレンダリング処理の" +"間、永続コンテキスト(セッション)をオープンにしたままにしなければ、 組み立て" +"フェーズはまだ必要です(分離オブジェクトの中のどのデータが利用可能かについ" +"て、 プレゼンテーション層と厳密な取り決めをしているビジネスメソッドを考えてみ" +"てください)。 これはHibernate側の問題ではありません。 トランザクション内で安" +"全にデータアクセスするための基本的な要件です。" -#: index.docbook:191 +#. Tag: term +#: best_practices.xml:191 +#, no-c-format msgid "Consider abstracting your business logic from Hibernate." msgstr "Hibernateからビジネスロジックを抽象化することを考えましょう。" -#: index.docbook:193 -msgid "Hide (Hibernate) data-access code behind an interface. Combine the DAO and Thread Local Session patterns. You can even have some classes persisted by handcoded JDBC, associated to Hibernate via a UserType. (This advice is intended for \"sufficiently large\" applications; it is not appropriate for an application with five tables!)" -msgstr "インターフェイスで(Hibernateの)データアクセスコードを隠蔽しましょう。 DAOThread Local Session パターンを組み合わせましょう。 UserType でHibernateに関連付けると、 ハンドコードしたJDBCで永続化するクラスを持つこともできます。 (このアドバイスは「十分大きな」アプリケーションに対してのものです。 テーブルが5個しかないようなアプリケーションには当てはまりません。)" +#. Tag: para +#: best_practices.xml:193 +#, no-c-format +msgid "" +"Hide (Hibernate) data-access code behind an interface. Combine the " +"DAO and Thread Local Session " +"patterns. You can even have some classes persisted by handcoded JDBC, " +"associated to Hibernate via a UserType. (This advice is " +"intended for \"sufficiently large\" applications; it is not appropriate for " +"an application with five tables!)" +msgstr "" +"インターフェイスで(Hibernateの)データアクセスコードを隠蔽しましょう。 " +"DAOThread Local Session パター" +"ンを組み合わせましょう。 UserType でHibernateに関連付ける" +"と、 ハンドコードしたJDBCで永続化するクラスを持つこともできます。 (このアド" +"バイスは「十分大きな」アプリケーションに対してのものです。 テーブルが5個しか" +"ないようなアプリケーションには当てはまりません。)" -#: index.docbook:203 +#. Tag: term +#: best_practices.xml:203 +#, no-c-format msgid "Don't use exotic association mappings." msgstr "珍しい関連マッピングは使わないようにしましょう。" -#: index.docbook:205 -msgid "Good usecases for a real many-to-many associations are rare. Most of the time you need additional information stored in the \"link table\". In this case, it is much better to use two one-to-many associations to an intermediate link class. In fact, we think that most associations are one-to-many and many-to-one, you should be careful when using any other association style and ask yourself if it is really neccessary." -msgstr "よいユースケースに本当の多対多関連があることは稀(まれ)です。 ほとんどの場合「リンクテーブル」の付加的な情報が必要になります。 この場合、リンククラスに2つの1対多関連を使う方がずっと良いです。 実際ほとんどの場合関連は1対多と多対1なので、 他のスタイルの関連を使うときは本当に必要かどうかを考えてみてください。" +#. Tag: para +#: best_practices.xml:205 +#, no-c-format +msgid "" +"Good usecases for a real many-to-many associations are rare. Most of the " +"time you need additional information stored in the \"link table\". In this " +"case, it is much better to use two one-to-many associations to an " +"intermediate link class. In fact, we think that most associations are one-to-" +"many and many-to-one, you should be careful when using any other association " +"style and ask yourself if it is really neccessary." +msgstr "" +"よいユースケースに本当の多対多関連があることは稀(まれ)です。 ほとんどの場合" +"「リンクテーブル」の付加的な情報が必要になります。 この場合、リンククラスに2" +"つの1対多関連を使う方がずっと良いです。 実際ほとんどの場合関連は1対多と多対1" +"なので、 他のスタイルの関連を使うときは本当に必要かどうかを考えてみてくださ" +"い。" -#: index.docbook:215 +#. Tag: term +#: best_practices.xml:215 +#, no-c-format msgid "Prefer bidirectional associations." msgstr "なるべく双方向関連にしましょう。" -#: index.docbook:217 -msgid "Unidirectional associations are more difficult to query. In a large application, almost all associations must be navigable in both directions in queries." -msgstr "単方向関連は双方向に比べて検索が難しくなります。 大きなアプリケーションでは、 ほとんどすべての関連が双方向にナビゲーションできなければなりません。" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" - +#. Tag: para +#: best_practices.xml:217 +#, no-c-format +msgid "" +"Unidirectional associations are more difficult to query. In a large " +"application, almost all associations must be navigable in both directions in " +"queries." +msgstr "" +"単方向関連は双方向に比べて検索が難しくなります。 大きなアプリケーションで" +"は、 ほとんどすべての関連が双方向にナビゲーションできなければなりません。" diff --git a/documentation/manual/translations/ja-JP/content/collection_mapping.po b/documentation/manual/translations/ja-JP/content/collection_mapping.po index 502f6c9bd2..d2c971103f 100644 --- a/documentation/manual/translations/ja-JP/content/collection_mapping.po +++ b/documentation/manual/translations/ja-JP/content/collection_mapping.po @@ -1,1286 +1,1899 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: collection_mapping.xml:5 +#, no-c-format msgid "Collection Mapping" msgstr "コレクションのマッピング" -#: index.docbook:8 +#. Tag: title +#: collection_mapping.xml:8 +#, no-c-format msgid "Persistent collections" msgstr "コレクションの永続化" -#: index.docbook:10 -msgid "Hibernate requires that persistent collection-valued fields be declared as an interface type, for example:" -msgstr "コレクション型のフィールドを永続化するには、 そのコレクション型がインターフェイス型である必要があります。 例えば、" - -#: index.docbook:15 +#. Tag: para +#: collection_mapping.xml:10 +#, no-c-format msgid "" - "" +"Hibernate requires that persistent collection-valued fields be declared as " +"an interface type, for example:" msgstr "" - "" +"コレクション型のフィールドを永続化するには、 そのコレクション型がインターフェ" +"イス型である必要があります。 例えば、" -#: index.docbook:17 -msgid "The actual interface might be java.util.Set, java.util.Collection, java.util.List, java.util.Map, java.util.SortedSet, java.util.SortedMap or ... anything you like! (Where \"anything you like\" means you will have to write an implementation of org.hibernate.usertype.UserCollectionType.)" -msgstr "実在するインターフェイスには java.util.Setjava.util.Collectionjava.util.Listjava.util.Mapjava.util.SortedSetjava.util.SortedMap などがあります。 または、任意のインターフェイスが使えます! (ただし、任意のインターフェイスを使用する場合は、 org.hibernate.usertype.UserCollectionType の実装クラスを作成する必要があります。)" - -#: index.docbook:26 -msgid "Notice how we initialized the instance variable with an instance of HashSet. This is the best way to initialize collection valued properties of newly instantiated (non-persistent) instances. When you make the instance persistent - by calling persist(), for example - Hibernate will actually replace the HashSet with an instance of Hibernate's own implementation of Set. Watch out for errors like this:" -msgstr "HashSet のインスタンスを持つインスタンス変数が どのように初期化されるかに注目してみましょう。 これは新たに生成された(永続化されていない)コレクション型のプロパティを 初期化する最適な方法です。 (例えば persist() により)インスタンスを永続化しようとしたとき、 Hibernateは HashSet をHibernate独自の Set の実装クラスに置き換えます。 このため、次のようなエラーには注意が必要です。" - -#: index.docbook:36 +#. Tag: programlisting +#: collection_mapping.xml:15 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:38 -msgid "The persistent collections injected by Hibernate behave like HashMap, HashSet, TreeMap, TreeSet or ArrayList, depending upon the interface type." -msgstr "Hibernateにより注入された永続性コレクションは、インターフェイス型に応じて、 HashMapHashSetTreeMapTreeSetArrayList のように振舞います。" +#. Tag: para +#: collection_mapping.xml:17 +#, no-c-format +msgid "" +"The actual interface might be java.util.Set, " +"java.util.Collection, java.util.List, " +"java.util.Map, java.util.SortedSet, " +"java.util.SortedMap or ... anything you like! (Where " +"\"anything you like\" means you will have to write an implementation of " +"org.hibernate.usertype.UserCollectionType.)" +msgstr "" +"実在するインターフェイスには java.util.Set、 " +"java.util.Collectionjava.util.List、 " +"java.util.Mapjava.util.SortedSet、 " +"java.util.SortedMap などがあります。 または、任意のイン" +"ターフェイスが使えます! (ただし、任意のインターフェイスを使用する場合は、 " +"org.hibernate.usertype.UserCollectionType の実装クラスを作" +"成する必要があります。)" -#: index.docbook:45 -msgid "Collections instances have the usual behavior of value types. They are automatically persisted when referenced by a persistent object and automatically deleted when unreferenced. If a collection is passed from one persistent object to another, its elements might be moved from one table to another. Two entities may not share a reference to the same collection instance. Due to the underlying relational model, collection-valued properties do not support null value semantics; Hibernate does not distinguish between a null collection reference and an empty collection." -msgstr "コレクションインスタンスは、値型として普通に振舞います。 永続化オブジェクトに参照されたときに自動的に永続化され、 参照がなくなったときに自動的に削除されます。 もしある永続化オブジェクトから別の永続化オブジェクトに渡されたら、 その要素は現在のテーブルから別のテーブルに移動するかもしれません。 2つのエンティティが同じコレクションインスタンスを共有してはいけません。 リレーショナルモデルをベースにしているため、コレクション型のプロパティに null値を代入しても意味がありません。 つまりHibernateは参照先のないコレクションと空のコレクションを区別しません。" +#. Tag: para +#: collection_mapping.xml:26 +#, no-c-format +msgid "" +"Notice how we initialized the instance variable with an instance of " +"HashSet. This is the best way to initialize collection " +"valued properties of newly instantiated (non-persistent) instances. When you " +"make the instance persistent - by calling persist(), for " +"example - Hibernate will actually replace the HashSet " +"with an instance of Hibernate's own implementation of Set. Watch out for errors like this:" +msgstr "" +"HashSet のインスタンスを持つインスタンス変数が どのように" +"初期化されるかに注目してみましょう。 これは新たに生成された(永続化されていな" +"い)コレクション型のプロパティを 初期化する最適な方法です。 (例えば " +"persist() により)インスタンスを永続化しようとしたとき、 " +"Hibernateは HashSet をHibernate独自の Set の実装クラスに置き換えます。 このため、次のようなエラーには注意が必" +"要です。" -#: index.docbook:56 -msgid "You shouldn't have to worry much about any of this. Use persistent collections the same way you use ordinary Java collections. Just make sure you understand the semantics of bidirectional associations (discussed later)." -msgstr "しかしそれほど心配しなくても構いません。 普段使っているJavaのコレクションと同じように、永続化コレクションを使ってください。 双方向関連の意味を理解すればよいのです(これは後ほど説明します)。" +#. Tag: programlisting +#: collection_mapping.xml:36 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:65 +#. Tag: para +#: collection_mapping.xml:38 +#, no-c-format +msgid "" +"The persistent collections injected by Hibernate behave like " +"HashMap, HashSet, TreeMap, TreeSet or ArrayList, " +"depending upon the interface type." +msgstr "" +"Hibernateにより注入された永続性コレクションは、インターフェイス型に応じて、 " +"HashMapHashSetTreeMapTreeSetArrayList のように" +"振舞います。" + +#. Tag: para +#: collection_mapping.xml:45 +#, no-c-format +msgid "" +"Collections instances have the usual behavior of value types. They are " +"automatically persisted when referenced by a persistent object and " +"automatically deleted when unreferenced. If a collection is passed from one " +"persistent object to another, its elements might be moved from one table to " +"another. Two entities may not share a reference to the same collection " +"instance. Due to the underlying relational model, collection-valued " +"properties do not support null value semantics; Hibernate does not " +"distinguish between a null collection reference and an empty collection." +msgstr "" +"コレクションインスタンスは、値型として普通に振舞います。 永続化オブジェクトに" +"参照されたときに自動的に永続化され、 参照がなくなったときに自動的に削除されま" +"す。 もしある永続化オブジェクトから別の永続化オブジェクトに渡されたら、 その" +"要素は現在のテーブルから別のテーブルに移動するかもしれません。 2つのエンティ" +"ティが同じコレクションインスタンスを共有してはいけません。 リレーショナルモデ" +"ルをベースにしているため、コレクション型のプロパティに null値を代入しても意味" +"がありません。 つまりHibernateは参照先のないコレクションと空のコレクションを" +"区別しません。" + +#. Tag: para +#: collection_mapping.xml:56 +#, no-c-format +msgid "" +"You shouldn't have to worry much about any of this. Use persistent " +"collections the same way you use ordinary Java collections. Just make sure " +"you understand the semantics of bidirectional associations (discussed later)." +msgstr "" +"しかしそれほど心配しなくても構いません。 普段使っているJavaのコレクションと同" +"じように、永続化コレクションを使ってください。 双方向関連の意味を理解すればよ" +"いのです(これは後ほど説明します)。" + +#. Tag: title +#: collection_mapping.xml:65 +#, no-c-format msgid "Collection mappings" msgstr "コレクションのマッピング" -#: index.docbook:67 -msgid "The Hibernate mapping element used for mapping a collection depends upon the type of the interface. For example, a <set> element is used for mapping properties of type Set." -msgstr "コレクションをマッピングするためのマッピング要素は、インターフェイスの型に依存します。 例えば、<set> 要素は Set 型を マッピングするために使います。" - -#: index.docbook:73 +#. Tag: para +#: collection_mapping.xml:67 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"The Hibernate mapping element used for mapping a collection depends upon the " +"type of the interface. For example, a <set> element " +"is used for mapping properties of type Set." msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"コレクションをマッピングするためのマッピング要素は、インターフェイスの型に依" +"存します。 例えば、<set> 要素は Set 型を マッピングするために使います。" -#: index.docbook:75 -msgid "Apart from <set>, there is also <list>, <map>, <bag>, <array> and <primitive-array> mapping elements. The <map> element is representative:" -msgstr "マッピング要素には <set> の他に <list><map><bag><array><primitive-array> があります。 代表として、<map> 要素を下記に示します。" - -#: index.docbook:100 +#. Tag: programlisting +#: collection_mapping.xml:73 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:103 +#. Tag: para +#: collection_mapping.xml:75 +#, no-c-format +msgid "" +"Apart from <set>, there is also <" +"list>, <map>, <bag>, <array> and <primitive-" +"array> mapping elements. The <map> " +"element is representative:" +msgstr "" +"マッピング要素には <set> の他に <" +"list><map><bag><array><primitive-array>" +" があります。 代表として、<map> 要素を下記" +"に示します。" + +#. Tag: programlisting +#: collection_mapping.xml:100 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: collection_mapping.xml:103 +#, no-c-format msgid "name the collection property name" msgstr "name コレクション型であるプロパティの名前" -#: index.docbook:108 -msgid "table (optional - defaults to property name) the name of the collection table (not used for one-to-many associations)" -msgstr "table (オプション - デフォルトはプロパティ名)コレクションテーブルの名前 (一対多関連では使用しません)。" +#. Tag: para +#: collection_mapping.xml:108 +#, no-c-format +msgid "" +"table (optional - defaults to property name) the name of " +"the collection table (not used for one-to-many associations)" +msgstr "" +"table (オプション - デフォルトはプロパティ名)コレクショ" +"ンテーブルの名前 (一対多関連では使用しません)。" -#: index.docbook:114 -msgid "schema (optional) the name of a table schema to override the schema declared on the root element" -msgstr "schema (オプション)テーブルスキーマの名前。 ルート要素で宣言されているスキーマより優先されます。" +#. Tag: para +#: collection_mapping.xml:114 +#, no-c-format +msgid "" +"schema (optional) the name of a table schema to override " +"the schema declared on the root element" +msgstr "" +"schema (オプション)テーブルスキーマの名前。 ルート要素で" +"宣言されているスキーマより優先されます。" -#: index.docbook:120 -msgid "lazy (optional - defaults to true) may be used to disable lazy fetching and specify that the association is always eagerly fetched, or to enable \"extra-lazy\" fetching where most operations do not initialize the collection (suitable for very large collections)" -msgstr "lazy (オプション - デフォルトは true) 遅延フェッチを無効にし、関連を常に即時にフェッチにするために使用します。 または、「extra-lazy」フェッチを有効にするために使用します。 「extra-lazy」フェッチは、ほとんどの操作ではコレクションを初期化しません (非常に大きなコレクションに適しています)。" +#. Tag: para +#: collection_mapping.xml:120 +#, no-c-format +msgid "" +"lazy (optional - defaults to true) may " +"be used to disable lazy fetching and specify that the association is always " +"eagerly fetched, or to enable \"extra-lazy\" fetching where most operations " +"do not initialize the collection (suitable for very large collections)" +msgstr "" +"lazy (オプション - デフォルトは true) 遅延フェッチを無効にし、関連を常に即時にフェッチにするために使用し" +"ます。 または、「extra-lazy」フェッチを有効にするために使用します。 「extra-" +"lazy」フェッチは、ほとんどの操作ではコレクションを初期化しません (非常に大き" +"なコレクションに適しています)。" -#: index.docbook:129 -msgid "inverse (optional - defaults to false) mark this collection as the \"inverse\" end of a bidirectional association" -msgstr "inverse (オプション - デフォルトは false) このコレクションが双方向関連の「逆」側であるとマークします。" +#. Tag: para +#: collection_mapping.xml:129 +#, no-c-format +msgid "" +"inverse (optional - defaults to false) " +"mark this collection as the \"inverse\" end of a bidirectional association" +msgstr "" +"inverse (オプション - デフォルトは false) このコレクションが双方向関連の「逆」側であるとマークします。" -#: index.docbook:135 -msgid "cascade (optional - defaults to none) enable operations to cascade to child entities" -msgstr "cascade (オプション - デフォルトは none) 子エンティティへのカスケード操作を有効にします。" +#. Tag: para +#: collection_mapping.xml:135 +#, no-c-format +msgid "" +"cascade (optional - defaults to none) " +"enable operations to cascade to child entities" +msgstr "" +"cascade (オプション - デフォルトは none) 子エンティティへのカスケード操作を有効にします。" -#: index.docbook:141 -msgid "sort (optional) specify a sorted collection with natural sort order, or a given comparator class" -msgstr "sort (オプション)コレクションを自然な順序でソートする場合は natural を指定します。 あるいはComparatorクラスを指定します。" +#. Tag: para +#: collection_mapping.xml:141 +#, no-c-format +msgid "" +"sort (optional) specify a sorted collection with " +"natural sort order, or a given comparator class" +msgstr "" +"sort (オプション)コレクションを自然な順序でソートする場" +"合は natural を指定します。 あるいはComparatorクラスを指定" +"します。" -#: index.docbook:147 -msgid "order-by (optional, JDK1.4 only) specify a table column (or columns) that define the iteration order of the Map, Set or bag, together with an optional asc or desc" -msgstr "order-by (オプション、JDK1.4のみ) MapSet、bagのイテレーション順序を定義する テーブルカラムを指定すると共に、 オプションとして ascdesc を指定します。" +#. Tag: para +#: collection_mapping.xml:147 +#, no-c-format +msgid "" +"order-by (optional, JDK1.4 only) specify a table column " +"(or columns) that define the iteration order of the Map, " +"Set or bag, together with an optional asc or desc" +msgstr "" +"order-by (オプション、JDK1.4のみ) MapSet、bagのイテレーション順序を定義する テーブル" +"カラムを指定すると共に、 オプションとして asc、" +"desc を指定します。" -#: index.docbook:154 -msgid "where (optional) specify an arbitrary SQL WHERE condition to be used when retrieving or removing the collection (useful if the collection should contain only a subset of the available data)" -msgstr "where (オプション)コレクションの検索や削除の際に使う 任意のSQLのWHERE 条件を指定します (利用可能なデータの一部分だけをコレクションが含むべきときに、これは有用です)。" +#. Tag: para +#: collection_mapping.xml:154 +#, no-c-format +msgid "" +"where (optional) specify an arbitrary SQL WHERE condition to be used when retrieving or removing the collection " +"(useful if the collection should contain only a subset of the available data)" +msgstr "" +"where (オプション)コレクションの検索や削除の際に使う 任" +"意のSQLのWHERE 条件を指定します (利用可能なデータの一部分" +"だけをコレクションが含むべきときに、これは有用です)。" -#: index.docbook:161 -msgid "fetch (optional, defaults to select) Choose between outer-join fetching, fetching by sequential select, and fetching by sequential subselect." -msgstr "fetch(オプション - デフォルトは select) 外部結合によるフェッチ、順次選択フェッチ(sequential select fetch)、 順次サブセレクトフェッチ(sequential subselect fetch)のどれかを選択してください。" +#. Tag: para +#: collection_mapping.xml:161 +#, no-c-format +msgid "" +"fetch (optional, defaults to select) " +"Choose between outer-join fetching, fetching by sequential select, and " +"fetching by sequential subselect." +msgstr "" +"fetch(オプション - デフォルトは select) 外部結合によるフェッチ、順次選択フェッチ(sequential select " +"fetch)、 順次サブセレクトフェッチ(sequential subselect fetch)のどれかを選" +"択してください。" -#: index.docbook:168 -msgid "batch-size (optional, defaults to 1) specify a \"batch size\" for lazily fetching instances of this collection." -msgstr "batch-size (オプション - デフォルトは 1) コレクションのインスタンスの遅延フェッチのための「バッチサイズ」を指定します。" +#. Tag: para +#: collection_mapping.xml:168 +#, no-c-format +msgid "" +"batch-size (optional, defaults to 1) " +"specify a \"batch size\" for lazily fetching instances of this collection." +msgstr "" +"batch-size (オプション - デフォルトは 1) コレクションのインスタンスの遅延フェッチのための「バッチサイズ」を" +"指定します。" -#: index.docbook:174 -msgid "access (optional - defaults to property): The strategy Hibernate should use for accessing the collection property value." -msgstr "access (オプション - デフォルトは property) コレクション型プロパティの値にアクセスするために使用する戦略です。" +#. Tag: para +#: collection_mapping.xml:174 +#, no-c-format +msgid "" +"access (optional - defaults to property): The strategy Hibernate should use for accessing the collection " +"property value." +msgstr "" +"access (オプション - デフォルトは property) コレクション型プロパティの値にアクセスするために使用する戦略です。" -#: index.docbook:180 -msgid "optimistic-lock (optional - defaults to true): Species that changes to the state of the collection results in increment of the owning entity's version. (For one to many associations, it is often reasonable to disable this setting.)" -msgstr "optimistic-lock(オプション - デフォルトは true) コレクションの状態を変えることによって、 そのオーナーであるエンティティのバージョンがインクリメントされるかを指定します。 (一対多関連では、ほとんどの場合において無効に設定するのが妥当です。)" +#. Tag: para +#: collection_mapping.xml:180 +#, no-c-format +msgid "" +"optimistic-lock (optional - defaults to true): Species that changes to the state of the collection results in " +"increment of the owning entity's version. (For one to many associations, it " +"is often reasonable to disable this setting.)" +msgstr "" +"optimistic-lock(オプション - デフォルトは true) コレクションの状態を変えることによって、 そのオーナーであるエン" +"ティティのバージョンがインクリメントされるかを指定します。 (一対多関連では、" +"ほとんどの場合において無効に設定するのが妥当です。)" -#: index.docbook:188 -msgid "mutable (optional - defaults to true): A value of false specifies that the elements of the collection never change (a minor performance optimization in some cases)." -msgstr "mutable(オプション - デフォルトは truefalse 値は、コレクションの要素が変更されないことを表します (ある場合には、少しパフォーマンスを高めます)。" +#. Tag: para +#: collection_mapping.xml:188 +#, no-c-format +msgid "" +"mutable (optional - defaults to true): " +"A value of false specifies that the elements of the " +"collection never change (a minor performance optimization in some cases)." +msgstr "" +"mutable(オプション - デフォルトは truefalse 値は、コレクションの要素が変更されないこ" +"とを表します (ある場合には、少しパフォーマンスを高めます)。" -#: index.docbook:198 +#. Tag: title +#: collection_mapping.xml:198 +#, no-c-format msgid "Collection foreign keys" msgstr "コレクションの外部キー" -#: index.docbook:200 -msgid "Collection instances are distinguished in the database by the foreign key of the entity that owns the collection. This foreign key is referred to as the collection key column (or columns) of the collection table. The collection key column is mapped by the <key> element." -msgstr "コレクションのインスタンスは、データベース内では、 そのコレクションを所有するエンティティの外部キーによって識別されます。 この外部キーはコレクションテーブルの コレクションキーカラム と呼ばれます。 コレクションキーカラムは <key> 要素によりマッピングします。" +#. Tag: para +#: collection_mapping.xml:200 +#, no-c-format +msgid "" +"Collection instances are distinguished in the database by the foreign key of " +"the entity that owns the collection. This foreign key is referred to as the " +"collection key column (or columns) of the collection " +"table. The collection key column is mapped by the <key> element." +msgstr "" +"コレクションのインスタンスは、データベース内では、 そのコレクションを所有する" +"エンティティの外部キーによって識別されます。 この外部キーはコレクションテーブ" +"ルの コレクションキーカラム と呼ばれます。 コレクション" +"キーカラムは <key> 要素によりマッピングします。" -#: index.docbook:208 -msgid "There may be a nullability constraint on the foreign key column. For most collections, this is implied. For unidirectional one to many associations, the foreign key column is nullable by default, so you might need to specify not-null=\"true\"." -msgstr "外部キーカラムにはnull設定制約があるかもしれません。 ほとんどのコレクションに当てはまるでしょう。 単方向の一対多関連において、外部キーカラムはデフォルトでnullを許す設定になっています。 よって、not-null=\"true\" を指定する必要があるかもしれません。" +#. Tag: para +#: collection_mapping.xml:208 +#, no-c-format +msgid "" +"There may be a nullability constraint on the foreign key column. For most " +"collections, this is implied. For unidirectional one to many associations, " +"the foreign key column is nullable by default, so you might need to specify " +"not-null=\"true\"." +msgstr "" +"外部キーカラムにはnull設定制約があるかもしれません。 ほとんどのコレクションに" +"当てはまるでしょう。 単方向の一対多関連において、外部キーカラムはデフォルトで" +"nullを許す設定になっています。 よって、not-null=\"true\" " +"を指定する必要があるかもしれません。" -#: index.docbook:215 +#. Tag: programlisting +#: collection_mapping.xml:215 +#, no-c-format msgid "]]>" -msgstr "]]>" +msgstr "" -#: index.docbook:217 -msgid "The foreign key constraint may use ON DELETE CASCADE." -msgstr "外部キーの制約が ON DELETE CASCADE を使うかもしれません。" +#. Tag: para +#: collection_mapping.xml:217 +#, no-c-format +msgid "" +"The foreign key constraint may use ON DELETE CASCADE." +msgstr "" +"外部キーの制約が ON DELETE CASCADE を使うかもしれません。" -#: index.docbook:221 +#. Tag: programlisting +#: collection_mapping.xml:221 +#, no-c-format msgid "]]>" -msgstr "]]>" +msgstr "" -#: index.docbook:223 -msgid "See the previous chapter for a full definition of the <key> element." -msgstr "<key> 要素のすべての定義については前の章を参照してください。" +#. Tag: para +#: collection_mapping.xml:223 +#, no-c-format +msgid "" +"See the previous chapter for a full definition of the <key> element." +msgstr "" +"<key> 要素のすべての定義については前の章を参照してく" +"ださい。" -#: index.docbook:231 +#. Tag: title +#: collection_mapping.xml:231 +#, no-c-format msgid "Collection elements" msgstr "コレクションの要素" -#: index.docbook:233 -msgid "Collections may contain almost any other Hibernate type, including all basic types, custom types, components, and of course, references to other entities. This is an important distinction: an object in a collection might be handled with \"value\" semantics (its life cycle fully depends on the collection owner) or it might be a reference to another entity, with its own life cycle. In the latter case, only the \"link\" between the two objects is considered to be state held by the collection." -msgstr "コレクションは他のHibernateの型のほとんど(すべての基本型、カスタム型、コンポーネント、 他のエンティティへの参照)を格納することができます。 次の点は重要な違いになります。 コレクションに格納されたオブジェクトが「値」セマンティクスとして扱われるのか (ライフサイクルはコレクションのオーナーに完全に依存します)、 もしくはそれ自身のライフサイクルを持った別のエンティティへの参照であるかのかという違いです。 後者は、2つのオブジェクト間の「リンク」をコレクションに保持していると見なしているだけです。" +#. Tag: para +#: collection_mapping.xml:233 +#, no-c-format +msgid "" +"Collections may contain almost any other Hibernate type, including all basic " +"types, custom types, components, and of course, references to other " +"entities. This is an important distinction: an object in a collection might " +"be handled with \"value\" semantics (its life cycle fully depends on the " +"collection owner) or it might be a reference to another entity, with its own " +"life cycle. In the latter case, only the \"link\" between the two objects is " +"considered to be state held by the collection." +msgstr "" +"コレクションは他のHibernateの型のほとんど(すべての基本型、カスタム型、コン" +"ポーネント、 他のエンティティへの参照)を格納することができます。 次の点は重" +"要な違いになります。 コレクションに格納されたオブジェクトが「値」セマンティク" +"スとして扱われるのか (ライフサイクルはコレクションのオーナーに完全に依存しま" +"す)、 もしくはそれ自身のライフサイクルを持った別のエンティティへの参照である" +"かのかという違いです。 後者は、2つのオブジェクト間の「リンク」をコレクション" +"に保持していると見なしているだけです。" -#: index.docbook:242 -msgid "The contained type is referred to as the collection element type. Collection elements are mapped by <element> or <composite-element>, or in the case of entity references, with <one-to-many> or <many-to-many>. The first two map elements with value semantics, the next two are used to map entity associations." -msgstr "格納される型は コレクション要素型 と呼ばれます。 コレクション要素は、<element> または <composite-element> によりマッピングされ、エンティティへの参照の場合には <one-to-many> または <many-to-many> によりマッピングされます。 最初の二つは値として要素をマッピングし、次の二つはエンティティの関連をマッピングするのに使われます。" +#. Tag: para +#: collection_mapping.xml:242 +#, no-c-format +msgid "" +"The contained type is referred to as the collection element type. Collection elements are mapped by <element> or <composite-element>, or in the case of " +"entity references, with <one-to-many> or " +"<many-to-many>. The first two map elements with " +"value semantics, the next two are used to map entity associations." +msgstr "" +"格納される型は コレクション要素型 と呼ばれます。 コレク" +"ション要素は、<element> または <" +"composite-element> によりマッピングされ、エンティティへの参照の" +"場合には <one-to-many> または <many-to-" +"many> によりマッピングされます。 最初の二つは値として要素をマッ" +"ピングし、次の二つはエンティティの関連をマッピングするのに使われます。" -#: index.docbook:254 +#. Tag: title +#: collection_mapping.xml:254 +#, no-c-format msgid "Indexed collections" msgstr "インデックス付きのコレクション" -#: index.docbook:256 -msgid "All collection mappings, except those with set and bag semantics, need an index column in the collection table - a column that maps to an array index, or List index, or Map key. The index of a Map may be of any basic type, mapped with <map-key>, it may be an entity reference mapped with <map-key-many-to-many>, or it may be a composite type, mapped with <composite-map-key>. The index of an array or list is always of type integer and is mapped using the <list-index> element. The mapped column contains sequential integers (numbered from zero, by default)." -msgstr "setとbagを除く全てのコレクションマッピングには、 コレクションテーブルの中に インデックス用のカラム が必要です。 そのカラムに、配列や List のインデックス、 もしくは Map のキーをマッピングします。 Map のインデックスは、 <map-key> によりマッピングされた基本型か、 <map-key-many-to-many> によりマッピングされたエンティティの関連か、 あるいは <composite-map-key> によりマッピングされたコンポジット型になります。 配列かリストのインデックスは、常に integer 型で、 <list-index> 要素によりマッピングします。 マッピングされたカラムにはシーケンシャルな整数を格納します(デフォルトでは0から番号が付けられます)。" - -#: index.docbook:267 +#. Tag: para +#: collection_mapping.xml:256 +#, no-c-format msgid "" - " ]]> column_name (required): The name of the column holding the collection index values. base (optional, defaults to 0): The value of the index column that corresponds to the first element of the list or array. ]]> column (optional): The name of the column holding the collection index values. formula (optional): A SQL formula used to evaluate the key of the map. type (reguired): The type of the map keys. ]]> column (optional): The name of the foreign key column for the collection index values. formula (optional): A SQL formula used to evaluate the foreign key of the map key. class (required): The entity class used as the map key. " +"All collection mappings, except those with set and bag semantics, need an " +"index column in the collection table - a column that " +"maps to an array index, or List index, or Map key. The index of a Map may be of any basic " +"type, mapped with <map-key>, it may be an entity " +"reference mapped with <map-key-many-to-many>, or it " +"may be a composite type, mapped with <composite-map-key>. The index of an array or list is always of type integer and is mapped using the <list-index> " +"element. The mapped column contains sequential integers (numbered from zero, " +"by default)." msgstr "" - " ]]> column_name(必須):コレクションインデックスの値を保持するカラムの名前。 base(オプション、デフォルトは 0): リストもしくは配列の最初の要素に該当するインデックスカラムの値。 ]]> column(オプション): コレクションインデックスの値を保持するカラムの名前。 formula(オプション): Mapのキーを評価するのに使われるSQL式。 type(必須): Mapのキーの型。 ]]> column (オプション): コレクションインデックスの値のための外部キーカラムの名前。 formula (オプション): Mapのキーのための外部キーを評価するために使うSQL式。 class (必須): Mapのキーとして使われるエンティティクラス。 " +"setとbagを除く全てのコレクションマッピングには、 コレクションテーブルの中に " +"インデックス用のカラム が必要です。 そのカラムに、配列" +"や List のインデックス、 もしくは Map " +"のキーをマッピングします。 Map のインデックスは、 " +"<map-key> によりマッピングされた基本型か、 " +"<map-key-many-to-many> によりマッピングされたエン" +"ティティの関連か、 あるいは <composite-map-key> によ" +"りマッピングされたコンポジット型になります。 配列かリストのインデックスは、常" +"に integer 型で、 <list-index> 要" +"素によりマッピングします。 マッピングされたカラムにはシーケンシャルな整数を格" +"納します(デフォルトでは0から番号が付けられます)。" -#: index.docbook:348 -msgid "If your table doesn't have an index column, and you still wish to use List as the property type, you should map the property as a Hibernate <bag>. A bag does not retain its order when it is retrieved from the database, but it may be optionally sorted or ordered." -msgstr "もしテーブルにインデックスカラムがなくても、プロパティ型として List を使いたければ、 Hibernateの <bag> としてプロパティをマッピングします。 bagはデータベースから復元される時、順序を保持しません。 しかし、(メモリ上で)ソートしたり、(SQLで)順序付けしたり(order by)することもできます。" +#. Tag: sect2 +#: collection_mapping.xml:267 +#, no-c-format +msgid "" +" ]]> column_name (required): The " +"name of the column holding the collection index values. " +" base (optional, " +"defaults to 0): The value of the index column that " +"corresponds to the first element of the list or array. ]]> column (optional): The name of the " +"column holding the collection index values. formula (optional): A SQL " +"formula used to evaluate the key of the map. type (reguired): The type of " +"the map keys. " +" ]]> " +" column (optional): The name of the foreign key " +"column for the collection index values. formula (optional): A SQL " +"formula used to evaluate the foreign key of the map key. " +" class " +"(required): The entity class used as the map key. " +msgstr "" -#: index.docbook:357 -msgid "There are quite a range of mappings that can be generated for collections, covering many common relational models. We suggest you experiment with the schema generation tool to get a feeling for how various mapping declarations translate to database tables." -msgstr "多くの一般的なリレーショナルモデルをカバーしたために、 コレクションのために利用できるマッピングにはかなりの幅があります。 様々なマッピング宣言がどのようにデータベーステーブルに変換されるかを知るために、 スキーマ生成ツールを使ってみると良いでしょう。" +#. Tag: para +#: collection_mapping.xml:348 +#, no-c-format +msgid "" +"If your table doesn't have an index column, and you still wish to use " +"List as the property type, you should map the property as " +"a Hibernate <bag>. A bag does not retain its " +"order when it is retrieved from the database, but it may be optionally " +"sorted or ordered." +msgstr "" +"もしテーブルにインデックスカラムがなくても、プロパティ型として " +"List を使いたければ、 Hibernateの <bag> としてプロパティをマッピングします。 bagはデータベースから復元され" +"る時、順序を保持しません。 しかし、(メモリ上で)ソートしたり、(SQLで)順序" +"付けしたり(order by)することもできます。" -#: index.docbook:364 +#. Tag: para +#: collection_mapping.xml:357 +#, no-c-format +msgid "" +"There are quite a range of mappings that can be generated for collections, " +"covering many common relational models. We suggest you experiment with the " +"schema generation tool to get a feeling for how various mapping declarations " +"translate to database tables." +msgstr "" +"多くの一般的なリレーショナルモデルをカバーしたために、 コレクションのために利" +"用できるマッピングにはかなりの幅があります。 様々なマッピング宣言がどのように" +"データベーステーブルに変換されるかを知るために、 スキーマ生成ツールを使ってみ" +"ると良いでしょう。" + +#. Tag: title +#: collection_mapping.xml:364 +#, no-c-format msgid "Collections of values and many-to-many associations" msgstr "値のコレクションと多対多関連" -#: index.docbook:366 -msgid "Any collection of values or many-to-many association requires a dedicated collection table with a foreign key column or columns, collection element column or columns and possibly an index column or columns." -msgstr "値のコレクションや多対多関連は、専用の コレクションテーブル が必要です。 このテーブルは、外部キーカラムと、 コレクション要素のカラム と、 場合によってはインデックスカラムを持ちます。" - -#: index.docbook:373 -msgid "For a collection of values, we use the <element> tag." -msgstr "値のコレクションのために、<element>タグを使用します。" - -#: index.docbook:375 +#. Tag: para +#: collection_mapping.xml:366 +#, no-c-format msgid "" - " ]]> column (optional): The name of the column holding the collection element values. formula (optional): An SQL formula used to evaluate the element. type (required): The type of the collection element. A many-to-many association is specified using the <many-to-many> element. ]]> column (optional): The name of the element foreign key column. formula (optional): An SQL formula used to evaluate the element foreign key value. class (required): The name of the associated class. fetch (optional - defaults to join): enables outer-join or sequential select fetching for this association. This is a special case; for full eager fetching (in a single SELECT) of an entity and its many-to-many relationships to other entities, you would enable join fetching not only of the collection itself, but also with this attribute on the <many-to-many> nested element. unique (optional): Enable the DDL generation of a unique constraint for the foreign-key column. This makes the association multiplicity effectively one to many. not-found (optional - defaults to exception): Specifies how foreign keys that reference missing rows will be handled: ignore will treat a missing row as a null association. entity-name (optional): The entity name of the associated class, as an alternative to class. property-ref: (optional) The name of a property of the associated class that is joined to this foreign key. If not specified, the primary key of the associated class is used. " +"Any collection of values or many-to-many association requires a dedicated " +"collection table with a foreign key column or columns, " +"collection element column or columns and possibly an " +"index column or columns." msgstr "" - " ]]> column (オプション): コレクションの要素の値を保持するカラムの名前。 formula (オプション): 要素を評価するために使うSQL式。 type (必須)コレクションの要素の型。 多対多関連<many-to-many> 要素で指定します。 ]]> column (オプション): 外部キーカラムの要素の名前。 formula (オプション): 外部キー値の要素を評価するために使うSQL式。 class (必須): 関連クラスの名前。 fetch (オプション - デフォルトは join): 関連のために、外部結合か順次選択フェッチを有効にします。 これは特殊なケースですが、エンティティと他のエンティティとの多対多関係を (1つの SELECT により)完全に即時にフェッチするためには、 そのコレクション自体だけでなく、 ネストした要素である <many-to-many> のこの属性についても join フェッチを有効する必要があります。 unique (オプション): 外部キーカラムのユニーク制約のDDL生成を有効にします。 これは、関連の多重度を事実上一対多にします。 not-found (オプション - デフォルトは exception) 参照先の行がない外部キーをどのように扱うかを指定します。 ignore にすると、行がないことを関連が無いものとして扱います。 entity-name (オプション): class の代替である関連クラスのエンティティ名。 class の代わりに指定する、関連クラスのエンティティ名。 property-ref: (オプション) この外部キーに結合する関連クラスのプロパティ名。 指定しなかった場合は、関連クラスの主キーを使います。 " +"値のコレクションや多対多関連は、専用の コレクションテーブル が必要です。 このテーブルは、外部キーカラムと、 コレク" +"ション要素のカラム と、 場合によってはインデックスカラムを持ちま" +"す。" -#: index.docbook:480 +#. Tag: para +#: collection_mapping.xml:373 +#, no-c-format +msgid "" +"For a collection of values, we use the <element> " +"tag." +msgstr "" +"値のコレクションのために、<element>タグを使用しま" +"す。" + +#. Tag: sect2 +#: collection_mapping.xml:375 +#, no-c-format +msgid "" +" " +" ]]> " +"column (optional): The name of the column holding the " +"collection element values. formula (optional): An SQL formula used to " +"evaluate the element. " +" type (required): The type of the collection " +"element. A " +"many-to-many association is specified using the " +"<many-to-many> element. " +" " +" " +"]]> " +" column (optional): The name of the element foreign " +"key column. " +"formula (optional): An SQL formula used to evaluate the " +"element foreign key value. class (required): The name of the associated " +"class. " +"fetch (optional - defaults to join): " +"enables outer-join or sequential select fetching for this association. This " +"is a special case; for full eager fetching (in a single SELECT) of an entity and its many-to-many relationships to other entities, " +"you would enable join fetching not only of the collection " +"itself, but also with this attribute on the <many-to-many> nested element. unique (optional): Enable the DDL generation " +"of a unique constraint for the foreign-key column. This makes the " +"association multiplicity effectively one to many. " +" not-found " +"(optional - defaults to exception): Specifies how foreign " +"keys that reference missing rows will be handled: ignore " +"will treat a missing row as a null association. entity-name (optional): " +"The entity name of the associated class, as an alternative to " +"class. property-ref: (optional) The name of a " +"property of the associated class that is joined to this foreign key. If not " +"specified, the primary key of the associated class is used. " +msgstr "" + +#. Tag: para +#: collection_mapping.xml:480 +#, no-c-format msgid "Some examples, first, a set of strings:" msgstr "以下にいくつか例を示します。 まずはStringのsetに関しての例です。" -#: index.docbook:484 +#. Tag: programlisting +#: collection_mapping.xml:484 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - "]]>" -#: index.docbook:486 -msgid "A bag containing integers (with an iteration order determined by the order-by attribute):" -msgstr "整数値を含むbag(bagは order-by 属性によって反復順序が定義されています)" - -#: index.docbook:491 +#. Tag: para +#: collection_mapping.xml:486 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "]]>" +"A bag containing integers (with an iteration order determined by the " +"order-by attribute):" msgstr "" - "\n" - " \n" - " \n" - "]]>" +"整数値を含むbag(bagは order-by 属性によって反復順序が定義" +"されています)" -#: index.docbook:493 +#. Tag: programlisting +#: collection_mapping.xml:491 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: collection_mapping.xml:493 +#, no-c-format msgid "An array of entities - in this case, a many to many association:" msgstr "エンティティの配列 - この場合、多対多の関連です。" -#: index.docbook:497 +#. Tag: programlisting +#: collection_mapping.xml:497 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:499 +#. Tag: para +#: collection_mapping.xml:499 +#, no-c-format msgid "A map from string indices to dates:" msgstr "文字列と日付のmap" -#: index.docbook:503 +#. Tag: programlisting +#: collection_mapping.xml:503 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:505 +#. Tag: para +#: collection_mapping.xml:505 +#, no-c-format msgid "A list of components (discussed in the next chapter):" msgstr "コンポーネントのlist(次の章で詳しく説明します)" -#: index.docbook:509 +#. Tag: programlisting +#: collection_mapping.xml:509 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:514 +#. Tag: title +#: collection_mapping.xml:514 +#, no-c-format msgid "One-to-many associations" msgstr "一対多関連" -#: index.docbook:516 -msgid "A one to many association links the tables of two classes via a foreign key, with no intervening collection table. This mapping loses certain semantics of normal Java collections:" -msgstr "一対多関連 は、コレクション・テーブルを介さず、 外部キーにより2つのクラスのテーブルを関連付けます。 このマッピングは標準的なJavaのコレクションのセマンティクスをいくつか失います。" - -#: index.docbook:524 -msgid "An instance of the contained entity class may not belong to more than one instance of the collection" -msgstr "エンティティクラスのインスタンスは、 2つ以上のコレクションのインスタンスに属してはいけません。" - -#: index.docbook:530 -msgid "An instance of the contained entity class may not appear at more than one value of the collection index" -msgstr "コレクションに含まれるエンティティクラスのインスタンスは、 コレクションインデックスの値として2度以上現れてはいけません。" - -#: index.docbook:537 -msgid "An association from Product to Part requires existence of a foreign key column and possibly an index column to the Part table. A <one-to-many> tag indicates that this is a one to many association." -msgstr "Product から Part への関連は、 Part テーブルへの外部キーカラムと、場合によってはインデックスカラムが必要です。 <one-to-many> タグは、これが一対多関連であることを表しています。" - -#: index.docbook:550 +#. Tag: para +#: collection_mapping.xml:516 +#, no-c-format msgid "" - "]]>" +"A one to many association links the tables of two " +"classes via a foreign key, with no intervening collection table. This " +"mapping loses certain semantics of normal Java collections:" msgstr "" - "]]>" +"一対多関連 は、コレクション・テーブルを介さず、 外部キー" +"により2つのクラスのテーブルを関連付けます。 このマッピングは標準的なJavaのコ" +"レクションのセマンティクスをいくつか失います。" -#: index.docbook:553 +#. Tag: para +#: collection_mapping.xml:524 +#, no-c-format +msgid "" +"An instance of the contained entity class may not belong to more than one " +"instance of the collection" +msgstr "" +"エンティティクラスのインスタンスは、 2つ以上のコレクションのインスタンスに属" +"してはいけません。" + +#. Tag: para +#: collection_mapping.xml:530 +#, no-c-format +msgid "" +"An instance of the contained entity class may not appear at more than one " +"value of the collection index" +msgstr "" +"コレクションに含まれるエンティティクラスのインスタンスは、 コレクションイン" +"デックスの値として2度以上現れてはいけません。" + +#. Tag: para +#: collection_mapping.xml:537 +#, no-c-format +msgid "" +"An association from Product to Part " +"requires existence of a foreign key column and possibly an index column to " +"the Part table. A <one-to-many> " +"tag indicates that this is a one to many association." +msgstr "" +"Product から Part への関連は、 " +"Part テーブルへの外部キーカラムと、場合によってはインデッ" +"クスカラムが必要です。 <one-to-many> タグは、これが" +"一対多関連であることを表しています。" + +#. Tag: programlisting +#: collection_mapping.xml:550 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: collection_mapping.xml:553 +#, no-c-format msgid "class (required): The name of the associated class." msgstr "class (必須): 関連クラスの名前。" -#: index.docbook:558 -msgid "not-found (optional - defaults to exception): Specifies how cached identifiers that reference missing rows will be handled: ignore will treat a missing row as a null association." -msgstr "not-found (オプション - デフォルトは exception): 参照先の行がないキャッシュされた識別子をどのように扱うかを指定します。 ignore を指定すると、行がないことを関連がないものとして扱います。" - -#: index.docbook:565 -msgid "entity-name (optional): The entity name of the associated class, as an alternative to class." -msgstr "entity-name (オプション): class の代替である関連クラスのエンティティ名。 class の代わりに指定する、関連クラスのエンティティ名。" - -#: index.docbook:573 -msgid "Notice that the <one-to-many> element does not need to declare any columns. Nor is it necessary to specify the table name anywhere." -msgstr "<one-to-many> 要素はカラムを宣言する必要がないことに注意してください。 同様に テーブル 名を指定する必要もありません。" - -#: index.docbook:579 -msgid "Very important note: If the foreign key column of a <one-to-many> association is declared NOT NULL, you must declare the <key> mapping not-null=\"true\" or use a bidirectional association with the collection mapping marked inverse=\"true\". See the discussion of bidirectional associations later in this chapter." -msgstr "とても重要な注意: もし <one-to-many> 関連の外部キーカラムが NOT NULLと宣言された場合、 <key> マッピングに not-null=\"true\" を宣言するか、 コレクションマッピングに inverse=\"true\" を付けた上で、 双方向関連を使う 必要があります。 双方向関連についてはこの章の後のほうで説明します。" - -#: index.docbook:588 -msgid "This example shows a map of Part entities by name (where partName is a persistent property of Part). Notice the use of a formula-based index." -msgstr "次の例は、名称(Part の永続的なプロパティである partName) による Part エンティティのmapを表しています。 formulaによるインデックスを使っていることに注意してください。" - -#: index.docbook:594 +#. Tag: para +#: collection_mapping.xml:558 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - "]]>" +"not-found (optional - defaults to exception): Specifies how cached identifiers that reference missing rows will " +"be handled: ignore will treat a missing row as a null " +"association." msgstr "" - "\n" - " \n" - " \n" - " \n" - "]]>" +"not-found (オプション - デフォルトは exception): 参照先の行がないキャッシュされた識別子をどのように扱うかを指定し" +"ます。 ignore を指定すると、行がないことを関連がないものと" +"して扱います。" -#: index.docbook:600 +#. Tag: para +#: collection_mapping.xml:565 +#, no-c-format +msgid "" +"entity-name (optional): The entity name of the associated " +"class, as an alternative to class." +msgstr "" +"entity-name (オプション): class の代" +"替である関連クラスのエンティティ名。 class の代わりに指定" +"する、関連クラスのエンティティ名。" + +#. Tag: para +#: collection_mapping.xml:573 +#, no-c-format +msgid "" +"Notice that the <one-to-many> element does not need " +"to declare any columns. Nor is it necessary to specify the table name anywhere." +msgstr "" +"<one-to-many> 要素はカラムを宣言する必要がないことに" +"注意してください。 同様に テーブル 名を指定する必要もあり" +"ません。" + +#. Tag: para +#: collection_mapping.xml:579 +#, no-c-format +msgid "" +"Very important note: If the foreign key column of a " +"<one-to-many> association is declared NOT " +"NULL, you must declare the <key> mapping " +"not-null=\"true\" or use a bidirectional " +"association with the collection mapping marked inverse=" +"\"true\". See the discussion of bidirectional associations later " +"in this chapter." +msgstr "" +"とても重要な注意: もし <one-to-many> 関連の外部キーカラムが NOT NULLと宣言された場" +"合、 <key> マッピングに not-null=\"true\" を宣言するか、 コレクションマッピングに inverse=\"true\" を付けた上で、 双方向関連を使う 必要がありま" +"す。 双方向関連についてはこの章の後のほうで説明します。" + +#. Tag: para +#: collection_mapping.xml:588 +#, no-c-format +msgid "" +"This example shows a map of Part entities by name (where " +"partName is a persistent property of Part). Notice the use of a formula-based index." +msgstr "" +"次の例は、名称(Part の永続的なプロパティである " +"partName) による Part エンティティの" +"mapを表しています。 formulaによるインデックスを使っていることに注意してくださ" +"い。" + +#. Tag: programlisting +#: collection_mapping.xml:594 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: title +#: collection_mapping.xml:600 +#, no-c-format msgid "Advanced collection mappings" msgstr "高度なコレクション・マッピング" -#: index.docbook:603 +#. Tag: title +#: collection_mapping.xml:603 +#, no-c-format msgid "Sorted collections" msgstr "ソートされたコレクション" -#: index.docbook:605 -msgid "Hibernate supports collections implementing java.util.SortedMap and java.util.SortedSet. You must specify a comparator in the mapping file:" -msgstr "Hibernateは java.util.SortedMapjava.util.SortedSet を実装したコレクションをサポートしています。 開発者はマッピング定義ファイルにコンパレータを指定しなければなりません。" - -#: index.docbook:610 +#. Tag: para +#: collection_mapping.xml:605 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" +"Hibernate supports collections implementing java.util.SortedMap and java.util.SortedSet. You must specify a " +"comparator in the mapping file:" msgstr "" - "\n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" +"Hibernateは java.util.SortedMapjava.util." +"SortedSet を実装したコレクションをサポートしています。 開発者はマッ" +"ピング定義ファイルにコンパレータを指定しなければなりません。" -#: index.docbook:612 -msgid "Allowed values of the sort attribute are unsorted, natural and the name of a class implementing java.util.Comparator." -msgstr "sort 属性に設定できる値は unsortednatural および、java.util.Comparator を実装したクラスの名前です。" - -#: index.docbook:618 -msgid "Sorted collections actually behave like java.util.TreeSet or java.util.TreeMap." -msgstr "ソートされたコレクションは実質的には java.util.TreeSetjava.util.TreeMap のように振舞います。" - -#: index.docbook:623 -msgid "If you want the database itself to order the collection elements use the order-by attribute of set, bag or map mappings. This solution is only available under JDK 1.4 or higher (it is implemented using LinkedHashSet or LinkedHashMap). This performs the ordering in the SQL query, not in memory." -msgstr "もしデータベース自身にコレクションの要素を並べさせたいなら、 setbagmaporder-by 属性を使います。 この解決法はJDK1.4、もしくはそれ以上のバージョンで利用可能です (LinkedHashSet または LinkedHashMapを使って実装されています)。 整列はメモリ上ではなく、SQLクエリ内で実行されます。" - -#: index.docbook:632 +#. Tag: programlisting +#: collection_mapping.xml:610 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:634 -msgid "Note that the value of the order-by attribute is an SQL ordering, not a HQL ordering!" -msgstr "order-by 属性の値がSQL命令であって、HQL命令ではないことに注意してください!" +#. Tag: para +#: collection_mapping.xml:612 +#, no-c-format +msgid "" +"Allowed values of the sort attribute are " +"unsorted, natural and the name of a " +"class implementing java.util.Comparator." +msgstr "" +"sort 属性に設定できる値は unsorted と " +"natural および、java.util.Comparator を" +"実装したクラスの名前です。" -#: index.docbook:639 -msgid "Associations may even be sorted by some arbitrary criteria at runtime using a collection filter()." -msgstr "関連は、コレクションの filter() を使うことで、 実行時に任意のcriteriaによってソートすることも可能です。" +#. Tag: para +#: collection_mapping.xml:618 +#, no-c-format +msgid "" +"Sorted collections actually behave like java.util.TreeSet " +"or java.util.TreeMap." +msgstr "" +"ソートされたコレクションは実質的には java.util.TreeSet や " +"java.util.TreeMap のように振舞います。" -#: index.docbook:644 -msgid "" -msgstr "" +#. Tag: para +#: collection_mapping.xml:623 +#, no-c-format +msgid "" +"If you want the database itself to order the collection elements use the " +"order-by attribute of set, " +"bag or map mappings. This solution is " +"only available under JDK 1.4 or higher (it is implemented using " +"LinkedHashSet or LinkedHashMap). This " +"performs the ordering in the SQL query, not in memory." +msgstr "" +"もしデータベース自身にコレクションの要素を並べさせたいなら、 setbagmaporder-" +"by 属性を使います。 この解決法はJDK1.4、もしくはそれ以上のバージョ" +"ンで利用可能です (LinkedHashSet または " +"LinkedHashMapを使って実装されています)。 整列はメモリ上で" +"はなく、SQLクエリ内で実行されます。" -#: index.docbook:649 +#. Tag: programlisting +#: collection_mapping.xml:632 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: collection_mapping.xml:634 +#, no-c-format +msgid "" +"Note that the value of the order-by attribute is an SQL " +"ordering, not a HQL ordering!" +msgstr "" +"order-by 属性の値がSQL命令であって、HQL命令ではないことに" +"注意してください!" + +#. Tag: para +#: collection_mapping.xml:639 +#, no-c-format +msgid "" +"Associations may even be sorted by some arbitrary criteria at runtime using " +"a collection filter()." +msgstr "" +"関連は、コレクションの filter() を使うことで、 実行時に任" +"意のcriteriaによってソートすることも可能です。" + +#. Tag: programlisting +#: collection_mapping.xml:644 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: collection_mapping.xml:649 +#, no-c-format msgid "Bidirectional associations" msgstr "双方向関連" -#: index.docbook:651 -msgid "A bidirectional association allows navigation from both \"ends\" of the association. Two kinds of bidirectional association are supported:" -msgstr "双方向関連 は関連のどちら「側」からでもナビゲーションできます。 2種類の双方向関連がサポートされています。" +#. Tag: para +#: collection_mapping.xml:651 +#, fuzzy, no-c-format +msgid "" +"A bidirectional association allows navigation from both " +"\"ends\" of the association. Two kinds of bidirectional association are " +"supported:" +msgstr "" +"双方向関連 は関連のどちら「側」からでもナビゲーションで" +"きます。 2種類の双方向関連がサポートされています。 " -#: index.docbook:658 +#. Tag: term +#: collection_mapping.xml:658 +#, no-c-format msgid "one-to-many" msgstr "one-to-many" -#: index.docbook:660 +#. Tag: para +#: collection_mapping.xml:660 +#, no-c-format msgid "set or bag valued at one end, single-valued at the other" msgstr "片側がsetかbag、もう片方が単一値です。" -#: index.docbook:666 +#. Tag: term +#: collection_mapping.xml:666 +#, no-c-format msgid "many-to-many" msgstr "many-to-many" -#: index.docbook:668 +#. Tag: para +#: collection_mapping.xml:668 +#, no-c-format msgid "set or bag valued at both ends" msgstr "両側がsetかbagです。" -#: index.docbook:677 -msgid "You may specify a bidirectional many-to-many association simply by mapping two many-to-many associations to the same database table and declaring one end as inverse (which one is your choice, but it can not be an indexed collection)." -msgstr "2つの多対多関連で同じデータベーステーブルをマッピングし、 片方を inverse として宣言することで、 双方向の多対多関連を指定することが出来ます (どちらをinverseに選んだとしても、そちら側にはインデックス付きのコレクションは使えません)。" - -#: index.docbook:684 -msgid "Here's an example of a bidirectional many-to-many association; each category can have many items and each item can be in many categories:" -msgstr "次に双方向の多対多関連の例を示します。 各カテゴリは多数のアイテムを持つことができ、各アイテムは多くのカテゴリに属することが出来ます。" - -#: index.docbook:689 +#. Tag: para +#: collection_mapping.xml:677 +#, no-c-format msgid "" - "\n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " ...\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"You may specify a bidirectional many-to-many association simply by mapping " +"two many-to-many associations to the same database table and declaring one " +"end as inverse (which one is your choice, but it can " +"not be an indexed collection)." msgstr "" - "\n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " ...\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"2つの多対多関連で同じデータベーステーブルをマッピングし、 片方を " +"inverse として宣言することで、 双方向の多対多関連を指定" +"することが出来ます (どちらをinverseに選んだとしても、そちら側にはインデック" +"ス付きのコレクションは使えません)。" -#: index.docbook:691 -msgid "Changes made only to the inverse end of the association are not persisted. This means that Hibernate has two representations in memory for every bidirectional association, one link from A to B and another link from B to A. This is easier to understand if you think about the Java object model and how we create a many-to-many relationship in Java:" -msgstr "関連のinverse側にのみ行われた変更は永続化 されません。 これは、Hibernateは全ての双方向関連について、メモリ上に2つの表現を持っているという意味です。 つまり一つはAからBへのリンクで、もう一つはBからAへのリンクということです。 Javaのオブジェクトモデルについて考え、Javaで双方向関係をどうやって作るかを考えれば、 これは理解しやすいです。下記に、Javaでの双方向関連を示します。" - -#: index.docbook:699 +#. Tag: para +#: collection_mapping.xml:684 +#, no-c-format msgid "" - "" +"Here's an example of a bidirectional many-to-many association; each category " +"can have many items and each item can be in many categories:" msgstr "" - "" +"次に双方向の多対多関連の例を示します。 各カテゴリは多数のアイテムを持つことが" +"でき、各アイテムは多くのカテゴリに属することが出来ます。" -#: index.docbook:701 -msgid "The non-inverse side is used to save the in-memory representation to the database." -msgstr "関連のinverseではない側は、メモリ上の表現をデータベースに保存するのに使われます。" - -#: index.docbook:705 -msgid "You may define a bidirectional one-to-many association by mapping a one-to-many association to the same table column(s) as a many-to-one association and declaring the many-valued end inverse=\"true\"." -msgstr "双方向の一対多関連を定義するには、 一対多関連を多対一関連と同じテーブルのカラムにマッピングし、 多側に inverse=\"true\" と宣言します。" - -#: index.docbook:711 +#. Tag: programlisting +#: collection_mapping.xml:689 +#, no-c-format msgid "" - "\n" - " \n" - " ....\n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " ....\n" - " \n" - "]]>" +"\n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" ...\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "\n" - " \n" - " ....\n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " ....\n" - " \n" - "]]>" -#: index.docbook:713 -msgid "Mapping one end of an association with inverse=\"true\" doesn't affect the operation of cascades, these are orthogonal concepts!" -msgstr "関連の片側に inverse=\"true\" を設定しても、 カスケード操作に影響を与えません。これらは直交した概念です!" +#. Tag: para +#: collection_mapping.xml:691 +#, no-c-format +msgid "" +"Changes made only to the inverse end of the association are not persisted. This means that Hibernate has two representations in " +"memory for every bidirectional association, one link from A to B and another " +"link from B to A. This is easier to understand if you think about the Java " +"object model and how we create a many-to-many relationship in Java:" +msgstr "" +"関連のinverse側にのみ行われた変更は永続化 されません。 " +"これは、Hibernateは全ての双方向関連について、メモリ上に2つの表現を持っている" +"という意味です。 つまり一つはAからBへのリンクで、もう一つはBからAへのリンクと" +"いうことです。 Javaのオブジェクトモデルについて考え、Javaで双方向関係をどう" +"やって作るかを考えれば、 これは理解しやすいです。下記に、Javaでの双方向関連を" +"示します。" -#: index.docbook:721 +#. Tag: programlisting +#: collection_mapping.xml:699 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: collection_mapping.xml:701 +#, no-c-format +msgid "" +"The non-inverse side is used to save the in-memory representation to the " +"database." +msgstr "" +"関連のinverseではない側は、メモリ上の表現をデータベースに保存するのに使われま" +"す。" + +#. Tag: para +#: collection_mapping.xml:705 +#, no-c-format +msgid "" +"You may define a bidirectional one-to-many association by mapping a one-to-" +"many association to the same table column(s) as a many-to-one association " +"and declaring the many-valued end inverse=\"true\"." +msgstr "" +"双方向の一対多関連を定義するには、 一対多関連を多対一関連と同じテーブルのカラ" +"ムにマッピングし、 多側に inverse=\"true\" と宣言します。" + +#. Tag: programlisting +#: collection_mapping.xml:711 +#, no-c-format +msgid "" +"\n" +" \n" +" ....\n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" ....\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: collection_mapping.xml:713 +#, no-c-format +msgid "" +"Mapping one end of an association with inverse=\"true\" " +"doesn't affect the operation of cascades, these are orthogonal concepts!" +msgstr "" +"関連の片側に inverse=\"true\" を設定しても、 カスケード操" +"作に影響を与えません。これらは直交した概念です!" + +#. Tag: title +#: collection_mapping.xml:721 +#, no-c-format msgid "Bidirectional associations with indexed collections" msgstr "インデックス付きコレクションと双方向関連" -#: index.docbook:722 -msgid "A bidirectional association where one end is represented as a <list> or <map> requires special consideration. If there is a property of the child class which maps to the index column, no problem, we can continue using inverse=\"true\" on the collection mapping:" -msgstr "片側が <list><map> である 双方向関連は、特によく考える必要があります。 インデックスカラムにマップされる子クラスのプロパティがある場合は、問題ないです。 コレクションのマッピングで inverse=\"true\" を使い続けられます。" - -#: index.docbook:729 +#. Tag: para +#: collection_mapping.xml:722 +#, no-c-format msgid "" - "\n" - " \n" - " ....\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " ....\n" - " \n" - " \n" - "]]>" +"A bidirectional association where one end is represented as a <" +"list> or <map> requires special " +"consideration. If there is a property of the child class which maps to the " +"index column, no problem, we can continue using inverse=\"true\" on the collection mapping:" msgstr "" - "\n" - " \n" - " ....\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " ....\n" - " \n" - " \n" - "]]>" +"片側が <list><map> であ" +"る 双方向関連は、特によく考える必要があります。 インデックスカラムにマップさ" +"れる子クラスのプロパティがある場合は、問題ないです。 コレクションのマッピング" +"で inverse=\"true\" を使い続けられます。" -#: index.docbook:731 -msgid "But, if there is no such property on the child class, we can't think of the association as truly bidirectional (there is information available at one end of the association that is not available at the other end). In this case, we can't map the collection inverse=\"true\". Instead, we could use the following mapping:" -msgstr "しかし、子クラスにそのようなプロパティがない場合は、 関連を真に双方向であると考えることができません (関連の片側に利用できる情報がありますが、もう一方にはありません)。 この場合は、コレクションに inverse=\"true\" をマッピングできません。 代わりに、次のようなマッピングが使えます。" - -#: index.docbook:738 +#. Tag: programlisting +#: collection_mapping.xml:729 +#, no-c-format msgid "" - "\n" - " \n" - " ....\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " ....\n" - " \n" - "]]>" +"\n" +" \n" +" ....\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" ....\n" +" \n" +" \n" +"]]>" msgstr "" - "\n" - " \n" - " ....\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " ....\n" - " \n" - "]]>" -#: index.docbook:740 -msgid "Note that in this mapping, the collection-valued end of the association is responsible for updates to the foreign key. TODO: Does this really result in some unnecessary update statements?" -msgstr "注意: このマッピングでは、関連のコレクション値の側は、 外部キーをアップデートする責任があります。" +#. Tag: para +#: collection_mapping.xml:731 +#, no-c-format +msgid "" +"But, if there is no such property on the child class, we can't think of the " +"association as truly bidirectional (there is information available at one " +"end of the association that is not available at the other end). In this " +"case, we can't map the collection inverse=\"true\". " +"Instead, we could use the following mapping:" +msgstr "" +"しかし、子クラスにそのようなプロパティがない場合は、 関連を真に双方向であると" +"考えることができません (関連の片側に利用できる情報がありますが、もう一方には" +"ありません)。 この場合は、コレクションに inverse=\"true\" をマッピングできません。 代わりに、次のようなマッピングが使えます。" -#: index.docbook:748 +#. Tag: programlisting +#: collection_mapping.xml:738 +#, no-c-format +msgid "" +"\n" +" \n" +" ....\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" ....\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: collection_mapping.xml:740 +#, no-c-format +msgid "" +"Note that in this mapping, the collection-valued end of the association is " +"responsible for updates to the foreign key. TODO: Does this really result in " +"some unnecessary update statements?" +msgstr "" +"注意: このマッピングでは、関連のコレクション値の側は、 外部キーをアップデー" +"トする責任があります。" + +#. Tag: title +#: collection_mapping.xml:748 +#, no-c-format msgid "Ternary associations" msgstr "3項関連" -#: index.docbook:750 -msgid "There are three possible approaches to mapping a ternary association. One is to use a Map with an association as its index:" -msgstr "3項関連のマッピングには3つのアプローチがあります。 1つ目は関連をインデックスとして Map を使用するアプローチです。" - -#: index.docbook:755 +#. Tag: para +#: collection_mapping.xml:750 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - "]]>" +"There are three possible approaches to mapping a ternary association. One is " +"to use a Map with an association as its index:" msgstr "" - "\n" - " \n" - " \n" - " \n" - "]]>" +"3項関連のマッピングには3つのアプローチがあります。 1つ目は関連をインデックス" +"として Map を使用するアプローチです。" -#: index.docbook:757 +#. Tag: programlisting +#: collection_mapping.xml:755 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:759 -msgid "A second approach is to simply remodel the association as an entity class. This is the approach we use most commonly." -msgstr "2つ目は単純に関連をエンティティ・クラスとしてモデルを作り直すアプローチで、 頻繁に使われます。" +#. Tag: programlisting +#: collection_mapping.xml:757 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" -#: index.docbook:764 -msgid "A final alternative is to use composite elements, which we will discuss later." -msgstr "最後はcomposite要素を使うアプローチです。これに関する議論は後ほど行います。" +#. Tag: para +#: collection_mapping.xml:759 +#, no-c-format +msgid "" +"A second approach is to simply remodel the association as an entity class. " +"This is the approach we use most commonly." +msgstr "" +"2つ目は単純に関連をエンティティ・クラスとしてモデルを作り直すアプローチで、 頻" +"繁に使われます。" -#: index.docbook:771 +#. Tag: para +#: collection_mapping.xml:764 +#, no-c-format +msgid "" +"A final alternative is to use composite elements, which we will discuss " +"later." +msgstr "" +"最後はcomposite要素を使うアプローチです。これに関する議論は後ほど行います。" + +#. Tag: literal +#: collection_mapping.xml:771 +#, no-c-format msgid "Using an <idbag>" msgstr "<idbag>の使用" -#: index.docbook:773 -msgid "If you've fully embraced our view that composite keys are a bad thing and that entities should have synthetic identifiers (surrogate keys), then you might find it a bit odd that the many to many associations and collections of values that we've shown so far all map to tables with composite keys! Now, this point is quite arguable; a pure association table doesn't seem to benefit much from a surrogate key (though a collection of composite values might). Nevertheless, Hibernate provides a feature that allows you to map many to many associations and collections of values to a table with a surrogate key." -msgstr "複合キーは悪いもので、エンティティは人工の識別子(代理キー)を持つべきであるという考え方からは、 多対多関連と値のコレクションを複合キーを用いたテーブルへマッピングするのは少し奇妙に感じるかもしれません! 確かにこの考え方には議論の余地があります。 純粋な関連テーブルは代理キーを使っても利益を得られないように思えるからです (合成値のコレクションは利益がある かも しれませんが)。 とはいえ、Hibernateは代理キーを持つテーブルへ多対多関連と値のコレクションを マッピングする機能も備えています。" - -#: index.docbook:784 -msgid "The <idbag> element lets you map a List (or Collection) with bag semantics." -msgstr "bagのセマンティックスを持った List(または Collection)を <idbag> 要素にマッピングできます。" - -#: index.docbook:789 +#. Tag: para +#: collection_mapping.xml:773 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"If you've fully embraced our view that composite keys are a bad thing and " +"that entities should have synthetic identifiers (surrogate keys), then you " +"might find it a bit odd that the many to many associations and collections " +"of values that we've shown so far all map to tables with composite keys! " +"Now, this point is quite arguable; a pure association table doesn't seem to " +"benefit much from a surrogate key (though a collection of composite values " +"might). Nevertheless, Hibernate provides a feature that " +"allows you to map many to many associations and collections of values to a " +"table with a surrogate key." msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"複合キーは悪いもので、エンティティは人工の識別子(代理キー)を持つべきであると" +"いう考え方からは、 多対多関連と値のコレクションを複合キーを用いたテーブルへ" +"マッピングするのは少し奇妙に感じるかもしれません! 確かにこの考え方には議論の" +"余地があります。 純粋な関連テーブルは代理キーを使っても利益を得られないように" +"思えるからです (合成値のコレクションは利益がある かも " +"しれませんが)。 とはいえ、Hibernateは代理キーを持つテーブルへ多対多関連と値" +"のコレクションを マッピングする機能も備えています。" -#: index.docbook:791 -msgid "As you can see, an <idbag> has a synthetic id generator, just like an entity class! A different surrogate key is assigned to each collection row. Hibernate does not provide any mechanism to discover the surrogate key value of a particular row, however." -msgstr "ご存知のように <idbag> はエンティティ・クラスのように 人工的なidジェネレータを持っています! 異なる代理キーをそれぞれのコレクションの列に割り当てます。 しかしながら、Hibernateはある行の代理キーの値を見つけ出す機構を持っていません。" +#. Tag: para +#: collection_mapping.xml:784 +#, no-c-format +msgid "" +"The <idbag> element lets you map a List (or Collection) with bag semantics." +msgstr "" +"bagのセマンティックスを持った List(または " +"Collection)を <idbag> 要素にマッ" +"ピングできます。" -#: index.docbook:798 -msgid "Note that the update performance of an <idbag> is much better than a regular <bag>! Hibernate can locate individual rows efficiently and update or delete them individually, just like a list, map or set." -msgstr "<idbag> を更新するパフォーマンスは 通常の <bag> よりも良いことに注目してください! Hibernateは個々の行を効果的に見つけることができ、 listやmap、setのように個別にその行を更新、削除できます。" +#. Tag: programlisting +#: collection_mapping.xml:789 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" -#: index.docbook:805 -msgid "In the current implementation, the native identifier generation strategy is not supported for <idbag> collection identifiers." -msgstr "現在の実装では、native というid生成戦略を <idbag> コレクションの識別子に対して使えません。" +#. Tag: para +#: collection_mapping.xml:791 +#, no-c-format +msgid "" +"As you can see, an <idbag> has a synthetic id " +"generator, just like an entity class! A different surrogate key is assigned " +"to each collection row. Hibernate does not provide any mechanism to discover " +"the surrogate key value of a particular row, however." +msgstr "" +"ご存知のように <idbag> はエンティティ・クラスのよう" +"に 人工的なidジェネレータを持っています! 異なる代理キーをそれぞれのコレク" +"ションの列に割り当てます。 しかしながら、Hibernateはある行の代理キーの値を見" +"つけ出す機構を持っていません。" -#: index.docbook:829 +#. Tag: para +#: collection_mapping.xml:798 +#, no-c-format +msgid "" +"Note that the update performance of an <idbag> is " +"much better than a regular <bag>! Hibernate can locate individual rows efficiently and update or " +"delete them individually, just like a list, map or set." +msgstr "" +"<idbag> を更新するパフォーマンスは 通常の " +"<bag> よりも良いことに注目してください! Hibernateは" +"個々の行を効果的に見つけることができ、 listやmap、setのように個別にその行を更" +"新、削除できます。" + +#. Tag: para +#: collection_mapping.xml:805 +#, no-c-format +msgid "" +"In the current implementation, the native identifier " +"generation strategy is not supported for <idbag> " +"collection identifiers." +msgstr "" +"現在の実装では、native というid生成戦略を <" +"idbag> コレクションの識別子に対して使えません。" + +#. Tag: title +#: collection_mapping.xml:829 +#, no-c-format msgid "Collection examples" msgstr "コレクションの例" -#: index.docbook:831 -msgid "The previous sections are pretty confusing. So lets look at an example. This class:" +#. Tag: para +#: collection_mapping.xml:831 +#, no-c-format +msgid "" +"The previous sections are pretty confusing. So lets look at an example. This " +"class:" msgstr "これまでの節の説明では理解しにくいので、以下の例を見てください。" -#: index.docbook:836 +#. Tag: programlisting +#: collection_mapping.xml:836 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:838 -msgid "has a collection of Child instances. If each child has at most one parent, the most natural mapping is a one-to-many association:" -msgstr "このクラスは Child インスタンスのコレクションを持っています。 もし各々のchildが最大でも一つのparentを持っているならば、最も自然なマッピングは一対多関連です。" - -#: index.docbook:844 +#. Tag: para +#: collection_mapping.xml:838 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"has a collection of Child instances. If each child has at " +"most one parent, the most natural mapping is a one-to-many association:" msgstr "" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"このクラスは Child インスタンスのコレクションを持っていま" +"す。 もし各々のchildが最大でも一つのparentを持っているならば、最も自然なマッ" +"ピングは一対多関連です。" -#: index.docbook:846 +#. Tag: programlisting +#: collection_mapping.xml:844 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: collection_mapping.xml:846 +#, no-c-format msgid "This maps to the following table definitions:" msgstr "これは以下のテーブル定義にマッピングします。" -#: index.docbook:850 +#. Tag: programlisting +#: collection_mapping.xml:850 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:852 -msgid "If the parent is required, use a bidirectional one-to-many association:" -msgstr "もしparentが 要求 されるなら、双方向の一対多関連を使用してください。" - -#: index.docbook:857 +#. Tag: para +#: collection_mapping.xml:852 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"If the parent is required, use a bidirectional one-to-" +"many association:" msgstr "" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"もしparentが 要求 されるなら、双方向の一対多関連を使用し" +"てください。" -#: index.docbook:859 +#. Tag: programlisting +#: collection_mapping.xml:857 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: collection_mapping.xml:859 +#, no-c-format msgid "Notice the NOT NULL constraint:" msgstr "NOT NULL 制約に注意してください。" -#: index.docbook:863 +#. Tag: programlisting +#: collection_mapping.xml:863 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:865 -msgid "Alternatively, if you absolutely insist that this association should be unidirectional, you can declare the NOT NULL constraint on the <key> mapping:" -msgstr "あるいは、もしこの関連は単方向であるべきと強く主張するのであれば、 <key>NOT NULL 制約を宣言できます。" - -#: index.docbook:871 +#. Tag: para +#: collection_mapping.xml:865 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"Alternatively, if you absolutely insist that this association should be " +"unidirectional, you can declare the NOT NULL constraint " +"on the <key> mapping:" msgstr "" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"あるいは、もしこの関連は単方向であるべきと強く主張するのであれば、 " +"<key>NOT NULL 制約を宣言でき" +"ます。" -#: index.docbook:873 -msgid "On the other hand, if a child might have multiple parents, a many-to-many association is appropriate:" +#. Tag: programlisting +#: collection_mapping.xml:871 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: collection_mapping.xml:873 +#, no-c-format +msgid "" +"On the other hand, if a child might have multiple parents, a many-to-many " +"association is appropriate:" msgstr "一方で、もしchildが複数のparentを持てるならば、多対多関連が妥当です。" -#: index.docbook:878 +#. Tag: programlisting +#: collection_mapping.xml:878 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"]]>" msgstr "" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" -#: index.docbook:880 +#. Tag: para +#: collection_mapping.xml:880 +#, no-c-format msgid "Table definitions:" msgstr "テーブル定義は以下のようになります。" -#: index.docbook:884 +#. Tag: programlisting +#: collection_mapping.xml:884 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:886 -msgid "For more examples and a complete walk-through a parent/child relationship mapping, see ." -msgstr "parent/child関係のマッピングについてのより多くの例や完全な手順が必要であれば、 をご覧ください。" +#. Tag: para +#: collection_mapping.xml:886 +#, no-c-format +msgid "" +"For more examples and a complete walk-through a parent/child relationship " +"mapping, see ." +msgstr "" +"parent/child関係のマッピングについてのより多くの例や完全な手順が必要であれ" +"ば、 をご覧ください。" -#: index.docbook:891 -msgid "Even more exotic association mappings are possible, we will catalog all possibilities in the next chapter." +#. Tag: para +#: collection_mapping.xml:891 +#, no-c-format +msgid "" +"Even more exotic association mappings are possible, we will catalog all " +"possibilities in the next chapter." msgstr "また、さらに特殊な関連マッピングも可能です。次の章で詳しく述べます。" -msgid "ROLES_OF_TRANSLATORS" -msgstr "" +#~ msgid "" +#~ "column_name (required): The name of the column holding " +#~ "the collection index values." +#~ msgstr "" +#~ "column_name(必須):コレクションインデックスの値を保持" +#~ "するカラムの名前。" -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#~ msgid "" +#~ "base (optional, defaults to 0): The " +#~ "value of the index column that corresponds to the first element of the " +#~ "list or array." +#~ msgstr "" +#~ "base(オプション、デフォルトは 0): " +#~ "リストもしくは配列の最初の要素に該当するインデックスカラムの値。" +#~ msgid "" +#~ "column (optional): The name of the column holding the " +#~ "collection index values." +#~ msgstr "" +#~ "column(オプション): コレクションインデックスの値を保" +#~ "持するカラムの名前。" + +#~ msgid "" +#~ "formula (optional): A SQL formula used to evaluate the " +#~ "key of the map." +#~ msgstr "" +#~ "formula(オプション): Mapのキーを評価するのに使われる" +#~ "SQL式。" + +#~ msgid "type (reguired): The type of the map keys." +#~ msgstr "type(必須): Mapのキーの型。" + +#~ msgid "" +#~ "column (optional): The name of the foreign key column " +#~ "for the collection index values." +#~ msgstr "" +#~ "column (オプション): コレクションインデックスの値のた" +#~ "めの外部キーカラムの名前。" + +#~ msgid "" +#~ "formula (optional): A SQL formula used to evaluate the " +#~ "foreign key of the map key." +#~ msgstr "" +#~ "formula (オプション): Mapのキーのための外部キーを評価" +#~ "するために使うSQL式。" + +#~ msgid "" +#~ "class (required): The entity class used as the map key." +#~ msgstr "" +#~ "class (必須): Mapのキーとして使われるエンティティクラ" +#~ "ス。" + +#~ msgid "" +#~ "column (optional): The name of the column holding the " +#~ "collection element values." +#~ msgstr "" +#~ "column (オプション): コレクションの要素の値を保持する" +#~ "カラムの名前。" + +#~ msgid "" +#~ "formula (optional): An SQL formula used to evaluate " +#~ "the element." +#~ msgstr "" +#~ "formula (オプション): 要素を評価するために使うSQL式。" + +#~ msgid "" +#~ "type (required): The type of the collection element." +#~ msgstr "type (必須)コレクションの要素の型。" + +#~ msgid "" +#~ "A many-to-many association is specified using the " +#~ "<many-to-many> element." +#~ msgstr "" +#~ "多対多関連<many-to-many> 要素で指定します。" + +#~ msgid "" +#~ "column (optional): The name of the element foreign key " +#~ "column." +#~ msgstr "" +#~ "column (オプション): 外部キーカラムの要素の名前。" + +#~ msgid "" +#~ "formula (optional): An SQL formula used to evaluate " +#~ "the element foreign key value." +#~ msgstr "" +#~ "formula (オプション): 外部キー値の要素を評価するため" +#~ "に使うSQL式。" + +#~ msgid "" +#~ "fetch (optional - defaults to join): enables outer-join or sequential select fetching for this " +#~ "association. This is a special case; for full eager fetching (in a single " +#~ "SELECT) of an entity and its many-to-many " +#~ "relationships to other entities, you would enable join " +#~ "fetching not only of the collection itself, but also with this attribute " +#~ "on the <many-to-many> nested element." +#~ msgstr "" +#~ "fetch (オプション - デフォルトは join): 関連のために、外部結合か順次選択フェッチを有効にします。 これは" +#~ "特殊なケースですが、エンティティと他のエンティティとの多対多関係を (1つ" +#~ "の SELECT により)完全に即時にフェッチするためには、 そ" +#~ "のコレクション自体だけでなく、 ネストした要素である <many-to-" +#~ "many> のこの属性についても join フェッチを" +#~ "有効する必要があります。" + +#~ msgid "" +#~ "unique (optional): Enable the DDL generation of a " +#~ "unique constraint for the foreign-key column. This makes the association " +#~ "multiplicity effectively one to many." +#~ msgstr "" +#~ "unique (オプション): 外部キーカラムのユニーク制約の" +#~ "DDL生成を有効にします。 これは、関連の多重度を事実上一対多にします。" + +#~ msgid "" +#~ "not-found (optional - defaults to exception): Specifies how foreign keys that reference missing rows will be " +#~ "handled: ignore will treat a missing row as a null " +#~ "association." +#~ msgstr "" +#~ "not-found (オプション - デフォルトは " +#~ "exception) 参照先の行がない外部キーをどのように扱うか" +#~ "を指定します。 ignore にすると、行がないことを関連が無" +#~ "いものとして扱います。" + +#~ msgid "" +#~ "property-ref: (optional) The name of a property of the " +#~ "associated class that is joined to this foreign key. If not specified, " +#~ "the primary key of the associated class is used." +#~ msgstr "" +#~ "property-ref: (オプション) この外部キーに結合する関連" +#~ "クラスのプロパティ名。 指定しなかった場合は、関連クラスの主キーを使いま" +#~ "す。" diff --git a/documentation/manual/translations/ja-JP/content/component_mapping.po b/documentation/manual/translations/ja-JP/content/component_mapping.po index 0f308cd8e2..d2a41e65ac 100644 --- a/documentation/manual/translations/ja-JP/content/component_mapping.po +++ b/documentation/manual/translations/ja-JP/content/component_mapping.po @@ -1,532 +1,676 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: component_mapping.xml:5 +#, no-c-format msgid "Component Mapping" msgstr "コンポーネントのマッピング" -#: index.docbook:7 -msgid "The notion of a component is re-used in several different contexts, for different purposes, throughout Hibernate." -msgstr "コンポーネント の概念は、Hibernateを通して様々な状況の中で 異なる目的のために再利用されます。" +#. Tag: para +#: component_mapping.xml:7 +#, no-c-format +msgid "" +"The notion of a component is re-used in several " +"different contexts, for different purposes, throughout Hibernate." +msgstr "" +"コンポーネント の概念は、Hibernateを通して様々な状況の中" +"で 異なる目的のために再利用されます。" -#: index.docbook:13 +#. Tag: title +#: component_mapping.xml:13 +#, no-c-format msgid "Dependent objects" msgstr "依存オブジェクト" -#: index.docbook:15 -msgid "A component is a contained object that is persisted as a value type, not an entity reference. The term \"component\" refers to the object-oriented notion of composition (not to architecture-level components). For example, you might model a person like this:" -msgstr "コンポーネントは、エンティティの参照ではなく値型として永続化された、 包含されたオブジェクトです。コンポーネントという言葉については、コンポジションという オブジェクト指向の概念を参照してください(アーキテクチャレベルのコンポーネントではありません)。 例えば、以下のPersonモデルのようなものです。" - -#: index.docbook:21 +#. Tag: para +#: component_mapping.xml:15 +#, no-c-format msgid "" - "" +"A component is a contained object that is persisted as a value type, not an " +"entity reference. The term \"component\" refers to the object-oriented " +"notion of composition (not to architecture-level components). For example, " +"you might model a person like this:" msgstr "" - "" +"コンポーネントは、エンティティの参照ではなく値型として永続化された、 包含され" +"たオブジェクトです。コンポーネントという言葉については、コンポジションという " +"オブジェクト指向の概念を参照してください(アーキテクチャレベルのコンポーネン" +"トではありません)。 例えば、以下のPersonモデルのようなものです。" -#: index.docbook:23 +#. Tag: programlisting +#: component_mapping.xml:21 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:25 -msgid "Now Name may be persisted as a component of Person. Notice that Name defines getter and setter methods for its persistent properties, but doesn't need to declare any interfaces or identifier properties." -msgstr "いま、NamePerson のコンポーネントとして 永続化することが出来ます。ここで Name は永続化属性に対してgetter、 setterメソッドを定義しますが、インターフェイスや識別子プロパティを定義する必要が ないことに注意して下さい。" +#. Tag: programlisting +#: component_mapping.xml:23 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:32 +#. Tag: para +#: component_mapping.xml:25 +#, no-c-format +msgid "" +"Now Name may be persisted as a component of " +"Person. Notice that Name defines " +"getter and setter methods for its persistent properties, but doesn't need to " +"declare any interfaces or identifier properties." +msgstr "" +"いま、NamePerson のコンポーネントと" +"して 永続化することが出来ます。ここで Name は永続化属性に" +"対してgetter、 setterメソッドを定義しますが、インターフェイスや識別子プロパ" +"ティを定義する必要が ないことに注意して下さい。" + +#. Tag: para +#: component_mapping.xml:32 +#, no-c-format msgid "Our Hibernate mapping would look like:" msgstr "マッピング定義は以下のようになります。" -#: index.docbook:36 +#. Tag: programlisting +#: component_mapping.xml:36 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:38 -msgid "The person table would have the columns pid, birthday, initial, first and last." -msgstr "Personテーブルは pidbirthdayinitialfirstlast カラムを持ちます。" - -#: index.docbook:46 -msgid "Like all value types, components do not support shared references. In other words, two persons could have the same name, but the two person objects would contain two independent name ojects, only \"the same\" by value. The null value semantics of a component are ad hoc. When reloading the containing object, Hibernate will assume that if all component columns are null, then the entire component is null. This should be okay for most purposes." -msgstr "全ての値型のように、コンポーネントは参照の共有をすることができません。 言い換えると、二人のPersonは同じ名前を持つことができますが、二つのPersonオブジェクトは \"値が同じだけ\"の別々のnameオブジェクトを含んでいるということです。 コンポーネントのnull値のセマンティクスは アドホック です。 コンポーネントのオブジェクトを再読み込みする際、Hibernateはコンポーネントのすべてのカラムが nullであるならコンポーネント自体がnullであると考えます。 これは大抵の場合問題ありません。" - -#: index.docbook:55 -msgid "The properties of a component may be of any Hibernate type (collections, many-to-one associations, other components, etc). Nested components should not be considered an exotic usage. Hibernate is intended to support a very fine-grained object model." -msgstr "コンポーネントの属性はどんなHibernateの型でも構いません(コレクション、many-to-one関連、 他のコンポーネントなど)。ネストされたコンポーネントは滅多に使わないと考えるべきでは ありません 。Hibernateは非常にきめの細かいオブジェクトモデルをサポートするように意図されています。" - -#: index.docbook:62 -msgid "The <component> element allows a <parent> subelement that maps a property of the component class as a reference back to the containing entity." -msgstr "<component> 要素は親エンティティへの逆参照として、コンポーネントクラスの 属性をマッピングする <parent> サブ要素を使用できます。" - -#: index.docbook:68 +#. Tag: para +#: component_mapping.xml:38 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"The person table would have the columns pid, " +"birthday, initial, first and last." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"Personテーブルは pidbirthday、 " +"initialfirstlast カラムを持ちます。" -#: index.docbook:73 +#. Tag: para +#: component_mapping.xml:46 +#, no-c-format +msgid "" +"Like all value types, components do not support shared references. In other " +"words, two persons could have the same name, but the two person objects " +"would contain two independent name ojects, only \"the same\" by value. The " +"null value semantics of a component are ad hoc. When " +"reloading the containing object, Hibernate will assume that if all component " +"columns are null, then the entire component is null. This should be okay for " +"most purposes." +msgstr "" +"全ての値型のように、コンポーネントは参照の共有をすることができません。 言い換" +"えると、二人のPersonは同じ名前を持つことができますが、二つのPersonオブジェク" +"トは \"値が同じだけ\"の別々のnameオブジェクトを含んでいるということです。 コ" +"ンポーネントのnull値のセマンティクスは アドホック で" +"す。 コンポーネントのオブジェクトを再読み込みする際、Hibernateはコンポーネン" +"トのすべてのカラムが nullであるならコンポーネント自体がnullであると考えま" +"す。 これは大抵の場合問題ありません。" + +#. Tag: para +#: component_mapping.xml:55 +#, no-c-format +msgid "" +"The properties of a component may be of any Hibernate type (collections, " +"many-to-one associations, other components, etc). Nested components should " +"not be considered an exotic usage. Hibernate is " +"intended to support a very fine-grained object model." +msgstr "" +"コンポーネントの属性はどんなHibernateの型でも構いません(コレクション、many-" +"to-one関連、 他のコンポーネントなど)。ネストされたコンポーネントは滅多に使わ" +"ないと考えるべきでは ありません 。Hibernateは非常にきめ" +"の細かいオブジェクトモデルをサポートするように意図されています。" + +#. Tag: para +#: component_mapping.xml:62 +#, no-c-format +msgid "" +"The <component> element allows a <" +"parent> subelement that maps a property of the component class " +"as a reference back to the containing entity." +msgstr "" +"<component> 要素は親エンティティへの逆参照として、コ" +"ンポーネントクラスの 属性をマッピングする <parent> " +"サブ要素を使用できます。" + +#. Tag: programlisting +#: component_mapping.xml:68 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"Collections of components are supported (eg. an array of type Name). Declare your component collection by replacing the <" +"element> tag with a <composite-element> tag." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"Hibernateはコンポーネントのコレクションをサポートしています(例えば " +"Name 型の配列)。 <element> タグ" +"を <composite-element> タグに取り替えることにより コ" +"ンポーネントコレクションを宣言してください。" -#: index.docbook:84 -msgid "Note: if you define a Set of composite elements, it is very important to implement equals() and hashCode() correctly." -msgstr "注意: コンポジットエレメントの Set を定義したなら、 equals()hashCode() を正しく実装することが重要です。" - -#: index.docbook:90 -msgid "Composite elements may contain components but not collections. If your composite element itself contains components, use the <nested-composite-element> tag. This is a pretty exotic case - a collection of components which themselves have components. By this stage you should be asking yourself if a one-to-many association is more appropriate. Try remodelling the composite element as an entity - but note that even though the Java model is the same, the relational model and persistence semantics are still slightly different." -msgstr "コンポジットエレメントはコレクションを含まず、コンポーネントを含むこともあります。 コンポジットエレメント自身がコンポーネントを含んでいる場合は <nested-composite-element> を 使用してください。コンポーネントのコレクション自身がコンポーネントを持つというケースはめったにありません。 この段階までに、one-to-many関連の方がより適切でないかと熟考してください。 コンポジットエレメントをエンティティとして再度モデリングしてみてください。 しかしこれはJavaのモデルとしては同じですが、リレーショナルモデルと永続動作はまだ若干異なることに注意してください。" - -#: index.docbook:102 -msgid "Please note that a composite element mapping doesn't support null-able properties if you're using a <set>. Hibernate has to use each columns value to identify a record when deleting objects (there is no separate primary key column in the composite element table), which is not possible with null values. You have to either use only not-null properties in a composite-element or choose a <list>, <map>, <bag> or <idbag>." -msgstr "もし <set> を使用するのであれば、コンポジットエレメントのマッピングがnull値が可能な 属性をサポートしていないことに注意してください。Hibernateはオブジェクトを削除するとき、 レコードを識別するためにそれぞれのカラムの値を使用する必要があるため、null値を持つことが出来ません (コンポジットエレメントテーブルには別の主キーカラムはありません)。 コンポジットエレメントにnot-nullの属性のみを使用するか、または <list><map><bag><idbag> を選択する必要があります。" - -#: index.docbook:113 -msgid "A special case of a composite element is a composite element with a nested <many-to-one> element. A mapping like this allows you to map extra columns of a many-to-many association table to the composite element class. The following is a many-to-many association from Order to Item where purchaseDate, price and quantity are properties of the association:" -msgstr "コンポジットエレメントの特別なケースとして、ネストされた <many-to-one> 属性を持つ コンポジットエレメントがあります。 このマッピングは、コンポジットエレメントクラスを多対多関連テーブルの 余分なカラムへマッピングします。 次の例は Order から、Item への多対多関連です。 purchaseDatepricequantity は関連の属性となります。" - -#: index.docbook:123 +#. Tag: programlisting +#: component_mapping.xml:82 +#, no-c-format msgid "" - "\n" - " ....\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " .... \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:125 -msgid "Of course, there can't be a reference to the purchae on the other side, for bidirectional association navigation. Remember that components are value types and don't allow shared references. A single Purchase can be in the set of an Order, but it can't be referenced by the Item at the same time." -msgstr "もちろん、双方向関連のナビゲーションのために反対側からpurchaseへの参照を作ることは出来ません。 コンポーネントは値型であり、参照を共有できないことを覚えておいてください。 一つの Purchase は一つの Order のsetに存在できますが、 同時に Item から参照することは出来ません。" +#. Tag: para +#: component_mapping.xml:84 +#, no-c-format +msgid "" +"Note: if you define a Set of composite elements, it is " +"very important to implement equals() and hashCode" +"() correctly." +msgstr "" +"注意: コンポジットエレメントの Set を定義したなら、 " +"equals()hashCode() を正しく実装する" +"ことが重要です。" -#: index.docbook:133 +#. Tag: para +#: component_mapping.xml:90 +#, no-c-format +msgid "" +"Composite elements may contain components but not collections. If your " +"composite element itself contains components, use the <nested-" +"composite-element> tag. This is a pretty exotic case - a " +"collection of components which themselves have components. By this stage you " +"should be asking yourself if a one-to-many association is more appropriate. " +"Try remodelling the composite element as an entity - but note that even " +"though the Java model is the same, the relational model and persistence " +"semantics are still slightly different." +msgstr "" +"コンポジットエレメントはコレクションを含まず、コンポーネントを含むこともあり" +"ます。 コンポジットエレメント自身がコンポーネントを含んでいる場合は " +"<nested-composite-element> を 使用してください。コン" +"ポーネントのコレクション自身がコンポーネントを持つというケースはめったにあり" +"ません。 この段階までに、one-to-many関連の方がより適切でないかと熟考してくだ" +"さい。 コンポジットエレメントをエンティティとして再度モデリングしてみてくださ" +"い。 しかしこれはJavaのモデルとしては同じですが、リレーショナルモデルと永続動" +"作はまだ若干異なることに注意してください。" + +#. Tag: para +#: component_mapping.xml:102 +#, no-c-format +msgid "" +"Please note that a composite element mapping doesn't support null-able " +"properties if you're using a <set>. Hibernate has " +"to use each columns value to identify a record when deleting objects (there " +"is no separate primary key column in the composite element table), which is " +"not possible with null values. You have to either use only not-null " +"properties in a composite-element or choose a <list>, <map>, <bag> or " +"<idbag>." +msgstr "" +"もし <set> を使用するのであれば、コンポジットエレメ" +"ントのマッピングがnull値が可能な 属性をサポートしていないことに注意してくださ" +"い。Hibernateはオブジェクトを削除するとき、 レコードを識別するためにそれぞれ" +"のカラムの値を使用する必要があるため、null値を持つことが出来ません (コンポ" +"ジットエレメントテーブルには別の主キーカラムはありません)。 コンポジットエレ" +"メントにnot-nullの属性のみを使用するか、または <list><map><bag>、" +"<idbag> を選択する必要があります。" + +#. Tag: para +#: component_mapping.xml:113 +#, no-c-format +msgid "" +"A special case of a composite element is a composite element with a nested " +"<many-to-one> element. A mapping like this allows " +"you to map extra columns of a many-to-many association table to the " +"composite element class. The following is a many-to-many association from " +"Order to Item where " +"purchaseDate, price and " +"quantity are properties of the association:" +msgstr "" +"コンポジットエレメントの特別なケースとして、ネストされた <many-" +"to-one> 属性を持つ コンポジットエレメントがあります。 このマッピ" +"ングは、コンポジットエレメントクラスを多対多関連テーブルの 余分なカラムへマッ" +"ピングします。 次の例は Order から、Item への多対多関連です。 purchaseDate、" +"pricequantity は関連の属性となりま" +"す。" + +#. Tag: programlisting +#: component_mapping.xml:123 +#, no-c-format +msgid "" +"\n" +" ....\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: component_mapping.xml:125 +#, no-c-format +msgid "" +"Of course, there can't be a reference to the purchae on the other side, for " +"bidirectional association navigation. Remember that components are value " +"types and don't allow shared references. A single Purchase can be in the set of an Order, but it can't be " +"referenced by the Item at the same time." +msgstr "" +"もちろん、双方向関連のナビゲーションのために反対側からpurchaseへの参照を作る" +"ことは出来ません。 コンポーネントは値型であり、参照を共有できないことを覚えて" +"おいてください。 一つの Purchase は一つの Order のsetに存在できますが、 同時に Item から参照する" +"ことは出来ません。" + +#. Tag: para +#: component_mapping.xml:133 +#, no-c-format msgid "Even ternary (or quaternary, etc) associations are possible:" msgstr "3項関連(あるいは4項など)も可能です。" -#: index.docbook:135 +#. Tag: programlisting +#: component_mapping.xml:135 +#, no-c-format msgid "" - "\n" - " ....\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" ....\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " .... \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:137 -msgid "Composite elements may appear in queries using the same syntax as associations to other entities." -msgstr "コンポジットエレメントは他のエンティティへの関連として、 同じシンタックスを使っているクエリ内で使用できます。" +#. Tag: para +#: component_mapping.xml:137 +#, no-c-format +msgid "" +"Composite elements may appear in queries using the same syntax as " +"associations to other entities." +msgstr "" +"コンポジットエレメントは他のエンティティへの関連として、 同じシンタックスを" +"使っているクエリ内で使用できます。" -#: index.docbook:145 +#. Tag: title +#: component_mapping.xml:145 +#, no-c-format msgid "Components as Map indices" msgstr "Mapのインデックスとしてのコンポーネント" -#: index.docbook:147 -msgid "The <composite-map-key> element lets you map a component class as the key of a Map. Make sure you override hashCode() and equals() correctly on the component class." -msgstr "<composite-map-key> 要素は Map のキーとしてコンポーネントクラスを マッピングします。コンポーネントクラス上で hashCode()equals() を正確にオーバーライドしてください。" +#. Tag: para +#: component_mapping.xml:147 +#, no-c-format +msgid "" +"The <composite-map-key> element lets you map a " +"component class as the key of a Map. Make sure you " +"override hashCode() and equals() " +"correctly on the component class." +msgstr "" +"<composite-map-key> 要素は Map の" +"キーとしてコンポーネントクラスを マッピングします。コンポーネントクラス上で " +"hashCode()equals() を正確にオーバー" +"ライドしてください。" -#: index.docbook:156 +#. Tag: title +#: component_mapping.xml:156 +#, no-c-format msgid "Components as composite identifiers" msgstr "複合識別子としてのコンポーネント" -#: index.docbook:158 -msgid "You may use a component as an identifier of an entity class. Your component class must satisfy certain requirements:" -msgstr "コンポーネントをエンティティクラスの識別子として使うことができます。 コンポーネントクラスは以下の条件を満たす必要があります。" +#. Tag: para +#: component_mapping.xml:158 +#, no-c-format +msgid "" +"You may use a component as an identifier of an entity class. Your component " +"class must satisfy certain requirements:" +msgstr "" +"コンポーネントをエンティティクラスの識別子として使うことができます。 コンポー" +"ネントクラスは以下の条件を満たす必要があります。" -#: index.docbook:165 +#. Tag: para +#: component_mapping.xml:165 +#, no-c-format msgid "It must implement java.io.Serializable." msgstr "java.io.Serializable を実装しなければなりません。" -#: index.docbook:170 -msgid "It must re-implement equals() and hashCode(), consistently with the database's notion of composite key equality." -msgstr "データベース上の複合キーの等価性と矛盾のないように、equals()hashCode() を再実装しなければなりません。" - -#: index.docbook:179 -msgid "Note: in Hibernate3, the second requirement is not an absolutely hard requirement of Hibernate. But do it anyway." -msgstr "注意: Hibernate3において、2番目の条件は絶対的な条件ではありません。 しかしとにかく条件を満たしてください。" - -#: index.docbook:183 -msgid "You can't use an IdentifierGenerator to generate composite keys. Instead the application must assign its own identifiers." -msgstr "複合キーを生成するために IdentifierGenerator を使用することはできません。 代わりにアプリケーションが識別子を割り当てなくてはなりません。" - -#: index.docbook:188 -msgid "Use the <composite-id> tag (with nested <key-property> elements) in place of the usual <id> declaration. For example, the OrderLine class has a primary key that depends upon the (composite) primary key of Order." -msgstr "通常の <id> 宣言の代わりに <composite-id> タグを (ネストされた <key-property> 属性と共に)使います。 以下の例では、OrderLine クラスは Order の(複合)主キーに 依存した主キーを持っています。" - -#: index.docbook:196 +#. Tag: para +#: component_mapping.xml:170 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ....\n" - " \n" - "]]>" +"It must re-implement equals() and hashCode(), consistently with the database's notion of composite key equality." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " .... \n" - " \n" - "]]>" +"データベース上の複合キーの等価性と矛盾のないように、equals()hashCode() を再実装しなければなりません。" -#: index.docbook:198 -msgid "Now, any foreign keys referencing the OrderLine table are also composite. You must declare this in your mappings for other classes. An association to OrderLine would be mapped like this:" -msgstr "このとき、OrderLine テーブルへ関連する外部キーもまた複合です。 他のクラスのマッピングでこれを宣言しなければなりません。 OrderLine への関連は次のようにマッピングされます。" - -#: index.docbook:204 +#. Tag: emphasis +#: component_mapping.xml:179 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " \n" - "]]>" +"Note: in Hibernate3, the second requirement is not an absolutely hard " +"requirement of Hibernate. But do it anyway." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"注意: Hibernate3において、2番目の条件は絶対的な条件ではありません。 しかしと" +"にかく条件を満たしてください。" -#: index.docbook:206 -msgid "(Note that the <column> tag is an alternative to the column attribute everywhere.)" -msgstr "(<column> タグはどこであっても column 属性の 代わりになります。)" - -#: index.docbook:211 -msgid "A many-to-many association to OrderLine also uses the composite foreign key:" -msgstr "OrderLine への many-to-many 関連も 複合外部キーを使います。" - -#: index.docbook:216 +#. Tag: para +#: component_mapping.xml:183 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"You can't use an IdentifierGenerator to generate " +"composite keys. Instead the application must assign its own identifiers." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"複合キーを生成するために IdentifierGenerator を使用するこ" +"とはできません。 代わりにアプリケーションが識別子を割り当てなくてはなりませ" +"ん。" -#: index.docbook:218 -msgid "The collection of OrderLines in Order would use:" -msgstr "Order にある OrderLine のコレクションは 次のものを使用します。" - -#: index.docbook:223 +#. Tag: para +#: component_mapping.xml:188 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"Use the <composite-id> tag (with nested " +"<key-property> elements) in place of the usual " +"<id> declaration. For example, the " +"OrderLine class has a primary key that depends upon the " +"(composite) primary key of Order." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"通常の <id> 宣言の代わりに <composite-" +"id> タグを (ネストされた <key-property> 属性と共に)使います。 以下の例では、OrderLine ク" +"ラスは Order の(複合)主キーに 依存した主キーを持っていま" +"す。" -#: index.docbook:225 -msgid "(The <one-to-many> element, as usual, declares no columns.)" -msgstr "(<one-to-many> 属性は、例によってカラムを宣言しません)" - -#: index.docbook:229 -msgid "If OrderLine itself owns a collection, it also has a composite foreign key." -msgstr "OrderLine 自身がコレクションを持っている場合、 同時に複合外部キーも持っています。" - -#: index.docbook:234 +#. Tag: programlisting +#: component_mapping.xml:196 +#, no-c-format msgid "" - "\n" - " ....\n" - " ....\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ....\n" +" \n" +"]]>" msgstr "" - " \n" - " .... \n" - " .... \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ... \n" - " \n" - " \n" - "]]>" -#: index.docbook:239 +#. Tag: para +#: component_mapping.xml:198 +#, no-c-format +msgid "" +"Now, any foreign keys referencing the OrderLine table are " +"also composite. You must declare this in your mappings for other classes. An " +"association to OrderLine would be mapped like this:" +msgstr "" +"このとき、OrderLine テーブルへ関連する外部キーもまた複合で" +"す。 他のクラスのマッピングでこれを宣言しなければなりません。 " +"OrderLine への関連は次のようにマッピングされます。" + +#. Tag: programlisting +#: component_mapping.xml:204 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: component_mapping.xml:206 +#, no-c-format +msgid "" +"(Note that the <column> tag is an alternative to " +"the column attribute everywhere.)" +msgstr "" +"(<column> タグはどこであっても column 属性の 代わりになります。)" + +#. Tag: para +#: component_mapping.xml:211 +#, no-c-format +msgid "" +"A many-to-many association to OrderLine also uses the composite foreign key:" +msgstr "" +"OrderLine への many-to-many 関連も 複合" +"外部キーを使います。" + +#. Tag: programlisting +#: component_mapping.xml:216 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: component_mapping.xml:218 +#, no-c-format +msgid "" +"The collection of OrderLines in Order " +"would use:" +msgstr "" +"Order にある OrderLine のコレクション" +"は 次のものを使用します。" + +#. Tag: programlisting +#: component_mapping.xml:223 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: component_mapping.xml:225 +#, no-c-format +msgid "" +"(The <one-to-many> element, as usual, declares no " +"columns.)" +msgstr "" +"(<one-to-many> 属性は、例によってカラムを宣言しませ" +"ん)" + +#. Tag: para +#: component_mapping.xml:229 +#, no-c-format +msgid "" +"If OrderLine itself owns a collection, it also has a " +"composite foreign key." +msgstr "" +"OrderLine 自身がコレクションを持っている場合、 同時に複合" +"外部キーも持っています。" + +#. Tag: programlisting +#: component_mapping.xml:234 +#, no-c-format +msgid "" +"\n" +" ....\n" +" ....\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: title +#: component_mapping.xml:239 +#, no-c-format msgid "Dynamic components" msgstr "動的コンポーネント" -#: index.docbook:241 +#. Tag: para +#: component_mapping.xml:241 +#, no-c-format msgid "You may even map a property of type Map:" msgstr "Map 型のプロパティのマッピングも可能です。" -#: index.docbook:245 +#. Tag: programlisting +#: component_mapping.xml:245 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - "]]>" - -#: index.docbook:247 -msgid "The semantics of a <dynamic-component> mapping are identical to <component>. The advantage of this kind of mapping is the ability to determine the actual properties of the bean at deployment time, just by editing the mapping document. Runtime manipulation of the mapping document is also possible, using a DOM parser. Even better, you can access (and change) Hibernate's configuration-time metamodel via the Configuration object." -msgstr "<dynamic-component> マッピングのセマンティクスは <component> と同一のものです。この種のマッピングの利点は、マッピングドキュメントの編集により、配置時にbeanの属性を 決定できる点です。また、DOMパーサを利用して、マッピングドキュメントのランタイム操作が可能です。 さらに、Configuration オブジェクト経由でHibernateのコンフィグレーション時のメタモデルに アクセス(または変更)が可能です。" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#. Tag: para +#: component_mapping.xml:247 +#, no-c-format +msgid "" +"The semantics of a <dynamic-component> mapping are " +"identical to <component>. The advantage of this " +"kind of mapping is the ability to determine the actual properties of the " +"bean at deployment time, just by editing the mapping document. Runtime " +"manipulation of the mapping document is also possible, using a DOM parser. " +"Even better, you can access (and change) Hibernate's configuration-time " +"metamodel via the Configuration object." +msgstr "" +"<dynamic-component> マッピングのセマンティクスは " +"<component> と同一のものです。この種のマッピングの利" +"点は、マッピングドキュメントの編集により、配置時にbeanの属性を 決定できる点で" +"す。また、DOMパーサを利用して、マッピングドキュメントのランタイム操作が可能で" +"す。 さらに、Configuration オブジェクト経由でHibernateのコ" +"ンフィグレーション時のメタモデルに アクセス(または変更)が可能です。" diff --git a/documentation/manual/translations/ja-JP/content/configuration.po b/documentation/manual/translations/ja-JP/content/configuration.po index d9ddd7b9a9..6834b8b0cd 100644 --- a/documentation/manual/translations/ja-JP/content/configuration.po +++ b/documentation/manual/translations/ja-JP/content/configuration.po @@ -1,1599 +1,3233 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: configuration.xml:5 +#, no-c-format msgid "Configuration" -msgstr "設定" +msgstr "設定" -#: index.docbook:7 -msgid "Because Hibernate is designed to operate in many different environments, there are a large number of configuration parameters. Fortunately, most have sensible default values and Hibernate is distributed with an example hibernate.properties file in etc/ that shows the various options. Just put the example file in your classpath and customize it." -msgstr "Hibernateはさまざまな環境で動作するようにデザインされているため、非常に多くの設定要素があります。 幸いなことに、Hibernateは、公開されているパッケージの etc/ フォルダの hibernate.properties に、ほとんどの設定要素の適切なデフォルト値が記述されています。 この hibernate.properties をクラスパスに設定し、設定要素をカスタマイズするだけです。" +#. Tag: para +#: configuration.xml:7 +#, no-c-format +msgid "" +"Because Hibernate is designed to operate in many different environments, " +"there are a large number of configuration parameters. Fortunately, most have " +"sensible default values and Hibernate is distributed with an example " +"hibernate.properties file in etc/ that " +"shows the various options. Just put the example file in your classpath and " +"customize it." +msgstr "" +"Hibernateはさまざまな環境で動作するようにデザインされているため、非常に多くの" +"設定要素があります。 幸いなことに、Hibernateは、公開されているパッケージの " +"etc/ フォルダの hibernate.properties " +"に、ほとんどの設定要素の適切なデフォルト値が記述されています。 この " +"hibernate.properties をクラスパスに設定し、設定要素をカス" +"タマイズするだけです。" -#: index.docbook:16 +#. Tag: title +#: configuration.xml:16 +#, no-c-format msgid "Programmatic configuration" msgstr "プログラム上の設定" -#: index.docbook:18 -msgid "An instance of org.hibernate.cfg.Configuration represents an entire set of mappings of an application's Java types to an SQL database. The Configuration is used to build an (immutable) SessionFactory. The mappings are compiled from various XML mapping files." -msgstr "org.hibernate.cfg.Configuration のインスタンスは、 Javaの型とSQLデータベースのマッピング情報をすべて持っています。 The Configuration は、(不変の) SessionFactory を生成するときに使用します。 複数のXMLマッピングファイルを変換し、マッピング情報にします。" - -#: index.docbook:26 -msgid "You may obtain a Configuration instance by instantiating it directly and specifying XML mapping documents. If the mapping files are in the classpath, use addResource():" -msgstr "通常、Configuration インスタンスは、特定のXMLマッピングファイル によって直接初期化されます。もし、マッピングファイルがクラスパスに設定されている場合、 次のメソッドを使ってください。 addResource() :" - -#: index.docbook:32 +#. Tag: para +#: configuration.xml:18 +#, no-c-format msgid "" - "" +"An instance of org.hibernate.cfg.Configuration represents " +"an entire set of mappings of an application's Java types to an SQL database. " +"The Configuration is used to build an (immutable) " +"SessionFactory. The mappings are compiled from various " +"XML mapping files." msgstr "" - "" +"org.hibernate.cfg.Configuration のインスタンスは、 Javaの" +"型とSQLデータベースのマッピング情報をすべて持っています。 The " +"Configuration は、(不変の) SessionFactory を生成するときに使用します。 複数のXMLマッピングファイルを変換し、" +"マッピング情報にします。" -#: index.docbook:34 -msgid "An alternative (sometimes better) way is to specify the mapped class, and let Hibernate find the mapping document for you:" -msgstr "代替案(こちらのほうが良いときもあります)としてマッピングクラスを指定する方法もあります。Hibernateに、マッピングファイルを 見つけさせてください:" - -#: index.docbook:39 +#. Tag: para +#: configuration.xml:26 +#, no-c-format msgid "" - "" +"You may obtain a Configuration instance by instantiating " +"it directly and specifying XML mapping documents. If the mapping files are " +"in the classpath, use addResource():" msgstr "" - "" +"通常、Configuration インスタンスは、特定のXMLマッピング" +"ファイル によって直接初期化されます。もし、マッピングファイルがクラスパスに設" +"定されている場合、 次のメソッドを使ってください。 addResource() :" -#: index.docbook:41 -msgid "Then Hibernate will look for mapping files named /org/hibernate/auction/Item.hbm.xml and /org/hibernate/auction/Bid.hbm.xml in the classpath. This approach eliminates any hardcoded filenames." -msgstr "Hibernateは、クラスパスにある以下のような名前のマッピングファイルを見つけます。 /org/hibernate/auction/Item.hbm.xml/org/hibernate/auction/Bid.hbm.xml 。 この方法だと、ハードコーディングされたファイル名を排除できます。" - -#: index.docbook:48 -msgid "A Configuration also allows you to specify configuration properties:" -msgstr "Configuration は、設定プロパティを指定することもできます:" - -#: index.docbook:53 +#. Tag: programlisting +#: configuration.xml:32 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:55 -msgid "This is not the only way to pass configuration properties to Hibernate. The various options include:" -msgstr "Hibernateに設定プロパティを通す方法は1つではありません。 さまざまなオプションを用意しています:" +#. Tag: para +#: configuration.xml:34 +#, no-c-format +msgid "" +"An alternative (sometimes better) way is to specify the mapped class, and " +"let Hibernate find the mapping document for you:" +msgstr "" +"代替案(こちらのほうが良いときもあります)としてマッピングクラスを指定する方法" +"もあります。Hibernateに、マッピングファイルを 見つけさせてください:" -#: index.docbook:62 -msgid "Pass an instance of java.util.Properties to Configuration.setProperties()." -msgstr "java.util.Properties インスタンスを Configuration.setProperties() に渡します。" +#. Tag: programlisting +#: configuration.xml:39 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:68 -msgid "Place hibernate.properties in a root directory of the classpath." -msgstr "hibernate.properties を クラスパスのルートディレクトリに置きます。" +#. Tag: para +#: configuration.xml:41 +#, no-c-format +msgid "" +"Then Hibernate will look for mapping files named /org/hibernate/" +"auction/Item.hbm.xml and /org/hibernate/auction/Bid.hbm." +"xml in the classpath. This approach eliminates any hardcoded " +"filenames." +msgstr "" +"Hibernateは、クラスパスにある以下のような名前のマッピングファイルを見つけま" +"す。 /org/hibernate/auction/Item.hbm.xml/org/" +"hibernate/auction/Bid.hbm.xml 。 この方法だと、ハードコーディングさ" +"れたファイル名を排除できます。" -#: index.docbook:74 -msgid "Set System properties using java -Dproperty=value." -msgstr "System プロパティが java -Dproperty=value を使うように設定します。" +#. Tag: para +#: configuration.xml:48 +#, no-c-format +msgid "" +"A Configuration also allows you to specify configuration " +"properties:" +msgstr "" +"Configuration は、設定プロパティを指定することもできます:" -#: index.docbook:80 -msgid "Include <property> elements in hibernate.cfg.xml (discussed later)." -msgstr "<property> 要素を hibernate.cfg.xml (後述)に設定します。" +#. Tag: programlisting +#: configuration.xml:53 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:87 -msgid "hibernate.properties is the easiest approach if you want to get started quickly." -msgstr "今すぐ始めたいのなら、hibernate.properties を使うのが一番の近道です。" +#. Tag: para +#: configuration.xml:55 +#, no-c-format +msgid "" +"This is not the only way to pass configuration properties to Hibernate. The " +"various options include:" +msgstr "" +"Hibernateに設定プロパティを通す方法は1つではありません。 さまざまなオプション" +"を用意しています:" -#: index.docbook:92 -msgid "The Configuration is intended as a startup-time object, to be discarded once a SessionFactory is created." -msgstr "Configuration は、起動時にだけあるオブジェクトであり、 一度 SessionFactory を生成した後は、破棄されることを意図しています。" +#. Tag: para +#: configuration.xml:62 +#, no-c-format +msgid "" +"Pass an instance of java.util.Properties to " +"Configuration.setProperties()." +msgstr "" +"java.util.Properties インスタンスを " +"Configuration.setProperties() に渡します。" -#: index.docbook:100 +#. Tag: para +#: configuration.xml:68 +#, no-c-format +msgid "" +"Place hibernate.properties in a root directory of the " +"classpath." +msgstr "" +"hibernate.properties を クラスパスのルートディレクトリに置" +"きます。" + +#. Tag: para +#: configuration.xml:74 +#, no-c-format +msgid "" +"Set System properties using java -" +"Dproperty=value." +msgstr "" +"System プロパティが java -Dproperty=value を使うように設定します。" + +#. Tag: para +#: configuration.xml:80 +#, no-c-format +msgid "" +"Include <property> elements in hibernate." +"cfg.xml (discussed later)." +msgstr "" +"<property> 要素を hibernate.cfg.xml (後述)に設定します。" + +#. Tag: para +#: configuration.xml:87 +#, no-c-format +msgid "" +"hibernate.properties is the easiest approach if you want " +"to get started quickly." +msgstr "" +"今すぐ始めたいのなら、hibernate.properties を使うのが一番" +"の近道です。" + +#. Tag: para +#: configuration.xml:92 +#, no-c-format +msgid "" +"The Configuration is intended as a startup-time object, " +"to be discarded once a SessionFactory is created." +msgstr "" +"Configuration は、起動時にだけあるオブジェクトであり、 一" +"度 SessionFactory を生成した後は、破棄されることを意図して" +"います。" + +#. Tag: title +#: configuration.xml:100 +#, no-c-format msgid "Obtaining a SessionFactory" msgstr "SessionFactoryを取得する" -#: index.docbook:102 -msgid "When all mappings have been parsed by the Configuration, the application must obtain a factory for Session instances. This factory is intended to be shared by all application threads:" -msgstr "Configuration がすべてのマッピング情報を解析したら、 アプリケーションは、 Session ファクトリインスタンスを取得します。 このSessionFactoryは、Hibernateを使用するすべてのスレッドで共有されるべきです。" +#. Tag: para +#: configuration.xml:102 +#, no-c-format +msgid "" +"When all mappings have been parsed by the Configuration, " +"the application must obtain a factory for Session " +"instances. This factory is intended to be shared by all application threads:" +msgstr "" +"Configuration がすべてのマッピング情報を解析したら、 アプ" +"リケーションは、 Session ファクトリインスタンスを取得しま" +"す。 このSessionFactoryは、Hibernateを使用するすべてのスレッドで共有されるべ" +"きです。" -#: index.docbook:108 +#. Tag: programlisting +#: configuration.xml:108 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:110 -msgid "Hibernate does allow your application to instantiate more than one SessionFactory. This is useful if you are using more than one database." -msgstr "Hibernateは、 SessionFactory を複数生成することができます。 これは、複数のデータベースを使用する場合に便利です。" +#. Tag: para +#: configuration.xml:110 +#, no-c-format +msgid "" +"Hibernate does allow your application to instantiate more than one " +"SessionFactory. This is useful if you are using more than " +"one database." +msgstr "" +"Hibernateは、 SessionFactory を複数生成することができま" +"す。 これは、複数のデータベースを使用する場合に便利です。" -#: index.docbook:119 +#. Tag: title +#: configuration.xml:119 +#, no-c-format msgid "JDBC connections" msgstr "JDBCコネクション" -#: index.docbook:121 -msgid "Usually, you want to have the SessionFactory create and pool JDBC connections for you. If you take this approach, opening a Session is as simple as:" -msgstr "通常、開発者は SessionFactory を生成し、SessionFactoryでJDBCコネクションをプーリングしたいと考えます。 そのアプローチを採用する場合、単純に Session をオープンしてください:" +#. Tag: para +#: configuration.xml:121 +#, no-c-format +msgid "" +"Usually, you want to have the SessionFactory create and " +"pool JDBC connections for you. If you take this approach, opening a " +"Session is as simple as:" +msgstr "" +"通常、開発者は SessionFactory を生成し、SessionFactoryで" +"JDBCコネクションをプーリングしたいと考えます。 そのアプローチを採用する場合、" +"単純に Session をオープンしてください:" -#: index.docbook:127 -msgid "" -msgstr "" +#. Tag: programlisting +#: configuration.xml:127 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:129 -msgid "As soon as you do something that requires access to the database, a JDBC connection will be obtained from the pool." -msgstr "これだけで、プーリングしたJDBCコネクションを使って目的のデータベース にアクセスすることができます。" +#. Tag: para +#: configuration.xml:129 +#, no-c-format +msgid "" +"As soon as you do something that requires access to the database, a JDBC " +"connection will be obtained from the pool." +msgstr "" +"これだけで、プーリングしたJDBCコネクションを使って目的のデータベース にアクセ" +"スすることができます。" -#: index.docbook:134 -msgid "For this to work, we need to pass some JDBC connection properties to Hibernate. All Hibernate property names and semantics are defined on the class org.hibernate.cfg.Environment. We will now describe the most important settings for JDBC connection configuration." -msgstr "そのためには、JDBCコネクションのプロパティをHibernateに設定する必要があります。 すべてのHibernateプロパティ名とセマンティクスは org.hibernate.cfg.Environment クラスに定義されています。 この設定はJDBCコネクション設定の中で一番重要なものです。" +#. Tag: para +#: configuration.xml:134 +#, no-c-format +msgid "" +"For this to work, we need to pass some JDBC connection properties to " +"Hibernate. All Hibernate property names and semantics are defined on the " +"class org.hibernate.cfg.Environment. We will now describe " +"the most important settings for JDBC connection configuration." +msgstr "" +"そのためには、JDBCコネクションのプロパティをHibernateに設定する必要がありま" +"す。 すべてのHibernateプロパティ名とセマンティクスは org.hibernate." +"cfg.Environment クラスに定義されています。 この設定はJDBCコネクショ" +"ン設定の中で一番重要なものです。" -#: index.docbook:141 -msgid "Hibernate will obtain (and pool) connections using java.sql.DriverManager if you set the following properties:" -msgstr "もし、以下のプロパティを設定すると、Hibernateはコネクションを取得する(プールも)ために java.sql.DriverManager を使います。" +#. Tag: para +#: configuration.xml:141 +#, no-c-format +msgid "" +"Hibernate will obtain (and pool) connections using java.sql." +"DriverManager if you set the following properties:" +msgstr "" +"もし、以下のプロパティを設定すると、Hibernateはコネクションを取得する(プール" +"も)ために java.sql.DriverManager を使います。" -#: index.docbook:147 +#. Tag: title +#: configuration.xml:147 +#, no-c-format msgid "Hibernate JDBC Properties" msgstr "Hibernate JDBCプロパティ" -#: index.docbook:153, index.docbook:241, index.docbook:338, index.docbook:529, index.docbook:725, index.docbook:832, index.docbook:920 +#. Tag: entry +#: configuration.xml:153 configuration.xml:241 configuration.xml:338 +#: configuration.xml:529 configuration.xml:725 configuration.xml:832 +#: configuration.xml:920 +#, no-c-format msgid "Property name" msgstr "プロパティ名" -#: index.docbook:154, index.docbook:242, index.docbook:339, index.docbook:530, index.docbook:726, index.docbook:833, index.docbook:921 +#. Tag: entry +#: configuration.xml:154 configuration.xml:242 configuration.xml:339 +#: configuration.xml:530 configuration.xml:726 configuration.xml:833 +#: configuration.xml:921 +#, no-c-format msgid "Purpose" -msgstr "意味" +msgstr "意味" -#: index.docbook:160 +#. Tag: literal +#: configuration.xml:160 +#, no-c-format msgid "hibernate.connection.driver_class" msgstr "hibernate.connection.driver_class" -#: index.docbook:163 +#. Tag: emphasis +#: configuration.xml:163 +#, no-c-format msgid "JDBC driver class" msgstr "JDBCドライバクラス" -#: index.docbook:168 +#. Tag: literal +#: configuration.xml:168 +#, no-c-format msgid "hibernate.connection.url" msgstr "hibernate.connection.url" -#: index.docbook:171 +#. Tag: emphasis +#: configuration.xml:171 +#, no-c-format msgid "JDBC URL" msgstr "jdbc URL" -#: index.docbook:176, index.docbook:272 +#. Tag: literal +#: configuration.xml:176 configuration.xml:272 +#, no-c-format msgid "hibernate.connection.username" msgstr "hibernate.connection.username" -#: index.docbook:179 +#. Tag: emphasis +#: configuration.xml:179 +#, no-c-format msgid "database user" msgstr "database user" -#: index.docbook:184, index.docbook:280 +#. Tag: literal +#: configuration.xml:184 configuration.xml:280 +#, no-c-format msgid "hibernate.connection.password" msgstr "hibernate.connection.password" -#: index.docbook:187 +#. Tag: emphasis +#: configuration.xml:187 +#, no-c-format msgid "database user password" msgstr "database user password" -#: index.docbook:192 +#. Tag: literal +#: configuration.xml:192 +#, no-c-format msgid "hibernate.connection.pool_size" msgstr "hibernate.connection.pool_size" -#: index.docbook:195 +#. Tag: emphasis +#: configuration.xml:195 +#, no-c-format msgid "maximum number of pooled connections" msgstr "プールするコネクションの最大数" -#: index.docbook:202 -msgid "Hibernate's own connection pooling algorithm is however quite rudimentary. It is intended to help you get started and is not intended for use in a production system or even for performance testing. You should use a third party pool for best performance and stability. Just replace the hibernate.connection.pool_size property with connection pool specific settings. This will turn off Hibernate's internal pool. For example, you might like to use C3P0." -msgstr "Hibernateのコネクションプールアルゴリズムは非常に初歩的なものです。 これはすぐに始められるようにと用意されたもので、製品として使用することを意図していません 。 また、パフォーマンスのテストのためのものでもありません。 最高のパフォーマンスと安定性を持ったプールを実現したければ、サードパーティのツールをお勧めします。 hibernate.connection.pool_size プロパティに 適切なコネクションプールサイズを記述してください。 このままだとHibernateのコネクションプールを使います。 例えば次のようにC3P0を使います。" - -#: index.docbook:212 -msgid "C3P0 is an open source JDBC connection pool distributed along with Hibernate in the lib directory. Hibernate will use its C3P0ConnectionProvider for connection pooling if you set hibernate.c3p0.* properties. If you'd like to use Proxool refer to the packaged hibernate.properties and the Hibernate web site for more information." -msgstr "C3P0はオープンソースJDBCコネクションプールで、Hibernateの lib ディレクトリにあります。もし、hibernate.c3p0.* プロパティを セットすれば、Hibernateは、 C3P0ConnectionProvider を使います。 もしProxoolを使いたい場合は、 hibernate.properties パッケージを 参照したり、HibernateのWebサイトでより多くの情報を取得してください。" - -#: index.docbook:221 -msgid "Here is an example hibernate.properties file for C3P0:" -msgstr "C3P0用の hibernate.properties ファイルを例として示します:" - -#: index.docbook:225 +#. Tag: para +#: configuration.xml:202 +#, no-c-format msgid "" - "" +"Hibernate's own connection pooling algorithm is however quite rudimentary. " +"It is intended to help you get started and is not intended for use " +"in a production system or even for performance testing. You " +"should use a third party pool for best performance and stability. Just " +"replace the hibernate.connection.pool_size property with " +"connection pool specific settings. This will turn off Hibernate's internal " +"pool. For example, you might like to use C3P0." msgstr "" - "" +"Hibernateのコネクションプールアルゴリズムは非常に初歩的なものです。 これはす" +"ぐに始められるようにと用意されたもので、製品として使用することを意" +"図していません 。 また、パフォーマンスのテストのためのものでもあり" +"ません。 最高のパフォーマンスと安定性を持ったプールを実現したければ、サード" +"パーティのツールをお勧めします。 hibernate.connection.pool_size プロパティに 適切なコネクションプールサイズを記述してください。 この" +"ままだとHibernateのコネクションプールを使います。 例えば次のようにC3P0を使い" +"ます。" -#: index.docbook:227 -msgid "For use inside an application server, you should almost always configure Hibernate to obtain connections from an application server Datasource registered in JNDI. You'll need to set at least one of the following properties:" -msgstr "アプリケーションサーバ上で使う場合は、Hibernateを設定し、 アプリケーションサーバからコネクションを取得するようにしてください。 Datasource をJNDIに登録します。そして プロパティを以下のように設定してください。" +#. Tag: para +#: configuration.xml:212 +#, no-c-format +msgid "" +"C3P0 is an open source JDBC connection pool distributed along with Hibernate " +"in the lib directory. Hibernate will use its " +"C3P0ConnectionProvider for connection pooling if you set " +"hibernate.c3p0.* properties. If you'd like to use Proxool " +"refer to the packaged hibernate.properties and the " +"Hibernate web site for more information." +msgstr "" +"C3P0はオープンソースJDBCコネクションプールで、Hibernateの lib ディレクトリにあります。もし、hibernate.c3p0.* プ" +"ロパティを セットすれば、Hibernateは、 C3P0ConnectionProvider を使います。 もしProxoolを使いたい場合は、 hibernate." +"properties パッケージを 参照したり、HibernateのWebサイトでより多く" +"の情報を取得してください。" -#: index.docbook:235 +#. Tag: para +#: configuration.xml:221 +#, no-c-format +msgid "" +"Here is an example hibernate.properties file for C3P0:" +msgstr "" +"C3P0用の hibernate.properties ファイルを例として示します:" + +#. Tag: programlisting +#: configuration.xml:225 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: configuration.xml:227 +#, no-c-format +msgid "" +"For use inside an application server, you should almost always configure " +"Hibernate to obtain connections from an application server " +"Datasource registered in JNDI. You'll need to set at " +"least one of the following properties:" +msgstr "" +"アプリケーションサーバ上で使う場合は、Hibernateを設定し、 アプリケーション" +"サーバからコネクションを取得するようにしてください。 Datasource をJNDIに登録します。そして プロパティを以下のように設定してくださ" +"い。" + +#. Tag: title +#: configuration.xml:235 +#, no-c-format msgid "Hibernate Datasource Properties" msgstr "Hibernate データソースプロパティ" -#: index.docbook:248 +#. Tag: literal +#: configuration.xml:248 +#, no-c-format msgid "hibernate.connection.datasource" msgstr "hibernate.connection.datasource" -#: index.docbook:251 +#. Tag: emphasis +#: configuration.xml:251 +#, no-c-format msgid "datasource JNDI name" msgstr "データソースのJNDI名" -#: index.docbook:256 +#. Tag: literal +#: configuration.xml:256 +#, no-c-format msgid "hibernate.jndi.url" msgstr "hibernate.jndi.url" -#: index.docbook:258 +#. Tag: entry +#: configuration.xml:258 +#, fuzzy, no-c-format msgid "URL of the JNDI provider (optional)" -msgstr "JNDIプロバイダのURL (オプション)" +msgstr "JNDIプロバイダのURL" -#: index.docbook:264 +#. Tag: literal +#: configuration.xml:264 +#, no-c-format msgid "hibernate.jndi.class" msgstr "hibernate.jndi.class" -#: index.docbook:266 -msgid "class of the JNDI InitialContextFactory (optional)" -msgstr "JNDIクラス InitialContextFactory (オプション)" - -#: index.docbook:274 -msgid "database user (optional)" -msgstr "database user (オプション)" - -#: index.docbook:282 -msgid "database user password (optional)" -msgstr "database user password (オプション)" - -#: index.docbook:290 -msgid "Here's an example hibernate.properties file for an application server provided JNDI datasource:" -msgstr "アプリケーションサーバから提供されたJNDIデータソースを使う hibernate.properties ファイルの例を示します:" - -#: index.docbook:295 +#. Tag: entry +#: configuration.xml:266 +#, no-c-format msgid "" - "" +"class of the JNDI InitialContextFactory (optional)" msgstr "" - "" -#: index.docbook:297 -msgid "JDBC connections obtained from a JNDI datasource will automatically participate in the container-managed transactions of the application server." -msgstr "JNDIデータソースから取得したJDBCコネクションは、アプリケーションサーバの コンテナ管理トランザクションに自動的に参加します。" +#. Tag: entry +#: configuration.xml:274 +#, no-c-format +msgid "database user (optional)" +msgstr "" -#: index.docbook:302 -msgid "Arbitrary connection properties may be given by prepending \"hibernate.connection\" to the property name. For example, you may specify a charSet using hibernate.connection.charSet." -msgstr "任意のコネクションプロパティは、与えられた” hibernate.connnection ” プロパティ名によって与えられます。例えば、 charSet を設定したい場合は、 hibernate.connection.charSet を使います。" +#. Tag: entry +#: configuration.xml:282 +#, no-c-format +msgid "database user password (optional)" +msgstr "" -#: index.docbook:308 -msgid "You may define your own plugin strategy for obtaining JDBC connections by implementing the interface org.hibernate.connection.ConnectionProvider. You may select a custom implementation by setting hibernate.connection.provider_class." -msgstr "JDBCコネクションを取得する戦略を持つ独自のプラグインを定義する場合は、 org.hibernate.connection.ConnectionProvider インターフェイスを 実装してください。そして、実装クラスを hibernate.connection.provider_class に設定してください。" +#. Tag: para +#: configuration.xml:290 +#, no-c-format +msgid "" +"Here's an example hibernate.properties file for an " +"application server provided JNDI datasource:" +msgstr "" +"アプリケーションサーバから提供されたJNDIデータソースを使う " +"hibernate.properties ファイルの例を示します:" -#: index.docbook:317 +#. Tag: programlisting +#: configuration.xml:295 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: configuration.xml:297 +#, no-c-format +msgid "" +"JDBC connections obtained from a JNDI datasource will automatically " +"participate in the container-managed transactions of the application server." +msgstr "" +"JNDIデータソースから取得したJDBCコネクションは、アプリケーションサーバの コン" +"テナ管理トランザクションに自動的に参加します。" + +#. Tag: para +#: configuration.xml:302 +#, no-c-format +msgid "" +"Arbitrary connection properties may be given by prepending " +"\"hibernate.connection\" to the property name. For " +"example, you may specify a charSet using " +"hibernate.connection.charSet." +msgstr "" +"任意のコネクションプロパティは、与えられた” hibernate.connnection ” プロパティ名によって与えられます。例えば、 charSet を設定したい場合は、 hibernate.connection.charSet を使います。" + +#. Tag: para +#: configuration.xml:308 +#, no-c-format +msgid "" +"You may define your own plugin strategy for obtaining JDBC connections by " +"implementing the interface org.hibernate.connection." +"ConnectionProvider. You may select a custom implementation by " +"setting hibernate.connection.provider_class." +msgstr "" +"JDBCコネクションを取得する戦略を持つ独自のプラグインを定義する場合は、 " +"org.hibernate.connection.ConnectionProvider インターフェイ" +"スを 実装してください。そして、実装クラスを hibernate.connection." +"provider_class に設定してください。" + +#. Tag: title +#: configuration.xml:317 +#, no-c-format msgid "Optional configuration properties" msgstr "オプション設定プロパティ" -#: index.docbook:319 -msgid "There are a number of other properties that control the behaviour of Hibernate at runtime. All are optional and have reasonable default values." -msgstr "これらのプロパティはHibernateの挙動を制御するものです。 これらのプロパティはすべて妥当なデフォルト値があり、任意で設定します。" +#. Tag: para +#: configuration.xml:319 +#, no-c-format +msgid "" +"There are a number of other properties that control the behaviour of " +"Hibernate at runtime. All are optional and have reasonable default values." +msgstr "" +"これらのプロパティはHibernateの挙動を制御するものです。 これらのプロパティは" +"すべて妥当なデフォルト値があり、任意で設定します。" -#: index.docbook:324 -msgid "Warning: some of these properties are \"system-level\" only. System-level properties can be set only via java -Dproperty=value or hibernate.properties. They may not be set by the other techniques described above." -msgstr "注意:これらのプロパティは\"システムレベル\"のみです。 システムレベルプロパティは java -Dproperty=value 、もしくは hibernate.properties でのみ設定可能です。 それ以外の設定方法は ありません 。" +#. Tag: para +#: configuration.xml:324 +#, no-c-format +msgid "" +"Warning: some of these properties are \"system-level\" only. System-level properties can be set only via java -" +"Dproperty=value or hibernate.properties. They " +"may not be set by the other techniques described above." +msgstr "" +"注意:これらのプロパティは\"システムレベル\"のみです。 " +"システムレベルプロパティは java -Dproperty=value 、もしく" +"は hibernate.properties でのみ設定可能です。 それ以外の設" +"定方法は ありません 。" -#: index.docbook:332 +#. Tag: title +#: configuration.xml:332 +#, no-c-format msgid "Hibernate Configuration Properties" msgstr "Hibernate設定プロパティ" -#: index.docbook:345 +#. Tag: literal +#: configuration.xml:345 +#, no-c-format msgid "hibernate.dialect" msgstr "hibernate.dialect" -#: index.docbook:347 -msgid "The classname of a Hibernate Dialect which allows Hibernate to generate SQL optimized for a particular relational database." -msgstr "Hibernate Dialect クラス名が入ります。 これはリレーショナルデータベースごとに最適化されたSQLを生成します。" +#. Tag: entry +#: configuration.xml:347 +#, fuzzy, no-c-format +msgid "" +"The classname of a Hibernate Dialect which allows " +"Hibernate to generate SQL optimized for a particular relational database." +msgstr "" +"Hibernate クラス名が入ります。 これはリレーショナルデータ" +"ベースごとに最適化されたSQLを生成します。 " -#: index.docbook:351 -msgid "eg. full.classname.of.Dialect" -msgstr "例: full.classname.of.Dialect" +#. Tag: para +#: configuration.xml:351 +#, fuzzy, no-c-format +msgid "" +"eg. full.classname.of.Dialect" +msgstr "" +"例:true | " +"false" -#: index.docbook:359 +#. Tag: literal +#: configuration.xml:359 +#, no-c-format msgid "hibernate.show_sql" msgstr "hibernate.show_sql" -#: index.docbook:361 -msgid "Write all SQL statements to console. This is an alternative to setting the log category org.hibernate.SQL to debug." -msgstr "発行されたすべてのSQLをコンソールに出力します。 これはログカテゴリの org.hibernate.SQLdebug を設定する方法の代替手段です。" +#. Tag: entry +#: configuration.xml:361 +#, fuzzy, no-c-format +msgid "" +"Write all SQL statements to console. This is an alternative to setting the " +"log category org.hibernate.SQL to debug." +msgstr "" +"発行されたすべてのSQLをコンソールに出力します。 これはログカテゴリの " +" を設定する方法の代替手段です。 " +"" -#: index.docbook:365, index.docbook:377, index.docbook:471, index.docbook:484, index.docbook:497, index.docbook:510, index.docbook:564, index.docbook:591, index.docbook:605, index.docbook:660, index.docbook:888, index.docbook:903, index.docbook:993 -msgid "eg. true | false" -msgstr "例: true | false" +#. Tag: para +#: configuration.xml:365 configuration.xml:377 configuration.xml:471 +#: configuration.xml:484 configuration.xml:497 configuration.xml:510 +#: configuration.xml:564 configuration.xml:591 configuration.xml:605 +#: configuration.xml:660 configuration.xml:888 configuration.xml:903 +#: configuration.xml:993 +#, fuzzy, no-c-format +msgid "" +"eg. true | " +"false" +msgstr "" +"例:true | " +"false" -#: index.docbook:373 +#. Tag: literal +#: configuration.xml:373 +#, no-c-format msgid "hibernate.format_sql" msgstr "hibernate.format_sql" -#: index.docbook:375 +#. Tag: entry +#: configuration.xml:375 +#, fuzzy, no-c-format msgid "Pretty print the SQL in the log and console." -msgstr "ログとコンソールのSQLを美しく表示します。" +msgstr "ログとコンソールのSQLを美しく表示します。 " -#: index.docbook:385 +#. Tag: literal +#: configuration.xml:385 +#, no-c-format msgid "hibernate.default_schema" msgstr "hibernate.default_schema" -#: index.docbook:387 -msgid "Qualify unqualified table names with the given schema/tablespace in generated SQL." -msgstr "生成されるSQL文のテーブルに設定するスキーマ/テーブルスペースです。" +#. Tag: entry +#: configuration.xml:387 +#, fuzzy, no-c-format +msgid "" +"Qualify unqualified table names with the given schema/tablespace in " +"generated SQL." +msgstr "" +"生成されるSQL文のテーブルに設定するスキーマ/テーブルスペースです。 " +"" -#: index.docbook:390 +#. Tag: para +#: configuration.xml:390 +#, fuzzy, no-c-format msgid "eg. SCHEMA_NAME" -msgstr "例: SCHEMA_NAME" +msgstr "" +"例:true | " +"false" -#: index.docbook:398 +#. Tag: literal +#: configuration.xml:398 +#, no-c-format msgid "hibernate.default_catalog" msgstr "hibernate.default_catalog" -#: index.docbook:400 -msgid "Qualify unqualified table names with the given catalog in generated SQL." -msgstr "生成されるSQL文のテーブルに設定するカタログです。" +#. Tag: entry +#: configuration.xml:400 +#, fuzzy, no-c-format +msgid "" +"Qualify unqualified table names with the given catalog in generated SQL." +msgstr "生成されるSQL文のテーブルに設定するカタログです。 " -#: index.docbook:403 -msgid "eg. CATALOG_NAME" -msgstr "例: CATALOG_NAME" +#. Tag: para +#: configuration.xml:403 +#, fuzzy, no-c-format +msgid "" +"eg. CATALOG_NAME" +msgstr "" +"例:true | " +"false" -#: index.docbook:411 +#. Tag: literal +#: configuration.xml:411 +#, no-c-format msgid "hibernate.session_factory_name" msgstr "hibernate.session_factory_name" -#: index.docbook:413 -msgid "The SessionFactory will be automatically bound to this name in JNDI after it has been created." -msgstr "SessionFactory は生成後、この名前でJNDIに登録されます。" +#. Tag: entry +#: configuration.xml:413 +#, fuzzy, no-c-format +msgid "" +"The SessionFactory will be automatically bound to this " +"name in JNDI after it has been created." +msgstr "" +" は生成後、この名前でJNDIに登録されます。 " -#: index.docbook:416, index.docbook:859 -msgid "eg. jndi/composite/name" -msgstr "例: jndi/composite/name" +#. Tag: para +#: configuration.xml:416 configuration.xml:859 +#, fuzzy, no-c-format +msgid "" +"eg. jndi/composite/name" +msgstr "" +"例:true | " +"false" -#: index.docbook:424 +#. Tag: literal +#: configuration.xml:424 +#, no-c-format msgid "hibernate.max_fetch_depth" msgstr "hibernate.max_fetch_depth" -#: index.docbook:426 -msgid "Set a maximum \"depth\" for the outer join fetch tree for single-ended associations (one-to-one, many-to-one). A 0 disables default outer join fetching." -msgstr "外部結合フェッチの最大深度を設定します。結合する関連は 対一関連のみ(一対一、多対一)です。 0 を指定すると外部結合フェッチは無効になります。" +#. Tag: entry +#: configuration.xml:426 +#, fuzzy, no-c-format +msgid "" +"Set a maximum \"depth\" for the outer join fetch tree for single-ended " +"associations (one-to-one, many-to-one). A 0 disables " +"default outer join fetching." +msgstr "" +"外部結合フェッチの最大深度を設定します。結合する関連は 対一関連のみ(一対一、" +"多対一)です。 を指定すると外部結合フェッチは無効になりま" +"す。 " -#: index.docbook:430 -msgid "eg. recommended values between 0 and 3" -msgstr "例: 推奨する値は 0 から 3 です。" +#. Tag: para +#: configuration.xml:430 +#, no-c-format +msgid "" +"eg. recommended values between " +"0 and 3" +msgstr "" +"例: 推奨する値は 0 " +"から 3 です。" -#: index.docbook:439 +#. Tag: literal +#: configuration.xml:439 +#, no-c-format msgid "hibernate.default_batch_fetch_size" msgstr "hibernate.default_batch_fetch_size" -#: index.docbook:441 +#. Tag: entry +#: configuration.xml:441 +#, fuzzy, no-c-format msgid "Set a default size for Hibernate batch fetching of associations." -msgstr "関連フェッチのデフォルトバッチサイズを指定します。" +msgstr "関連フェッチのデフォルトバッチサイズを指定します。 " -#: index.docbook:443 -msgid "eg. recommended values 4, 8, 16" -msgstr "例: 推奨する値は 4 , 8 , 16 です。" +#. Tag: para +#: configuration.xml:443 +#, no-c-format +msgid "" +"eg. recommended values 4, 8, 16" +msgstr "" +"例: 推奨する値は 4 , 8 , 16 です。" -#: index.docbook:452 +#. Tag: literal +#: configuration.xml:452 +#, no-c-format msgid "hibernate.default_entity_mode" msgstr "hibernate.default_entity_mode" -#: index.docbook:454 -msgid "Set a default mode for entity representation for all sessions opened from this SessionFactory" -msgstr "SessionFactory からセッションをオープンしたときに 使用するエンティティのデフォルトモードを設定します。" +#. Tag: entry +#: configuration.xml:454 +#, fuzzy, no-c-format +msgid "" +"Set a default mode for entity representation for all sessions opened from " +"this SessionFactory" +msgstr "" +" からセッションをオープンしたときに 使用するエンティティのデ" +"フォルトモードを設定します。 " -#: index.docbook:457 -msgid "dynamic-map, dom4j, pojo" -msgstr "dynamic-map, dom4j, pojo" +#. Tag: para +#: configuration.xml:457 +#, no-c-format +msgid "" +"dynamic-map, dom4j, pojo" +msgstr "" +"dynamic-map, dom4j, pojo" -#: index.docbook:465 +#. Tag: literal +#: configuration.xml:465 +#, no-c-format msgid "hibernate.order_updates" msgstr "hibernate.order_updates" -#: index.docbook:467 -msgid "Force Hibernate to order SQL updates by the primary key value of the items being updated. This will result in fewer transaction deadlocks in highly concurrent systems." -msgstr "項目が更新されたときに、別のSQLで主キーを更新することを強制します。 この場合、同時実行可能なシステムでは、まれにデッドロックが発生する可能性があります。" +#. Tag: entry +#: configuration.xml:467 +#, fuzzy, no-c-format +msgid "" +"Force Hibernate to order SQL updates by the primary key value of the items " +"being updated. This will result in fewer transaction deadlocks in highly " +"concurrent systems." +msgstr "" +"項目が更新されたときに、別のSQLで主キーを更新することを強制します。 この場" +"合、同時実行可能なシステムでは、まれにデッドロックが発生する可能性がありま" +"す。 " -#: index.docbook:479 +#. Tag: literal +#: configuration.xml:479 +#, no-c-format msgid "hibernate.generate_statistics" msgstr "hibernate.generate_statistics" -#: index.docbook:481 -msgid "If enabled, Hibernate will collect statistics useful for performance tuning." -msgstr "有効の場合、Hibernateはパフォーマンスチューニングに 有効な統計情報を収集します。" +#. Tag: entry +#: configuration.xml:481 +#, fuzzy, no-c-format +msgid "" +"If enabled, Hibernate will collect statistics useful for performance tuning." +msgstr "" +"有効の場合、Hibernateはパフォーマンスチューニングに 有効な統計情報を収集しま" +"す。 " -#: index.docbook:492 +#. Tag: literal +#: configuration.xml:492 +#, no-c-format msgid "hibernate.use_identifier_rollback" msgstr "hibernate.use_identifer_rollback" -#: index.docbook:494 -msgid "If enabled, generated identifier properties will be reset to default values when objects are deleted." -msgstr "有効の場合、オブジェクトが削除されたときに 識別子プロパティをリセットし、デフォルト値にしたものを生成します。" +#. Tag: entry +#: configuration.xml:494 +#, fuzzy, no-c-format +msgid "" +"If enabled, generated identifier properties will be reset to default values " +"when objects are deleted." +msgstr "" +"有効の場合、オブジェクトが削除されたときに 識別子プロパティをリセットし、デ" +"フォルト値にしたものを生成します。 " -#: index.docbook:505 +#. Tag: literal +#: configuration.xml:505 +#, no-c-format msgid "hibernate.use_sql_comments" msgstr "hibernate.use_sql_comments" -#: index.docbook:507 -msgid "If turned on, Hibernate will generate comments inside the SQL, for easier debugging, defaults to false." -msgstr "有効の場合、SQL内にコメントを生成します。これはデバックを容易にします。 デフォルトの値は false です。" +#. Tag: entry +#: configuration.xml:507 +#, fuzzy, no-c-format +msgid "" +"If turned on, Hibernate will generate comments inside the SQL, for easier " +"debugging, defaults to false." +msgstr "" +"有効の場合、SQL内にコメントを生成します。これはデバックを容易にします。 デ" +"フォルトの値は です。 " -#: index.docbook:521 +#. Tag: title +#: configuration.xml:521 +#, no-c-format msgid "Hibernate JDBC and Connection Properties" msgstr "Hibernate JDBC とコネクションプロパティ" -#: index.docbook:536 +#. Tag: literal +#: configuration.xml:536 +#, no-c-format msgid "hibernate.jdbc.fetch_size" msgstr "hibernate.jdbc.fetch_size" -#: index.docbook:538 -msgid "A non-zero value determines the JDBC fetch size (calls Statement.setFetchSize())." -msgstr "値が0でない場合、JDBCフェッチサイズを決定します ( Statement.setFetchSize() を呼びます)。" +#. Tag: entry +#: configuration.xml:538 +#, fuzzy, no-c-format +msgid "" +"A non-zero value determines the JDBC fetch size (calls Statement." +"setFetchSize())." +msgstr "" +"値が0でない場合、JDBCフェッチサイズを決定します ( を呼びま" +"す)。" -#: index.docbook:545 +#. Tag: literal +#: configuration.xml:545 +#, no-c-format msgid "hibernate.jdbc.batch_size" msgstr "hibernate.jdbc.batch_size" -#: index.docbook:547 +#. Tag: entry +#: configuration.xml:547 +#, fuzzy, no-c-format msgid "A non-zero value enables use of JDBC2 batch updates by Hibernate." -msgstr "値が0でない場合、HibernateがJDBC2バッチ更新を使用します。" +msgstr "" +"値が0でない場合、HibernateがJDBC2バッチ更新を使用します。 " -#: index.docbook:549 -msgid "eg. recommended values between 5 and 30" -msgstr "例: 推奨する値は 5 から 30 です。" +#. Tag: para +#: configuration.xml:549 +#, no-c-format +msgid "" +"eg. recommended values between " +"5 and 30" +msgstr "" +"例: 推奨する値は 5 " +"から 30 です。" -#: index.docbook:557 +#. Tag: literal +#: configuration.xml:557 +#, no-c-format msgid "hibernate.jdbc.batch_versioned_data" msgstr "hibernate.jdbc.batch_versioned_data" -#: index.docbook:559 -msgid "Set this property to true if your JDBC driver returns correct row counts from executeBatch() (it is usually safe to turn this option on). Hibernate will then use batched DML for automatically versioned data. Defaults to false." -msgstr "もしJDBCドライバが executeBatch() によって正確な行数を 返す場合、このプロパティを true にしてください (通常はこのオプションをONにします)。 Hibernateは、自動バージョンデータのためバッチDMLを使います。 デフォルトの値は false です。" +#. Tag: entry +#: configuration.xml:559 +#, fuzzy, no-c-format +msgid "" +"Set this property to true if your JDBC driver returns " +"correct row counts from executeBatch() (it is usually " +"safe to turn this option on). Hibernate will then use batched DML for " +"automatically versioned data. Defaults to false." +msgstr "" +"もしJDBCドライバが によって正確な行数を 返す場合、このプロパ" +"ティを にしてください (通常はこのオプションをONにしま" +"す)。 Hibernateは、自動バージョンデータのためバッチDMLを使います。 デフォル" +"トの値は です。 " -#: index.docbook:572 +#. Tag: literal +#: configuration.xml:572 +#, no-c-format msgid "hibernate.jdbc.factory_class" msgstr "hibernate.jdbc.factory_class" -#: index.docbook:574 -msgid "Select a custom Batcher. Most applications will not need this configuration property." -msgstr "カスタム Batcher を選びます。 ほとんどのアプリケーションに、この設定は必要ありません。" +#. Tag: entry +#: configuration.xml:574 +#, fuzzy, no-c-format +msgid "" +"Select a custom Batcher. Most applications will not need " +"this configuration property." +msgstr "" +"カスタム を選びます。 ほとんどのアプリケーションに、この設定" +"は必要ありません。 " -#: index.docbook:577 -msgid "eg. classname.of.BatcherFactory" -msgstr "例: classname.of.BatcherFactory" +#. Tag: para +#: configuration.xml:577 +#, fuzzy, no-c-format +msgid "" +"eg. classname.of." +"BatcherFactory" +msgstr "" +"例:true | " +"false" -#: index.docbook:585 +#. Tag: literal +#: configuration.xml:585 +#, no-c-format msgid "hibernate.jdbc.use_scrollable_resultset" msgstr "hibernate.jdbc.use_scrollable_resultset" -#: index.docbook:587 -msgid "Enables use of JDBC2 scrollable resultsets by Hibernate. This property is only necessary when using user supplied JDBC connections, Hibernate uses connection metadata otherwise." -msgstr "スクロール可能なリザルトセットを、Hibernateが使用します。 このプロパティは、JDBCコネクションがコネクションメタデータを サポートしていることが必須条件になります。" +#. Tag: entry +#: configuration.xml:587 +#, fuzzy, no-c-format +msgid "" +"Enables use of JDBC2 scrollable resultsets by Hibernate. This property is " +"only necessary when using user supplied JDBC connections, Hibernate uses " +"connection metadata otherwise." +msgstr "" +"スクロール可能なリザルトセットを、Hibernateが使用します。 このプロパティは、" +"JDBCコネクションがコネクションメタデータを サポートしていることが必須条件にな" +"ります。 " -#: index.docbook:599 +#. Tag: literal +#: configuration.xml:599 +#, no-c-format msgid "hibernate.jdbc.use_streams_for_binary" msgstr "hibernate.jdbc.use_streams_for_binary" -#: index.docbook:601 -msgid "Use streams when writing/reading binary or serializable types to/from JDBC (system-level property)." -msgstr "JDBCへ/から binaryserializable の書き込み/読み込みストリームを使います(システムレベルのプロパティ)。" +#. Tag: entry +#: configuration.xml:601 +#, fuzzy, no-c-format +msgid "" +"Use streams when writing/reading binary or " +"serializable types to/from JDBC (system-level property)." +msgstr "" +"JDBCへ/から の書き込み/読み込みストリー" +"ムを使います(システムレベルのプロパティ)。 " -#: index.docbook:613 +#. Tag: literal +#: configuration.xml:613 +#, no-c-format msgid "hibernate.jdbc.use_get_generated_keys" msgstr "hibernate.jdbc.use_get_generated_keys" -#: index.docbook:615 -msgid "Enable use of JDBC3 PreparedStatement.getGeneratedKeys() to retrieve natively generated keys after insert. Requires JDBC3+ driver and JRE1.4+, set to false if your driver has problems with the Hibernate identifier generators. By default, tries to determine the driver capabilities using connection metadata." -msgstr "挿入の後に自動生成された主キーを取得するための JDBC3 PreparedStatement.getGeneratedKeys() の使用を有効にします。 これはJDBC3+ドライバとJRE1.4+を必要とし、 もしHibernateの識別子ジェネレータに問題が発生するようならfalseに設定してください。 デフォルトではコネクションメタデータを使いドライバの能力を決定します。" +#. Tag: entry +#: configuration.xml:615 +#, fuzzy, no-c-format +msgid "" +"Enable use of JDBC3 PreparedStatement.getGeneratedKeys() " +"to retrieve natively generated keys after insert. Requires JDBC3+ driver and " +"JRE1.4+, set to false if your driver has problems with the Hibernate " +"identifier generators. By default, tries to determine the driver " +"capabilities using connection metadata." +msgstr "" +"挿入の後に自動生成された主キーを取得するための JDBC3 の使用" +"を有効にします。 これはJDBC3+ドライバとJRE1.4+を必要とし、 もしHibernateの識" +"別子ジェネレータに問題が発生するようならfalseに設定してください。 デフォルト" +"ではコネクションメタデータを使いドライバの能力を決定します。 " -#: index.docbook:621, index.docbook:751, index.docbook:763, index.docbook:777, index.docbook:815 +#. Tag: para +#: configuration.xml:621 configuration.xml:751 configuration.xml:763 +#: configuration.xml:777 configuration.xml:815 +#, fuzzy, no-c-format msgid "eg. true|false" -msgstr "例: true|false" +msgstr "" +"例:true | " +"false" -#: index.docbook:629 +#. Tag: literal +#: configuration.xml:629 +#, no-c-format msgid "hibernate.connection.provider_class" msgstr "hibernate.connection.provider_class" -#: index.docbook:631 -msgid "The classname of a custom ConnectionProvider which provides JDBC connections to Hibernate." -msgstr "JDBCコネクションをHibernateに提供する独自の ConnectionProvider の 名前を指定します。" +#. Tag: entry +#: configuration.xml:631 +#, fuzzy, no-c-format +msgid "" +"The classname of a custom ConnectionProvider which " +"provides JDBC connections to Hibernate." +msgstr "" +"JDBCコネクションをHibernateに提供する独自の の 名前を指定し" +"ます。 " -#: index.docbook:634 -msgid "eg. classname.of.ConnectionProvider" -msgstr "例: classname.of.ConnectionProvider" +#. Tag: para +#: configuration.xml:634 +#, fuzzy, no-c-format +msgid "" +"eg. classname.of." +"ConnectionProvider" +msgstr "" +"例:true | " +"false" -#: index.docbook:642 +#. Tag: literal +#: configuration.xml:642 +#, no-c-format msgid "hibernate.connection.isolation" msgstr "hibernate.connection.isolation" -#: index.docbook:644 -msgid "Set the JDBC transaction isolation level. Check java.sql.Connection for meaningful values but note that most databases do not support all isolation levels." -msgstr "JDBCトランザクション分離レベルを設定します。 妥当な値を調べるためには java.sql.Connection をチェックしてください。 しかし使用するデータベースが、すべての分離レベルをサポートしているとは限りません。" +#. Tag: entry +#: configuration.xml:644 +#, fuzzy, no-c-format +msgid "" +"Set the JDBC transaction isolation level. Check java.sql." +"Connection for meaningful values but note that most databases do " +"not support all isolation levels." +msgstr "" +"JDBCトランザクション分離レベルを設定します。 妥当な値を調べるためには " +" をチェックしてください。 しかし使用するデータベースが、すべ" +"ての分離レベルをサポートしているとは限りません。 " -#: index.docbook:648 +#. Tag: para +#: configuration.xml:648 +#, fuzzy, no-c-format msgid "eg. 1, 2, 4, 8" -msgstr "例: 1, 2, 4, 8" +msgstr "" +"例:true | " +"false" -#: index.docbook:656 +#. Tag: literal +#: configuration.xml:656 +#, no-c-format msgid "hibernate.connection.autocommit" msgstr "hibernate.connection.autocommit" -#: index.docbook:658 +#. Tag: entry +#: configuration.xml:658 +#, fuzzy, no-c-format msgid "Enables autocommit for JDBC pooled connections (not recommended)." -msgstr "プールされているJDBCコネクションの自動コミットを有効にする(非推奨)。" +msgstr "" +"プールされているJDBCコネクションの自動コミットを有効にする(非推奨)。 " +"" -#: index.docbook:668 +#. Tag: literal +#: configuration.xml:668 +#, no-c-format msgid "hibernate.connection.release_mode" msgstr "hibernate.connection.release_mode" -#: index.docbook:670 -msgid "Specify when Hibernate should release JDBC connections. By default, a JDBC connection is held until the session is explicitly closed or disconnected. For an application server JTA datasource, you should use after_statement to aggressively release connections after every JDBC call. For a non-JTA connection, it often makes sense to release the connection at the end of each transaction, by using after_transaction. auto will choose after_statement for the JTA and CMT transaction strategies and after_transaction for the JDBC transaction strategy." -msgstr "HibernateがJDBCコネクションをリリースするかを指定します。デフォルトでは セッションが明示的にクローズまたは切断されてもコネクションは保持します。 アプリケーションサーバのJTAデータソースの場合、 すべてのJDBCコールの後、強制的にコネクションをリリースするために after_statement を 使ってください。 非JTAコネクションの場合、各トランザクションが終了したときに after_transaction を使い、コネクションをリリースしてください。 auto にすると、 JTAやCMTトランザクションの場合、 after_statement でクローズし、 JDBCトランザクションの場合、 after_transaction でクローズします。" +#. Tag: entry +#: configuration.xml:670 +#, fuzzy, no-c-format +msgid "" +"Specify when Hibernate should release JDBC connections. By default, a JDBC " +"connection is held until the session is explicitly closed or disconnected. " +"For an application server JTA datasource, you should use " +"after_statement to aggressively release connections after " +"every JDBC call. For a non-JTA connection, it often makes sense to release " +"the connection at the end of each transaction, by using " +"after_transaction. auto will choose " +"after_statement for the JTA and CMT transaction " +"strategies and after_transaction for the JDBC transaction " +"strategy." +msgstr "" +"HibernateがJDBCコネクションをリリースするかを指定します。デフォルトでは セッ" +"ションが明示的にクローズまたは切断されてもコネクションは保持します。 アプリ" +"ケーションサーバのJTAデータソースの場合、 すべてのJDBCコールの後、強制的にコ" +"ネクションをリリースするために を 使ってください。 非JTAコネ" +"クションの場合、各トランザクションが終了したときに を使い、" +"コネクションをリリースしてください。 にすると、 JTAやCMTトラ" +"ンザクションの場合、 でクローズし、 JDBCトランザクションの場" +"合、 でクローズします。 " -#: index.docbook:681 -msgid "eg. auto (default) | on_close | after_transaction | after_statement" -msgstr "例: auto (default) | on_close | after_transaction | after_statement" +#. Tag: para +#: configuration.xml:681 +#, fuzzy, no-c-format +msgid "" +"eg. auto (default) | " +"on_close | after_transaction | " +"after_statement" +msgstr "" +"例:auto (default) | " +"on_close | after_transaction | " +"after_statement" -#: index.docbook:686 -msgid "Note that this setting only affects Sessions returned from SessionFactory.openSession. For Sessions obtained through SessionFactory.getCurrentSession, the CurrentSessionContext implementation configured for use controls the connection release mode for those Sessions. See" -msgstr "注意してください。この設定は SessionFactory.openSession から 取得した Session だけに効果があります。 SessionFactory.getCurrentSession を通じて取得した Session では、CurrentSessionContext の実装によって、コネクションのリリースモードを設定します。 を参照してください。" +#. Tag: para +#: configuration.xml:686 +#, fuzzy, no-c-format +msgid "" +"Note that this setting only affects Sessions returned " +"from SessionFactory.openSession. For Sessions obtained through SessionFactory.getCurrentSession, the CurrentSessionContext implementation " +"configured for use controls the connection release mode for those " +"Sessions. See" +msgstr "" +"注意してください。この設定は SessionFactory.openSession か" +"ら 取得した Session だけに効果があります。 " +"SessionFactory.getCurrentSession を通じて取得した " +"Session では、CurrentSessionContext の" +"実装によって、コネクションのリリースモードを設定します。 を参照してください。" -#: index.docbook:698 -msgid "hibernate.connection.<propertyName>" -msgstr "hibernate.connection.<propertyName>" +#. Tag: entry +#: configuration.xml:697 +#, no-c-format +msgid "" +"hibernate.connection.<propertyName>" +msgstr "" -#: index.docbook:700 -msgid "Pass the JDBC property propertyName to DriverManager.getConnection()." -msgstr "JDBCの propertyName プロパティを、 DriverManager.getConnection() に渡します。" +#. Tag: entry +#: configuration.xml:700 +#, no-c-format +msgid "" +"Pass the JDBC property <propertyName> to " +"DriverManager.getConnection()." +msgstr "" -#: index.docbook:707 -msgid "hibernate.jndi.<propertyName>" -msgstr "hibernate.jndi.<propertyName>" +#. Tag: entry +#: configuration.xml:706 +#, no-c-format +msgid "" +"hibernate.jndi.<propertyName>" +msgstr "" -#: index.docbook:709 -msgid "Pass the property propertyName to the JNDI InitialContextFactory." -msgstr "propertyName プロパティを、 JNDI InitialContextFactory に渡します。" +#. Tag: entry +#: configuration.xml:709 +#, no-c-format +msgid "" +"Pass the property <propertyName> to the JNDI " +"InitialContextFactory." +msgstr "" -#: index.docbook:719 +#. Tag: title +#: configuration.xml:719 +#, no-c-format msgid "Hibernate Cache Properties" msgstr "Hibernate キャッシュプロパティ" -#: index.docbook:732 +#. Tag: literal +#: configuration.xml:732 +#, no-c-format msgid "hibernate.cache.provider_class" msgstr "hibernate.cache.provider_class" -#: index.docbook:734 +#. Tag: entry +#: configuration.xml:734 +#, fuzzy, no-c-format msgid "The classname of a custom CacheProvider." -msgstr "カスタム CacheProvider のクラス名です。" +msgstr "カスタム のクラス名です。 " -#: index.docbook:736 -msgid "eg. classname.of.CacheProvider" -msgstr "例: classname.of.CacheProvider" +#. Tag: para +#: configuration.xml:736 +#, fuzzy, no-c-format +msgid "" +"eg. classname.of." +"CacheProvider" +msgstr "" +"例:true | " +"false" -#: index.docbook:744 +#. Tag: literal +#: configuration.xml:744 +#, no-c-format msgid "hibernate.cache.use_minimal_puts" msgstr "hibernate.cache.use_minimal_puts" -#: index.docbook:746 -msgid "Optimize second-level cache operation to minimize writes, at the cost of more frequent reads. This setting is most useful for clustered caches and, in Hibernate3, is enabled by default for clustered cache implementations." -msgstr "書き込みを最小限にするために、二次キャッシュの操作を最適化します。 その代わりに、読み込みがより頻繁に発生するようになります。 このセッティングはクラスタキャッシュで役に立ちます。 Hibernate3ではクラスタキャッシュ実装用にデフォルトでは有効になっています。" +#. Tag: entry +#: configuration.xml:746 +#, fuzzy, no-c-format +msgid "" +"Optimize second-level cache operation to minimize writes, at the cost of " +"more frequent reads. This setting is most useful for clustered caches and, " +"in Hibernate3, is enabled by default for clustered cache implementations." +msgstr "" +"書き込みを最小限にするために、二次キャッシュの操作を最適化します。 その代わり" +"に、読み込みがより頻繁に発生するようになります。 このセッティングはクラスタ" +"キャッシュで役に立ちます。 Hibernate3ではクラスタキャッシュ実装用にデフォルト" +"では有効になっています。 " -#: index.docbook:759 +#. Tag: literal +#: configuration.xml:759 +#, no-c-format msgid "hibernate.cache.use_query_cache" msgstr "hibernate.cache.use_query_cache" -#: index.docbook:761 -msgid "Enable the query cache, individual queries still have to be set cachable." -msgstr "特定のクエリがキャッシュ可能な場合に、クエリキャッシュを有効にします。" +#. Tag: entry +#: configuration.xml:761 +#, fuzzy, no-c-format +msgid "" +"Enable the query cache, individual queries still have to be set cachable." +msgstr "" +"特定のクエリがキャッシュ可能な場合に、クエリキャッシュを有効にします。 " +"" -#: index.docbook:771 +#. Tag: literal +#: configuration.xml:771 +#, no-c-format msgid "hibernate.cache.use_second_level_cache" msgstr "hibernate.cache.use_second_level_cache" -#: index.docbook:773 -msgid "May be used to completely disable the second level cache, which is enabled by default for classes which specify a <cache> mapping." -msgstr "二次キャッシュを完全に無効にする場合に使います。 デフォルトでは有効で、クラスの <cache> マッピング で制御します。" +#. Tag: entry +#: configuration.xml:773 +#, fuzzy, no-c-format +msgid "" +"May be used to completely disable the second level cache, which is enabled " +"by default for classes which specify a <cache> " +"mapping." +msgstr "" +"二次キャッシュを完全に無効にする場合に使います。 デフォルトでは有効で、クラス" +"の マッピング で制御します。 " -#: index.docbook:785 +#. Tag: literal +#: configuration.xml:785 +#, no-c-format msgid "hibernate.cache.query_cache_factory" msgstr "hibernate.cache.query_cache_factory" -#: index.docbook:787 -msgid "The classname of a custom QueryCache interface, defaults to the built-in StandardQueryCache." -msgstr "カスタム QueryCache インターフェイスのクラス名を 指定します。デフォルトでは StandardQueryCache になります。" +#. Tag: entry +#: configuration.xml:787 +#, fuzzy, no-c-format +msgid "" +"The classname of a custom QueryCache interface, defaults " +"to the built-in StandardQueryCache." +msgstr "" +"カスタム インターフェイスのクラス名を 指定します。デフォルト" +"では になります。 " -#: index.docbook:790 -msgid "eg. classname.of.QueryCache" -msgstr "例: classname.of.QueryCache" +#. Tag: para +#: configuration.xml:790 +#, fuzzy, no-c-format +msgid "" +"eg. classname.of.QueryCache" +msgstr "" +"例:true | " +"false" -#: index.docbook:798 +#. Tag: literal +#: configuration.xml:798 +#, no-c-format msgid "hibernate.cache.region_prefix" msgstr "hibernate.cache.region_prefix" -#: index.docbook:800 +#. Tag: entry +#: configuration.xml:800 +#, fuzzy, no-c-format msgid "A prefix to use for second-level cache region names." -msgstr "二次キャッシュの領域名の接頭辞です。" +msgstr "二次キャッシュの領域名の接頭辞です。 " -#: index.docbook:802 +#. Tag: para +#: configuration.xml:802 +#, fuzzy, no-c-format msgid "eg. prefix" -msgstr "例: prefix" +msgstr "" +"例:true | " +"false" -#: index.docbook:810 +#. Tag: literal +#: configuration.xml:810 +#, no-c-format msgid "hibernate.cache.use_structured_entries" msgstr "hibernate.cache.use_structured_entries" -#: index.docbook:812 -msgid "Forces Hibernate to store data in the second-level cache in a more human-friendly format." -msgstr "二次キャッシュに格納するデータを、人が理解しやすいフォーマットにします。" +#. Tag: entry +#: configuration.xml:812 +#, fuzzy, no-c-format +msgid "" +"Forces Hibernate to store data in the second-level cache in a more human-" +"friendly format." +msgstr "" +"二次キャッシュに格納するデータを、人が理解しやすいフォーマットにします。 " +"" -#: index.docbook:826 +#. Tag: title +#: configuration.xml:826 +#, no-c-format msgid "Hibernate Transaction Properties" msgstr "Hibernate トランザクションプロパティ" -#: index.docbook:839 +#. Tag: literal +#: configuration.xml:839 +#, no-c-format msgid "hibernate.transaction.factory_class" msgstr "hibernate.transaction.factory_class" -#: index.docbook:841 -msgid "The classname of a TransactionFactory to use with Hibernate Transaction API (defaults to JDBCTransactionFactory)." -msgstr "Hibernate Transaction APIと一緒に使われる TransactionFactory のクラス名です。 (デフォルトでは JDBCTransactionFactory です)。" +#. Tag: entry +#: configuration.xml:841 +#, fuzzy, no-c-format +msgid "" +"The classname of a TransactionFactory to use with " +"Hibernate Transaction API (defaults to " +"JDBCTransactionFactory)." +msgstr "" +"Hibernate APIと一緒に使われる のクラス名で" +"す。 (デフォルトでは です)。 " -#: index.docbook:845 -msgid "eg. classname.of.TransactionFactory" -msgstr "例: classname.of.TransactionFactory" +#. Tag: para +#: configuration.xml:845 +#, fuzzy, no-c-format +msgid "" +"eg. classname.of." +"TransactionFactory" +msgstr "" +"例:true | " +"false" -#: index.docbook:853 +#. Tag: literal +#: configuration.xml:853 +#, no-c-format msgid "jta.UserTransaction" msgstr "jta.UserTransaction" -#: index.docbook:855 -msgid "A JNDI name used by JTATransactionFactory to obtain the JTA UserTransaction from the application server." -msgstr "アプリケーションサーバからJTA UserTransaction を取得するために JTATransactionFactory に使われるJNDI名です。" +#. Tag: entry +#: configuration.xml:855 +#, fuzzy, no-c-format +msgid "" +"A JNDI name used by JTATransactionFactory to obtain the " +"JTA UserTransaction from the application server." +msgstr "" +"アプリケーションサーバからJTA を取得するために に使われるJNDI名です。 " -#: index.docbook:867 +#. Tag: literal +#: configuration.xml:867 +#, no-c-format msgid "hibernate.transaction.manager_lookup_class" msgstr "hibernate.transaction.manager_lookup_class" -#: index.docbook:869 -msgid "The classname of a TransactionManagerLookup - required when JVM-level caching is enabled or when using hilo generator in a JTA environment." -msgstr "TransactionManagerLookup のクラス名です。 JTA環境において、JVMレベルのキャッシュを有効にするために必要です。" +#. Tag: entry +#: configuration.xml:869 +#, fuzzy, no-c-format +msgid "" +"The classname of a TransactionManagerLookup - required " +"when JVM-level caching is enabled or when using hilo generator in a JTA " +"environment." +msgstr "" +" のクラス名です。 JTA環境において、JVMレベルのキャッシュを有" +"効にするために必要です。 " -#: index.docbook:873 -msgid "eg. classname.of.TransactionManagerLookup" -msgstr "例: classname.of.TransactionManagerLookup" +#. Tag: para +#: configuration.xml:873 +#, fuzzy, no-c-format +msgid "" +"eg. classname.of." +"TransactionManagerLookup" +msgstr "" +"例:true | " +"false" -#: index.docbook:881 +#. Tag: literal +#: configuration.xml:881 +#, no-c-format msgid "hibernate.transaction.flush_before_completion" msgstr "hibernate.transaction.flush_before_completion" -#: index.docbook:883 -msgid "If enabled, the session will be automatically flushed during the before completion phase of the transaction. Built-in and automatic session context management is preferred, see ." -msgstr "有効の場合、トランザクションのcompletionフェーズの前に自動的に セッションをフラッシュします。内臓の自動セッションコンテキスト管理に適しています。 を参照してください。" +#. Tag: entry +#: configuration.xml:883 +#, fuzzy, no-c-format +msgid "" +"If enabled, the session will be automatically flushed during the before " +"completion phase of the transaction. Built-in and automatic session context " +"management is preferred, see ." +msgstr "" +"有効の場合、トランザクションのcompletionフェーズの前に自動的に セッションをフ" +"ラッシュします。内臓の自動セッションコンテキスト管理に適しています。 を参照してください。 " -#: index.docbook:896 +#. Tag: literal +#: configuration.xml:896 +#, no-c-format msgid "hibernate.transaction.auto_close_session" msgstr "hibernate.transaction.auto_close_session" -#: index.docbook:898 -msgid "If enabled, the session will be automatically closed during the after completion phase of the transaction. Built-in and utomatic session context management is preferred, see ." -msgstr "有効の場合、トランザクションのcompletionフェーズの後に セッションを自動的にクローズします。内臓の自動セッションコンテキスト管理に適しています。 を参照してください。" +#. Tag: entry +#: configuration.xml:898 +#, fuzzy, no-c-format +msgid "" +"If enabled, the session will be automatically closed during the after " +"completion phase of the transaction. Built-in and utomatic session context " +"management is preferred, see ." +msgstr "" +"有効の場合、トランザクションのcompletionフェーズの後に セッションを自動的にク" +"ローズします。内臓の自動セッションコンテキスト管理に適しています。 を参照してください。 " -#: index.docbook:914 +#. Tag: title +#: configuration.xml:914 +#, no-c-format msgid "Miscellaneous Properties" msgstr "その他のプロパティ" -#: index.docbook:927 +#. Tag: literal +#: configuration.xml:927 +#, no-c-format msgid "hibernate.current_session_context_class" msgstr "hibernate.current_session_context_class" -#: index.docbook:929 -msgid "Supply a (custom) strategy for the scoping of the \"current\" Session. See for more information about the built-in strategies." -msgstr "「現在の」Session のための(カスタム)戦略を提供します。 ビルトインストラテジーに関するその他の情報については を参照してください。" +#. Tag: entry +#: configuration.xml:929 +#, fuzzy, no-c-format +msgid "" +"Supply a (custom) strategy for the scoping of the \"current\" " +"Session. See for more information about the built-in strategies." +msgstr "" +"「現在の」 のための(カスタム)戦略を提供します。 ビルトイン" +"ストラテジーに関するその他の情報については を参照してください。 " -#: index.docbook:934 -msgid "eg. jta | thread | managed | custom.Class" -msgstr "例: jta | thread | managed | custom.Class" +#. Tag: para +#: configuration.xml:934 +#, fuzzy, no-c-format +msgid "" +"eg. jta | " +"thread | managed | custom." +"Class" +msgstr "" +"例:jta | " +"thread | managed | custom." +"Class" -#: index.docbook:943 +#. Tag: literal +#: configuration.xml:943 +#, no-c-format msgid "hibernate.query.factory_class" msgstr "hibernate.query.factory_class" -#: index.docbook:945 +#. Tag: entry +#: configuration.xml:945 +#, fuzzy, no-c-format msgid "Chooses the HQL parser implementation." -msgstr "HQLパーサーの実装を選択します。" +msgstr "HQLパーサーの実装を選択します。 " -#: index.docbook:947 -msgid "eg. org.hibernate.hql.ast.ASTQueryTranslatorFactory or org.hibernate.hql.classic.ClassicQueryTranslatorFactory" -msgstr "例: org.hibernate.hql.ast.ASTQueryTranslatorFactory or org.hibernate.hql.classic.ClassicQueryTranslatorFactory" +#. Tag: para +#: configuration.xml:947 +#, fuzzy, no-c-format +msgid "" +"eg. org.hibernate.hql.ast." +"ASTQueryTranslatorFactory or org.hibernate.hql.classic." +"ClassicQueryTranslatorFactory" +msgstr "" +"例:org.hibernate.hql.ast." +"ASTQueryTranslatorFactory or org.hibernate.hql.classic." +"ClassicQueryTranslatorFactory" -#: index.docbook:956 +#. Tag: literal +#: configuration.xml:956 +#, no-c-format msgid "hibernate.query.substitutions" msgstr "hibernate.query.substitutions" -#: index.docbook:958 -msgid "Mapping from tokens in Hibernate queries to SQL tokens (tokens might be function or literal names, for example)." -msgstr "HQLとSQLのトークンをマッピングします。 (例えば、トークンは関数やリテラル名です)。" +#. Tag: entry +#: configuration.xml:958 +#, fuzzy, no-c-format +msgid "" +"Mapping from tokens in Hibernate queries to SQL tokens (tokens might be " +"function or literal names, for example)." +msgstr "" +"HQLとSQLのトークンをマッピングします。 (例えば、トークンは関数やリテラル名で" +"す)。 " -#: index.docbook:961 -msgid "eg. hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC" -msgstr "例: hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC" +#. Tag: para +#: configuration.xml:961 +#, fuzzy, no-c-format +msgid "" +"eg. hqlLiteral=SQL_LITERAL, " +"hqlFunction=SQLFUNC" +msgstr "" +"例:true | " +"false" -#: index.docbook:969 +#. Tag: literal +#: configuration.xml:969 +#, no-c-format msgid "hibernate.hbm2ddl.auto" msgstr "hibernate.hbm2ddl.auto" -#: index.docbook:971 -msgid "Automatically validate or export schema DDL to the database when the SessionFactory is created. With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly." -msgstr "SessionFactory を生成したときに、 自動的にスキーマDDLをDBに出力します。 create-drop の場合、 SessionFactory を クローズしたときに、データベーススキーマをドロップします。" +#. Tag: entry +#: configuration.xml:971 +#, fuzzy, no-c-format +msgid "" +"Automatically validate or export schema DDL to the database when the " +"SessionFactory is created. With create-drop, the database schema will be dropped when the " +"SessionFactory is closed explicitly." +msgstr "" +" を生成したときに、 自動的にスキーマDDLをDBに出力します。 " +" の場合、 を クローズしたときに、データベー" +"ススキーマをドロップします。 " -#: index.docbook:977 -msgid "eg. validate | update | create | create-drop" -msgstr "例: validate | update | create | create-drop" +#. Tag: para +#: configuration.xml:977 +#, fuzzy, no-c-format +msgid "" +"eg. validate | " +"update | create | create-" +"drop" +msgstr "" +"例:validate | " +"update | create | create-" +"drop" -#: index.docbook:986 +#. Tag: literal +#: configuration.xml:986 +#, no-c-format msgid "hibernate.cglib.use_reflection_optimizer" msgstr "hibernate.cglib.use_reflection_optimizer" -#: index.docbook:988 -msgid "Enables use of CGLIB instead of runtime reflection (System-level property). Reflection can sometimes be useful when troubleshooting, note that Hibernate always requires CGLIB even if you turn off the optimizer. You can not set this property in hibernate.cfg.xml." -msgstr "実行時リフレクションの代わりのCGLIBの使用を有効にします (システムレベルのプロパティ) リフレクションはトラブルシューティングのときに役立つことがあります。 オプティマイザをオフにしているときでさえ、 Hibernateには必ずCGLIBが必要なことに注意してください。 このプロパティは hibernate.cfg.xml で設定できません。" +#. Tag: entry +#: configuration.xml:988 +#, fuzzy, no-c-format +msgid "" +"Enables use of CGLIB instead of runtime reflection (System-level property). " +"Reflection can sometimes be useful when troubleshooting, note that Hibernate " +"always requires CGLIB even if you turn off the optimizer. You can not set " +"this property in hibernate.cfg.xml." +msgstr "" +"実行時リフレクションの代わりのCGLIBの使用を有効にします (システムレベルのプ" +"ロパティ) リフレクションはトラブルシューティングのときに役立つことがありま" +"す。 オプティマイザをオフにしているときでさえ、 Hibernateには必ずCGLIBが必要" +"なことに注意してください。 このプロパティは で設定できませ" +"ん。 " -#: index.docbook:1004 +#. Tag: title +#: configuration.xml:1004 +#, no-c-format msgid "SQL Dialects" msgstr "SQL 方言(Dialect)" -#: index.docbook:1006 -msgid "You should always set the hibernate.dialect property to the correct org.hibernate.dialect.Dialect subclass for your database. If you specify a dialect, Hibernate will use sensible defaults for some of the other properties listed above, saving you the effort of specifying them manually." -msgstr "hibernate.dialect プロパティには、 使用するデータベースの正しい org.hibernate.dialect.Dialect のサブクラスを、 必ず指定すべきです。 しかし方言を指定すれば、Hibernateは上述したプロパティのいくつかについて、 より適切なデフォルト値を使います。 そうすれば、それらを手作業で設定する手間が省けます。" +#. Tag: para +#: configuration.xml:1006 +#, no-c-format +msgid "" +"You should always set the hibernate.dialect property to " +"the correct org.hibernate.dialect.Dialect subclass for " +"your database. If you specify a dialect, Hibernate will use sensible " +"defaults for some of the other properties listed above, saving you the " +"effort of specifying them manually." +msgstr "" +"hibernate.dialect プロパティには、 使用するデータベースの" +"正しい org.hibernate.dialect.Dialect のサブクラスを、 必ず" +"指定すべきです。 しかし方言を指定すれば、Hibernateは上述したプロパティのいく" +"つかについて、 より適切なデフォルト値を使います。 そうすれば、それらを手作業" +"で設定する手間が省けます。" -#: index.docbook:1014 +#. Tag: title +#: configuration.xml:1014 +#, no-c-format msgid "Hibernate SQL Dialects (hibernate.dialect)" msgstr "Hibernate SQL Dialects (hibernate.dialect)" -#: index.docbook:1022 +#. Tag: entry +#: configuration.xml:1022 +#, no-c-format msgid "RDBMS" msgstr "RDBMS" -#: index.docbook:1023 +#. Tag: entry +#: configuration.xml:1023 +#, no-c-format msgid "Dialect" msgstr "Dialect" -#: index.docbook:1028 +#. Tag: entry +#: configuration.xml:1028 +#, no-c-format msgid "DB2" -msgstr "DB2" +msgstr "" -#: index.docbook:1028 +#. Tag: literal +#: configuration.xml:1028 +#, no-c-format msgid "org.hibernate.dialect.DB2Dialect" msgstr "org.hibernate.dialect.DB2Dialect" -#: index.docbook:1031 +#. Tag: entry +#: configuration.xml:1031 +#, no-c-format msgid "DB2 AS/400" msgstr "DB2 AS/400" -#: index.docbook:1031 +#. Tag: literal +#: configuration.xml:1031 +#, no-c-format msgid "org.hibernate.dialect.DB2400Dialect" msgstr "org.hibernate.dialect.DB2400Dialect" -#: index.docbook:1034 +#. Tag: entry +#: configuration.xml:1034 +#, no-c-format msgid "DB2 OS390" msgstr "DB2 OS390" -#: index.docbook:1034 +#. Tag: literal +#: configuration.xml:1034 +#, no-c-format msgid "org.hibernate.dialect.DB2390Dialect" msgstr "org.hibernate.dialect.DB2390Dialect" -#: index.docbook:1037 +#. Tag: entry +#: configuration.xml:1037 +#, no-c-format msgid "PostgreSQL" msgstr "PostgreSQL" -#: index.docbook:1037 +#. Tag: literal +#: configuration.xml:1037 +#, no-c-format msgid "org.hibernate.dialect.PostgreSQLDialect" msgstr "org.hibernate.dialect.PostgreSQLDialect" -#: index.docbook:1040 +#. Tag: entry +#: configuration.xml:1040 +#, no-c-format msgid "MySQL" msgstr "MySQL" -#: index.docbook:1040 +#. Tag: literal +#: configuration.xml:1040 +#, no-c-format msgid "org.hibernate.dialect.MySQLDialect" msgstr "org.hibernate.dialect.MySQLDialect" -#: index.docbook:1043 +#. Tag: entry +#: configuration.xml:1043 +#, no-c-format msgid "MySQL with InnoDB" msgstr "MySQL with InnoDB" -#: index.docbook:1043 +#. Tag: literal +#: configuration.xml:1043 +#, no-c-format msgid "org.hibernate.dialect.MySQLInnoDBDialect" msgstr "org.hibernate.dialect.MySQLInnoDBDialect" -#: index.docbook:1046 +#. Tag: entry +#: configuration.xml:1046 +#, no-c-format msgid "MySQL with MyISAM" msgstr "MySQL with MyISAM" -#: index.docbook:1046 +#. Tag: literal +#: configuration.xml:1046 +#, no-c-format msgid "org.hibernate.dialect.MySQLMyISAMDialect" msgstr "org.hibernate.dialect.MySQLMyISAMDialect" -#: index.docbook:1049 +#. Tag: entry +#: configuration.xml:1049 +#, no-c-format msgid "Oracle (any version)" msgstr "Oracle (any version)" -#: index.docbook:1049 +#. Tag: literal +#: configuration.xml:1049 +#, no-c-format msgid "org.hibernate.dialect.OracleDialect" msgstr "org.hibernate.dialect.OracleDialect" -#: index.docbook:1052 +#. Tag: entry +#: configuration.xml:1052 +#, no-c-format msgid "Oracle 9i/10g" msgstr "Oracle 9i/10g" -#: index.docbook:1052 +#. Tag: literal +#: configuration.xml:1052 +#, no-c-format msgid "org.hibernate.dialect.Oracle9Dialect" msgstr "org.hibernate.dialect.Oracle9Dialect" -#: index.docbook:1055 +#. Tag: entry +#: configuration.xml:1055 +#, no-c-format msgid "Sybase" msgstr "Sybase" -#: index.docbook:1055 +#. Tag: literal +#: configuration.xml:1055 +#, no-c-format msgid "org.hibernate.dialect.SybaseDialect" msgstr "org.hibernate.dialect.SybaseDialect" -#: index.docbook:1058 +#. Tag: entry +#: configuration.xml:1058 +#, no-c-format msgid "Sybase Anywhere" msgstr "Sybase Anywhere" -#: index.docbook:1058 +#. Tag: literal +#: configuration.xml:1058 +#, no-c-format msgid "org.hibernate.dialect.SybaseAnywhereDialect" msgstr "org.hibernate.dialect.SybaseAnywhereDialect" -#: index.docbook:1061 +#. Tag: entry +#: configuration.xml:1061 +#, no-c-format msgid "Microsoft SQL Server" msgstr "Microsoft SQL Server" -#: index.docbook:1061 +#. Tag: literal +#: configuration.xml:1061 +#, no-c-format msgid "org.hibernate.dialect.SQLServerDialect" msgstr "org.hibernate.dialect.SQLServerDialect" -#: index.docbook:1064 +#. Tag: entry +#: configuration.xml:1064 +#, no-c-format msgid "SAP DB" msgstr "SAP DB" -#: index.docbook:1064 +#. Tag: literal +#: configuration.xml:1064 +#, no-c-format msgid "org.hibernate.dialect.SAPDBDialect" msgstr "org.hibernate.dialect.SAPDBDialect" -#: index.docbook:1067 +#. Tag: entry +#: configuration.xml:1067 +#, no-c-format msgid "Informix" msgstr "Informix" -#: index.docbook:1067 +#. Tag: literal +#: configuration.xml:1067 +#, no-c-format msgid "org.hibernate.dialect.InformixDialect" msgstr "org.hibernate.dialect.InformixDialect" -#: index.docbook:1070 +#. Tag: entry +#: configuration.xml:1070 +#, no-c-format msgid "HypersonicSQL" msgstr "HypersonicSQL" -#: index.docbook:1070 +#. Tag: literal +#: configuration.xml:1070 +#, no-c-format msgid "org.hibernate.dialect.HSQLDialect" msgstr "org.hibernate.dialect.HSQLDialect" -#: index.docbook:1073 +#. Tag: entry +#: configuration.xml:1073 +#, no-c-format msgid "Ingres" msgstr "Ingres" -#: index.docbook:1073 +#. Tag: literal +#: configuration.xml:1073 +#, no-c-format msgid "org.hibernate.dialect.IngresDialect" msgstr "org.hibernate.dialect.IngresDialect" -#: index.docbook:1076 +#. Tag: entry +#: configuration.xml:1076 +#, no-c-format msgid "Progress" msgstr "Progress" -#: index.docbook:1076 +#. Tag: literal +#: configuration.xml:1076 +#, no-c-format msgid "org.hibernate.dialect.ProgressDialect" msgstr "org.hibernate.dialect.ProgressDialect" -#: index.docbook:1079 +#. Tag: entry +#: configuration.xml:1079 +#, no-c-format msgid "Mckoi SQL" msgstr "Mckoi SQL" -#: index.docbook:1079 +#. Tag: literal +#: configuration.xml:1079 +#, no-c-format msgid "org.hibernate.dialect.MckoiDialect" msgstr "org.hibernate.dialect.MckoiDialect" -#: index.docbook:1082 +#. Tag: entry +#: configuration.xml:1082 +#, no-c-format msgid "Interbase" msgstr "Interbase" -#: index.docbook:1082 +#. Tag: literal +#: configuration.xml:1082 +#, no-c-format msgid "org.hibernate.dialect.InterbaseDialect" msgstr "org.hibernate.dialect.InterbaseDialect" -#: index.docbook:1085 +#. Tag: entry +#: configuration.xml:1085 +#, no-c-format msgid "Pointbase" msgstr "Pointbase" -#: index.docbook:1085 +#. Tag: literal +#: configuration.xml:1085 +#, no-c-format msgid "org.hibernate.dialect.PointbaseDialect" msgstr "org.hibernate.dialect.PointbaseDialect" -#: index.docbook:1088 +#. Tag: entry +#: configuration.xml:1088 +#, no-c-format msgid "FrontBase" msgstr "FrontBase" -#: index.docbook:1088 +#. Tag: literal +#: configuration.xml:1088 +#, no-c-format msgid "org.hibernate.dialect.FrontbaseDialect" msgstr "org.hibernate.dialect.FrontbaseDialect" -#: index.docbook:1091 +#. Tag: entry +#: configuration.xml:1091 +#, no-c-format msgid "Firebird" msgstr "Firebird" -#: index.docbook:1091 +#. Tag: literal +#: configuration.xml:1091 +#, no-c-format msgid "org.hibernate.dialect.FirebirdDialect" msgstr "org.hibernate.dialect.FirebirdDialect" -#: index.docbook:1100 +#. Tag: title +#: configuration.xml:1100 +#, no-c-format msgid "Outer Join Fetching" msgstr "外部結合フェッチ" -#: index.docbook:1102 -msgid "If your database supports ANSI, Oracle or Sybase style outer joins, outer join fetching will often increase performance by limiting the number of round trips to and from the database (at the cost of possibly more work performed by the database itself). Outer join fetching allows a whole graph of objects connected by many-to-one, one-to-many, many-to-many and one-to-one associations to be retrieved in a single SQL SELECT." -msgstr "もしDBがANSIか、OracleかSybaseスタイルの外部結合をサポートしている場合、 outer join fetching は、DBのSQL発行回数を節約し パフォーマンスを良くします。(DB内でより多くの処理コストが発生します) 外部結合フェッチは、多対一、一対多、多対多、一対一のオブジェクト関連で グループオブジェクトを1つのSQLで SELECT します。" +#. Tag: para +#: configuration.xml:1102 +#, no-c-format +msgid "" +"If your database supports ANSI, Oracle or Sybase style outer joins, " +"outer join fetching will often increase performance by " +"limiting the number of round trips to and from the database (at the cost of " +"possibly more work performed by the database itself). Outer join fetching " +"allows a whole graph of objects connected by many-to-one, one-to-many, many-" +"to-many and one-to-one associations to be retrieved in a single SQL " +"SELECT." +msgstr "" +"もしDBがANSIか、OracleかSybaseスタイルの外部結合をサポートしている場合、 " +"outer join fetching は、DBのSQL発行回数を節約し パフォー" +"マンスを良くします。(DB内でより多くの処理コストが発生します) 外部結合フェッ" +"チは、多対一、一対多、多対多、一対一のオブジェクト関連で グループオブジェクト" +"を1つのSQLで SELECT します。" -#: index.docbook:1111 -msgid "Outer join fetching may be disabled globally by setting the property hibernate.max_fetch_depth to 0. A setting of 1 or higher enables outer join fetching for one-to-one and many-to-one associations which have been mapped with fetch=\"join\"." -msgstr "hibernate.max_fetch_depth プロパティの値を 0 にすると Outer join fetchingを すべて 無効にすることになります。 1 やそれ以上の値を設定すると、外部結合フェッチが有効になり、 一対一と多対一関連が fetch=\"join\" としてマッピングされます。" +#. Tag: para +#: configuration.xml:1111 +#, no-c-format +msgid "" +"Outer join fetching may be disabled globally by setting " +"the property hibernate.max_fetch_depth to 0. A setting of 1 or higher enables outer join " +"fetching for one-to-one and many-to-one associations which have been mapped " +"with fetch=\"join\"." +msgstr "" +"hibernate.max_fetch_depth プロパティの値を 0 にすると Outer join fetchingを すべて 無効にす" +"ることになります。 1 やそれ以上の値を設定すると、外部結合" +"フェッチが有効になり、 一対一と多対一関連が fetch=\"join\" としてマッピングされます。" -#: index.docbook:1119 +#. Tag: para +#: configuration.xml:1119 +#, no-c-format msgid "See for more information." msgstr "See for more information." -#: index.docbook:1126 +#. Tag: title +#: configuration.xml:1126 +#, no-c-format msgid "Binary Streams" msgstr "バイナリストリーム" -#: index.docbook:1128 -msgid "Oracle limits the size of byte arrays that may be passed to/from its JDBC driver. If you wish to use large instances of binary or serializable type, you should enable hibernate.jdbc.use_streams_for_binary. This is a system-level setting only." -msgstr "OracleはJDBCドライバとの間でやりとりされる byte 配列のサイズを制限します。 binaryserializable 型の大きなインスタンスを使いたければ、 hibernate.jdbc.use_streams_for_binary を有効にしてください。 ただし これはシステムレベルの設定だけです 。" +#. Tag: para +#: configuration.xml:1128 +#, no-c-format +msgid "" +"Oracle limits the size of byte arrays that may be passed " +"to/from its JDBC driver. If you wish to use large instances of " +"binary or serializable type, you " +"should enable hibernate.jdbc.use_streams_for_binary. " +"This is a system-level setting only." +msgstr "" +"OracleはJDBCドライバとの間でやりとりされる byte 配列のサイ" +"ズを制限します。 binaryserializable 型の大きなインスタンスを使いたければ、 hibernate.jdbc." +"use_streams_for_binary を有効にしてください。 ただし これ" +"はシステムレベルの設定だけです 。" -#: index.docbook:1139 +#. Tag: title +#: configuration.xml:1139 +#, no-c-format msgid "Second-level and query cache" msgstr "2次キャッシュとクエリーキャッシュ" -#: index.docbook:1141 -msgid "The properties prefixed by hibernate.cache allow you to use a process or cluster scoped second-level cache system with Hibernate. See the for more details." -msgstr "hibernate.cache プロパティ接頭辞は Hibernateでプロセスやクラスタ二次キャッシュを使うとことを許可します。 により多くの詳細があります。" +#. Tag: para +#: configuration.xml:1141 +#, no-c-format +msgid "" +"The properties prefixed by hibernate.cache allow you to " +"use a process or cluster scoped second-level cache system with Hibernate. " +"See the for more details." +msgstr "" +"hibernate.cache プロパティ接頭辞は Hibernateでプロセスやク" +"ラスタ二次キャッシュを使うとことを許可します。 により多くの詳細があります。" -#: index.docbook:1151 +#. Tag: title +#: configuration.xml:1151 +#, no-c-format msgid "Query Language Substitution" msgstr "クエリー言語の置き換え" -#: index.docbook:1153 -msgid "You may define new Hibernate query tokens using hibernate.query.substitutions. For example:" -msgstr "hibernate.query.substitutions を使うことで、 新しいHibernateクエリトークンを定義できます。 例:" +#. Tag: para +#: configuration.xml:1153 +#, no-c-format +msgid "" +"You may define new Hibernate query tokens using hibernate.query." +"substitutions. For example:" +msgstr "" +"hibernate.query.substitutions を使うことで、 新しい" +"Hibernateクエリトークンを定義できます。 例:" -#: index.docbook:1158 +#. Tag: programlisting +#: configuration.xml:1158 +#, no-c-format msgid "hibernate.query.substitutions true=1, false=0" msgstr "hibernate.query.substitutions true=1, false=0" -#: index.docbook:1160 -msgid "would cause the tokens true and false to be translated to integer literals in the generated SQL." -msgstr "これはトークン truefalse を、 生成されるSQLにおいて整数リテラルに翻訳します。" +#. Tag: para +#: configuration.xml:1160 +#, no-c-format +msgid "" +"would cause the tokens true and false " +"to be translated to integer literals in the generated SQL." +msgstr "" +"これはトークン truefalse を、 生成" +"されるSQLにおいて整数リテラルに翻訳します。" -#: index.docbook:1165 +#. Tag: programlisting +#: configuration.xml:1165 +#, no-c-format msgid "hibernate.query.substitutions toLowercase=LOWER" msgstr "hibernate.query.substitutions toLowercase=LOWER" -#: index.docbook:1167 +#. Tag: para +#: configuration.xml:1167 +#, no-c-format msgid "would allow you to rename the SQL LOWER function." -msgstr "これはSQLの LOWER 関数の名前の付け替えを可能にします。" +msgstr "" +"これはSQLの LOWER 関数の名前の付け替えを可能にします。" -#: index.docbook:1174 +#. Tag: title +#: configuration.xml:1174 +#, no-c-format msgid "Hibernate statistics" msgstr "Hibernate 統計" -#: index.docbook:1176 -msgid "If you enable hibernate.generate_statistics, Hibernate will expose a number of metrics that are useful when tuning a running system via SessionFactory.getStatistics(). Hibernate can even be configured to expose these statistics via JMX. Read the Javadoc of the interfaces in org.hibernate.stats for more information." -msgstr "hibernate.generate_statistics を有効にした場合、 動作しているシステムをチューニングするときに、SessionFactory.getStatistics() を経由して、Hibernateは便利な統計情報を出力します。 JMXを経由して統計情報を出力することも可能です。 Javadocの org.hibernate.stats パッケージ内の インターフェイスにはより多くの情報があります。" +#. Tag: para +#: configuration.xml:1176 +#, no-c-format +msgid "" +"If you enable hibernate.generate_statistics, Hibernate " +"will expose a number of metrics that are useful when tuning a running system " +"via SessionFactory.getStatistics(). Hibernate can even be " +"configured to expose these statistics via JMX. Read the Javadoc of the " +"interfaces in org.hibernate.stats for more information." +msgstr "" +"hibernate.generate_statistics を有効にした場合、 動作して" +"いるシステムをチューニングするときに、SessionFactory.getStatistics()" +" を経由して、Hibernateは便利な統計情報を出力します。 JMXを経由して" +"統計情報を出力することも可能です。 Javadocの org.hibernate.stats パッケージ内の インターフェイスにはより多くの情報があります。" -#: index.docbook:1188 +#. Tag: title +#: configuration.xml:1188 +#, no-c-format msgid "Logging" msgstr "ロギング" -#: index.docbook:1190 +#. Tag: para +#: configuration.xml:1190 +#, no-c-format msgid "Hibernate logs various events using Apache commons-logging." -msgstr "HibernateはApache commons-logginを使って、さまざまなイベントをログとして 出力します。" +msgstr "" +"HibernateはApache commons-logginを使って、さまざまなイベントをログとして 出力" +"します。" -#: index.docbook:1194 -msgid "The commons-logging service will direct output to either Apache Log4j (if you include log4j.jar in your classpath) or JDK1.4 logging (if running under JDK1.4 or above). You may download Log4j from http://jakarta.apache.org. To use Log4j you will need to place a log4j.properties file in your classpath, an example properties file is distributed with Hibernate in the src/ directory." -msgstr "commons-loggingサービスは(クラスパスに log4j.jar を含めれば)Apache Log4jに、 また(JDK1.4かそれ以上で実行させれば)JDK1.4 loggingに直接出力します。 Log4jは http://jakarta.apache.org からダウンロードできます。 Log4jを使うためには、クラスパスに log4j.properties ファイルを配置する必要があります。 例のプロパティファイルはHibernateと一緒に配布され、それは src/ ディレクトリにあります。" +#. Tag: para +#: configuration.xml:1194 +#, no-c-format +msgid "" +"The commons-logging service will direct output to either Apache Log4j (if " +"you include log4j.jar in your classpath) or JDK1.4 " +"logging (if running under JDK1.4 or above). You may download Log4j from " +"http://jakarta.apache.org. To use Log4j you will need to " +"place a log4j.properties file in your classpath, an " +"example properties file is distributed with Hibernate in the src/ directory." +msgstr "" +"commons-loggingサービスは(クラスパスに log4j.jar を含めれ" +"ば)Apache Log4jに、 また(JDK1.4かそれ以上で実行させれば)JDK1.4 loggingに直" +"接出力します。 Log4jは http://jakarta.apache.org からダウ" +"ンロードできます。 Log4jを使うためには、クラスパスに log4j." +"properties ファイルを配置する必要があります。 例のプロパティファイ" +"ルはHibernateと一緒に配布され、それは src/ ディレクトリに" +"あります。" -#: index.docbook:1204 -msgid "We strongly recommend that you familiarize yourself with Hibernate's log messages. A lot of work has been put into making the Hibernate log as detailed as possible, without making it unreadable. It is an essential troubleshooting device. The most interesting log categories are the following:" -msgstr "Hibernateのログメッセージに慣れることを強くおすすめします。 Hibernateのログは読みやすく、できる限り詳細になるように努力されています。 これは必須のトラブルシューティングデバイスです。 以下に重要なログのカテゴリを示します。" +#. Tag: para +#: configuration.xml:1204 +#, no-c-format +msgid "" +"We strongly recommend that you familiarize yourself with Hibernate's log " +"messages. A lot of work has been put into making the Hibernate log as " +"detailed as possible, without making it unreadable. It is an essential " +"troubleshooting device. The most interesting log categories are the " +"following:" +msgstr "" +"Hibernateのログメッセージに慣れることを強くおすすめします。 Hibernateのログは" +"読みやすく、できる限り詳細になるように努力されています。 これは必須のトラブル" +"シューティングデバイスです。 以下に重要なログのカテゴリを示します。" -#: index.docbook:1213 +#. Tag: title +#: configuration.xml:1213 +#, no-c-format msgid "Hibernate Log Categories" msgstr "Hibernate ログカテゴリ" -#: index.docbook:1219 +#. Tag: entry +#: configuration.xml:1219 +#, no-c-format msgid "Category" msgstr "カテゴリ" -#: index.docbook:1220 +#. Tag: entry +#: configuration.xml:1220 +#, no-c-format msgid "Function" -msgstr "機能" +msgstr "機能" -#: index.docbook:1225 +#. Tag: literal +#: configuration.xml:1225 +#, no-c-format msgid "org.hibernate.SQL" msgstr "org.hibernate.SQL" -#: index.docbook:1226 +#. Tag: entry +#: configuration.xml:1226 +#, no-c-format msgid "Log all SQL DML statements as they are executed" msgstr "実行したすべてのSQL(DDL)ステートメントをロギングします。" -#: index.docbook:1229 +#. Tag: literal +#: configuration.xml:1229 +#, no-c-format msgid "org.hibernate.type" msgstr "org.hibernate.type" -#: index.docbook:1230 +#. Tag: entry +#: configuration.xml:1230 +#, no-c-format msgid "Log all JDBC parameters" msgstr "すべてのJDBCパラメータをロギングします。" -#: index.docbook:1233 +#. Tag: literal +#: configuration.xml:1233 +#, no-c-format msgid "org.hibernate.tool.hbm2ddl" msgstr "org.hibernate.tool.hbm2ddl" -#: index.docbook:1234 +#. Tag: entry +#: configuration.xml:1234 +#, no-c-format msgid "Log all SQL DDL statements as they are executed" msgstr "実行したすべてのSQL(DDL)ステートメントをロギングします。" -#: index.docbook:1237 +#. Tag: literal +#: configuration.xml:1237 +#, no-c-format msgid "org.hibernate.pretty" msgstr "org.hibernate.pretty" -#: index.docbook:1238 -msgid "Log the state of all entities (max 20 entities) associated with the session at flush time" -msgstr "sessionに関連するすべてのエンティティ(最大20)のフラッシュ時間をロギングします。" +#. Tag: entry +#: configuration.xml:1238 +#, no-c-format +msgid "" +"Log the state of all entities (max 20 entities) associated with the session " +"at flush time" +msgstr "" +"sessionに関連するすべてのエンティティ(最大20)のフラッシュ時間をロギングし" +"ます。" -#: index.docbook:1244 +#. Tag: literal +#: configuration.xml:1244 +#, no-c-format msgid "org.hibernate.cache" msgstr "org.hibernate.cache" -#: index.docbook:1245 +#. Tag: entry +#: configuration.xml:1245 +#, no-c-format msgid "Log all second-level cache activity" msgstr "すべての2次キャッシュの動作をロギングします。" -#: index.docbook:1248 +#. Tag: literal +#: configuration.xml:1248 +#, no-c-format msgid "org.hibernate.transaction" msgstr "org.hibernate.transaction" -#: index.docbook:1249 +#. Tag: entry +#: configuration.xml:1249 +#, no-c-format msgid "Log transaction related activity" msgstr "トランザクションに関連する動作をロギングします。" -#: index.docbook:1252 +#. Tag: literal +#: configuration.xml:1252 +#, no-c-format msgid "org.hibernate.jdbc" msgstr "org.hibernate.jdbc" -#: index.docbook:1253 +#. Tag: entry +#: configuration.xml:1253 +#, no-c-format msgid "Log all JDBC resource acquisition" msgstr "JDBCリソース取得をロギングします。" -#: index.docbook:1256 +#. Tag: literal +#: configuration.xml:1256 +#, no-c-format msgid "org.hibernate.hql.ast.AST" msgstr "org.hibernate.hql.ast.AST" -#: index.docbook:1257 +#. Tag: entry +#: configuration.xml:1257 +#, no-c-format msgid "Log HQL and SQL ASTs during query parsing" msgstr "HQLとSQLのASTのクエリーパースをロギングします。" -#: index.docbook:1262 +#. Tag: literal +#: configuration.xml:1262 +#, no-c-format msgid "org.hibernate.secure" msgstr "org.hibernate.secure" -#: index.docbook:1263 +#. Tag: entry +#: configuration.xml:1263 +#, no-c-format msgid "Log all JAAS authorization requests" msgstr "すべてのJAAS分析をロギングします。" -#: index.docbook:1266 +#. Tag: literal +#: configuration.xml:1266 +#, no-c-format msgid "org.hibernate" msgstr "org.hibernate" -#: index.docbook:1267 -msgid "Log everything (a lot of information, but very useful for troubleshooting)" -msgstr "すべてをロギングします。(情報が大量になりますが、トラブルシューティングには便利です)" +#. Tag: entry +#: configuration.xml:1267 +#, no-c-format +msgid "" +"Log everything (a lot of information, but very useful for troubleshooting)" +msgstr "" +"すべてをロギングします。(情報が大量になりますが、トラブルシューティングには" +"便利です)" -#: index.docbook:1276 -msgid "When developing applications with Hibernate, you should almost always work with debug enabled for the category org.hibernate.SQL, or, alternatively, the property hibernate.show_sql enabled." -msgstr "Hibernateでアプリケーションを作成するときは、org.hibernate.SQL カテゴリの debug を常に有効にしておいたほうが良いでしょう。 代替方法として、hibernate.show_sql を有効にする方法があります。" +#. Tag: para +#: configuration.xml:1276 +#, no-c-format +msgid "" +"When developing applications with Hibernate, you should almost always work " +"with debug enabled for the category org." +"hibernate.SQL, or, alternatively, the property hibernate." +"show_sql enabled." +msgstr "" +"Hibernateでアプリケーションを作成するときは、org.hibernate.SQL カテゴリの debug を常に有効にしておいたほうが良い" +"でしょう。 代替方法として、hibernate.show_sql を有効にする" +"方法があります。" -#: index.docbook:1286 +#. Tag: title +#: configuration.xml:1286 +#, no-c-format msgid "Implementing a NamingStrategy" msgstr "NamingStrategy の実装" -#: index.docbook:1288 -msgid "The interface org.hibernate.cfg.NamingStrategy allows you to specify a \"naming standard\" for database objects and schema elements." -msgstr "インターフェイス net.sf.hibernate.cfg.NamingStrategy を使うと データベースオブジェクトとスキーマ要素のための「命名標準」を指定できます。" - -#: index.docbook:1293 -msgid "You may provide rules for automatically generating database identifiers from Java identifiers or for processing \"logical\" column and table names given in the mapping file into \"physical\" table and column names. This feature helps reduce the verbosity of the mapping document, eliminating repetitive noise (TBL_ prefixes, for example). The default strategy used by Hibernate is quite minimal." -msgstr "Javaの識別子からデータベースの識別子を自動生成するためのルールや、 マッピングファイルで与えた「論理的な」カラムとテーブル名から 「物理的な」テーブルとカラム名を生成するためのルールを用意することができます。 この機能は繰り返しの雑音(例えば TBL_ プリフィックス)を取り除き、 マッピングドキュメントの冗長さを減らすことに役立ちます。 Hibernateが使うデフォルトの戦略はかなり最小限に近いものです。" - -#: index.docbook:1302 -msgid "You may specify a different strategy by calling Configuration.setNamingStrategy() before adding mappings:" -msgstr "マッピングを追加する前に Configuration.setNamingStrategy() を呼ぶことで 以下のように異なる戦略を指定することができます:" - -#: index.docbook:1307 +#. Tag: para +#: configuration.xml:1288 +#, no-c-format msgid "" - "" +"The interface org.hibernate.cfg.NamingStrategy allows you " +"to specify a \"naming standard\" for database objects and schema elements." msgstr "" - "" +"インターフェイス net.sf.hibernate.cfg.NamingStrategy を使" +"うと データベースオブジェクトとスキーマ要素のための「命名標準」を指定できま" +"す。" -#: index.docbook:1309 -msgid "org.hibernate.cfg.ImprovedNamingStrategy is a built-in strategy that might be a useful starting point for some applications." -msgstr "org.hibernate.cfg.ImprovedNamingStrategy は組み込みの戦略です。 これはいくつかのアプリケーションにとって有用な開始点となるかもしれません。" +#. Tag: para +#: configuration.xml:1293 +#, no-c-format +msgid "" +"You may provide rules for automatically generating database identifiers from " +"Java identifiers or for processing \"logical\" column and table names given " +"in the mapping file into \"physical\" table and column names. This feature " +"helps reduce the verbosity of the mapping document, eliminating repetitive " +"noise (TBL_ prefixes, for example). The default strategy " +"used by Hibernate is quite minimal." +msgstr "" +"Javaの識別子からデータベースの識別子を自動生成するためのルールや、 マッピング" +"ファイルで与えた「論理的な」カラムとテーブル名から 「物理的な」テーブルとカラ" +"ム名を生成するためのルールを用意することができます。 この機能は繰り返しの雑音" +"(例えば TBL_ プリフィックス)を取り除き、 マッピングド" +"キュメントの冗長さを減らすことに役立ちます。 Hibernateが使うデフォルトの戦略" +"はかなり最小限に近いものです。" -#: index.docbook:1317 +#. Tag: para +#: configuration.xml:1302 +#, no-c-format +msgid "" +"You may specify a different strategy by calling Configuration." +"setNamingStrategy() before adding mappings:" +msgstr "" +"マッピングを追加する前に Configuration.setNamingStrategy() を呼ぶことで 以下のように異なる戦略を指定することができます:" + +#. Tag: programlisting +#: configuration.xml:1307 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: configuration.xml:1309 +#, no-c-format +msgid "" +"org.hibernate.cfg.ImprovedNamingStrategy is a built-in " +"strategy that might be a useful starting point for some applications." +msgstr "" +"org.hibernate.cfg.ImprovedNamingStrategy は組み込みの戦略" +"です。 これはいくつかのアプリケーションにとって有用な開始点となるかもしれませ" +"ん。" + +#. Tag: title +#: configuration.xml:1317 +#, no-c-format msgid "XML configuration file" msgstr "XML設定ファイル" -#: index.docbook:1319 -msgid "An alternative approach to configuration is to specify a full configuration in a file named hibernate.cfg.xml. This file can be used as a replacement for the hibernate.properties file or, if both are present, to override properties." -msgstr "もう1つの方法は hibernate.cfg.xml という名前のファイルで 十分な設定を指定する方法です。 このファイルは hibernate.properties ファイルの代わりとなります。 もし両方のファイルがあれば、プロパティが置き換えられます。" - -#: index.docbook:1326 -msgid "The XML configuration file is by default expected to be in the root o your CLASSPATH. Here is an example:" -msgstr "XML設定ファイルは初期設定で CLASSPATH に配置してください。 これが例です:" - -#: index.docbook:1331 +#. Tag: para +#: configuration.xml:1319 +#, no-c-format msgid "" - "\n" - "\n" - "\n" - "\n" - "\n" - " \n" - " \n" - "\n" - " \n" - " java:/comp/env/jdbc/MyDB\n" - " org.hibernate.dialect.MySQLDialect\n" - " false\n" - " \n" - " org.hibernate.transaction.JTATransactionFactory\n" - " \n" - " java:comp/UserTransaction\n" - "\n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - "\n" - "]]>" +"An alternative approach to configuration is to specify a full configuration " +"in a file named hibernate.cfg.xml. This file can be used " +"as a replacement for the hibernate.properties file or, if " +"both are present, to override properties." msgstr "" - "\n" - "\n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "\n" - " \n" - " java:/comp/env/jdbc/MyDB\n" - " org.hibernate.dialect.MySQLDialect\n" - " false\n" - " \n" - " org.hibernate.transaction.JTATransactionFactory\n" - " \n" - " java:comp/UserTransaction\n" - "\n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - "\n" - "]]>" +"もう1つの方法は hibernate.cfg.xml という名前のファイルで " +"十分な設定を指定する方法です。 このファイルは hibernate.properties ファイルの代わりとなります。 もし両方のファイルがあれば、プロパティ" +"が置き換えられます。" -#: index.docbook:1333 -msgid "As you can see, the advantage of this approach is the externalization of the mapping file names to configuration. The hibernate.cfg.xml is also more convenient once you have to tune the Hibernate cache. Note that is your choice to use either hibernate.properties or hibernate.cfg.xml, both are equivalent, except for the above mentioned benefits of using the XML syntax." -msgstr "見てのとおり、この方法の優位性は設定のためのマッピングファイル名を外出しにできることです。 Hibernateキャッシュをチューニングしなければならないのであれば、 hibernate.cfg.xml はより便利です。 hibernate.propertieshibernate.cfg.xml の どちらかを使えることを覚えておいてください。 二つは同じもので、違うところといえばXML構文を使うことの利点だけです。" +#. Tag: para +#: configuration.xml:1326 +#, no-c-format +msgid "" +"The XML configuration file is by default expected to be in the root o your " +"CLASSPATH. Here is an example:" +msgstr "" +"XML設定ファイルは初期設定で CLASSPATH に配置してくださ" +"い。 これが例です:" -#: index.docbook:1342 +#. Tag: programlisting +#: configuration.xml:1331 +#, no-c-format +msgid "" +"\n" +"\n" +"\n" +"\n" +"\n" +" \n" +" \n" +"\n" +" \n" +" java:/comp/env/jdbc/MyDB\n" +" org.hibernate.dialect.MySQLDialect\n" +" false\n" +" \n" +" org.hibernate.transaction.JTATransactionFactory\n" +" \n" +" java:comp/UserTransaction\n" +"\n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: configuration.xml:1333 +#, no-c-format +msgid "" +"As you can see, the advantage of this approach is the externalization of the " +"mapping file names to configuration. The hibernate.cfg.xml is also more convenient once you have to tune the Hibernate cache. " +"Note that is your choice to use either hibernate.properties or hibernate.cfg.xml, both are equivalent, " +"except for the above mentioned benefits of using the XML syntax." +msgstr "" +"見てのとおり、この方法の優位性は設定のためのマッピングファイル名を外出しにで" +"きることです。 Hibernateキャッシュをチューニングしなければならないのであれ" +"ば、 hibernate.cfg.xml はより便利です。 " +"hibernate.propertieshibernate.cfg.xml の どちらかを使えることを覚えておいてください。 二つは同じもので、違" +"うところといえばXML構文を使うことの利点だけです。" + +#. Tag: para +#: configuration.xml:1342 +#, no-c-format msgid "With the XML configuration, starting Hibernate is then as simple as" msgstr "XML設定を使うことで、Hibernateは以下のようにシンプルになります。" -#: index.docbook:1346 -msgid "" -msgstr "" +#. Tag: programlisting +#: configuration.xml:1346 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:1348 +#. Tag: para +#: configuration.xml:1348 +#, no-c-format msgid "You can pick a different XML configuration file using" msgstr "違うXML設定ファイルを使うこともできます。" -#: index.docbook:1352 +#. Tag: programlisting +#: configuration.xml:1352 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:1357 +#. Tag: title +#: configuration.xml:1357 +#, no-c-format msgid "J2EE Application Server integration" msgstr "J2EEアプリケーションサーバとの統合" -#: index.docbook:1359 +#. Tag: para +#: configuration.xml:1359 +#, no-c-format msgid "Hibernate has the following integration points for J2EE infrastructure:" msgstr "HibernateはJ2EE構造と統合するポイントをサポートしています。" -#: index.docbook:1365 -msgid "Container-managed datasources: Hibernate can use JDBC connections managed by the container and provided through JNDI. Usually, a JTA compatible TransactionManager and a ResourceManager take care of transaction management (CMT), esp. distributed transaction handling across several datasources. You may of course also demarcate transaction boundaries programmatically (BMT) or you might want to use the optional Hibernate Transaction API for this to keep your code portable." -msgstr "コンテナ管理データソース:Hibernateは JNDIが提供し、コンテナが管理するJDBCコネクションを使用できます。 通常、JTA準拠の TransactionManagerResourceManager がトランザクション管理(CMT)、 特に様々なデータソースにまたがる分散トランザクションを扱います。 当然プログラムでトランザクション境界を指定できます(BMT)。 あるいは、記述したコードのポータビリティを保つために、 オプションのHibernateの Transaction APIを使いたくなるかもしれません。" +#. Tag: para +#: configuration.xml:1365 +#, no-c-format +msgid "" +"Container-managed datasources: Hibernate can use JDBC " +"connections managed by the container and provided through JNDI. Usually, a " +"JTA compatible TransactionManager and a " +"ResourceManager take care of transaction management " +"(CMT), esp. distributed transaction handling across several datasources. You " +"may of course also demarcate transaction boundaries programmatically (BMT) " +"or you might want to use the optional Hibernate Transaction API for this to keep your code portable." +msgstr "" +"コンテナ管理データソース:Hibernateは JNDIが提供し、コン" +"テナが管理するJDBCコネクションを使用できます。 通常、JTA準拠の " +"TransactionManagerResourceManager " +"がトランザクション管理(CMT)、 特に様々なデータソースにまたがる分散トランザク" +"ションを扱います。 当然プログラムでトランザクション境界を指定できます(BMT)。 " +"あるいは、記述したコードのポータビリティを保つために、 オプションのHibernate" +"の Transaction APIを使いたくなるかもしれません。" -#: index.docbook:1380 -msgid "Automatic JNDI binding: Hibernate can bind its SessionFactory to JNDI after startup." -msgstr "自動JNDIバインディング:HibernateはJNDIが立ち上がった後に SessionFactory を生成します。" +#. Tag: para +#: configuration.xml:1380 +#, no-c-format +msgid "" +"Automatic JNDI binding: Hibernate can bind its " +"SessionFactory to JNDI after startup." +msgstr "" +"自動JNDIバインディング:HibernateはJNDIが立ち上がった後" +"に SessionFactory を生成します。" -#: index.docbook:1389 -msgid "JTA Session binding: The Hibernate Session may be automatically bound to the scope of JTA transactions. Simply lookup the SessionFactory from JNDI and get the current Session. Let Hibernate take care of flushing and closing the Session when your JTA transaction completes. Transaction demarcation is either declarative (CMT) or programmatic (BMT/UserTransaction)." -msgstr "JTAセッションバインディング : Hibernate Session のトランザクション境界はJTAトランザクションと同じになります。 単純に SessionFactory をJNDIからlookupして、 現在の Session を取得します。 JTAトランザクションが完了したときに、Hibernateが Session をフラッシュし、クローズします。 EJBデプロイメントディスクリプタの中に、トランザクション境界を宣言します。" +#. Tag: para +#: configuration.xml:1389 +#, no-c-format +msgid "" +"JTA Session binding: The Hibernate Session may be automatically bound to the scope of JTA transactions. Simply " +"lookup the SessionFactory from JNDI and get the current " +"Session. Let Hibernate take care of flushing and closing " +"the Session when your JTA transaction completes. " +"Transaction demarcation is either declarative (CMT) or programmatic (BMT/" +"UserTransaction)." +msgstr "" +"JTAセッションバインディング : Hibernate " +"Session のトランザクション境界はJTAトランザクションと同じ" +"になります。 単純に SessionFactory をJNDIからlookupして、 " +"現在の Session を取得します。 JTAトランザクションが完了し" +"たときに、Hibernateが Session をフラッシュし、クローズしま" +"す。 EJBデプロイメントディスクリプタの中に、トランザクション境界を宣言しま" +"す。" -#: index.docbook:1402 -msgid "JMX deployment: If you have a JMX capable application server (e.g. JBoss AS), you can chose to deploy Hibernate as a managed MBean. This saves you the one line startup code to build your SessionFactory from a Configuration. The container will startup your HibernateService, and ideally also take care of service dependencies (Datasource has to be available before Hibernate starts, etc)." -msgstr "JMXデプロイ: もしJMXが使用可能なアプリケーションサーバ(例えばJBOSS) がある場合、HibernateをMBeanとしてデプロイすることを選べます。 これは Configuration から SessionFactory を 生成するコードを無くすことができます。 コンテナは HibernateService を起動し、 サービスの依存を理想的に管理します(データソースはHibernateやその他が起動する前に 使用できるようにしなければなりません)。" +#. Tag: para +#: configuration.xml:1402 +#, no-c-format +msgid "" +"JMX deployment: If you have a JMX capable application " +"server (e.g. JBoss AS), you can chose to deploy Hibernate as a managed " +"MBean. This saves you the one line startup code to build your " +"SessionFactory from a Configuration. " +"The container will startup your HibernateService, and " +"ideally also take care of service dependencies (Datasource has to be " +"available before Hibernate starts, etc)." +msgstr "" +"JMXデプロイ: もしJMXが使用可能なアプリケーションサーバ" +"(例えばJBOSS) がある場合、HibernateをMBeanとしてデプロイすることを選べま" +"す。 これは Configuration から SessionFactory を 生成するコードを無くすことができます。 コンテナは " +"HibernateService を起動し、 サービスの依存を理想的に管理し" +"ます(データソースはHibernateやその他が起動する前に 使用できるようにしなけれ" +"ばなりません)。" -#: index.docbook:1413 -msgid "Depending on your environment, you might have to set the configuration option hibernate.connection.aggressive_release to true if your application server shows \"connection containment\" exceptions." -msgstr "環境に依存しますが、もし、アプリケーションサーバが\"connection containment\"の例外をスローするなら 設定のオプション hibernate.connection.aggressive_release をtrueにしてください。" +#. Tag: para +#: configuration.xml:1413 +#, no-c-format +msgid "" +"Depending on your environment, you might have to set the configuration " +"option hibernate.connection.aggressive_release to true if " +"your application server shows \"connection containment\" exceptions." +msgstr "" +"環境に依存しますが、もし、アプリケーションサーバが\"connection containment" +"\"の例外をスローするなら 設定のオプション hibernate.connection." +"aggressive_release をtrueにしてください。" -#: index.docbook:1420 +#. Tag: title +#: configuration.xml:1420 +#, no-c-format msgid "Transaction strategy configuration" msgstr "トランザクション戦略設定" -#: index.docbook:1422 -msgid "The Hibernate Session API is independent of any transaction demarcation system in your architecture. If you let Hibernate use JDBC directly, through a connection pool, you may begin and end your transactions by calling the JDBC API. If you run in a J2EE application server, you might want to use bean-managed transactions and call the JTA API and UserTransaction when needed." -msgstr "Hibernate Session APIは、アーキテクチャ内のシステムの管轄である あらゆるトランザクションに依存しません。 もしコネクションプールのJDBCを直接使いたい場合、JDBC APIから トランザクションを呼ぶことができます。 もし、J2EEアプリケーションサーバで動作させるなら、Bean管理トランザクションを使い、 必要に応じて UserTransaction をJTA APIから呼ぶことになるでしょう。" +#. Tag: para +#: configuration.xml:1422 +#, no-c-format +msgid "" +"The Hibernate Session API is independent of any " +"transaction demarcation system in your architecture. If you let Hibernate " +"use JDBC directly, through a connection pool, you may begin and end your " +"transactions by calling the JDBC API. If you run in a J2EE application " +"server, you might want to use bean-managed transactions and call the JTA API " +"and UserTransaction when needed." +msgstr "" +"Hibernate Session APIは、アーキテクチャ内のシステムの管轄" +"である あらゆるトランザクションに依存しません。 もしコネクションプールのJDBC" +"を直接使いたい場合、JDBC APIから トランザクションを呼ぶことができます。 も" +"し、J2EEアプリケーションサーバで動作させるなら、Bean管理トランザクションを使" +"い、 必要に応じて UserTransaction をJTA APIから呼ぶことに" +"なるでしょう。" -#: index.docbook:1430 -msgid "To keep your code portable between these two (and other) environments we recommend the optional Hibernate Transaction API, which wraps and hides the underlying system. You have to specify a factory class for Transaction instances by setting the Hibernate configuration property hibernate.transaction.factory_class." -msgstr "2つ(それ以上)の環境で互換性のあるコードを維持するために、オプションとして根本的なシステムを ラッピングするHibernate Transaction APIを推奨します。 Hibernate設定プロパティの hibernate.transaction.factory_class を設定することで ある特定の Transaction クラスのインスタンスを持つことができます。" +#. Tag: para +#: configuration.xml:1430 +#, no-c-format +msgid "" +"To keep your code portable between these two (and other) environments we " +"recommend the optional Hibernate Transaction API, which " +"wraps and hides the underlying system. You have to specify a factory class " +"for Transaction instances by setting the Hibernate " +"configuration property hibernate.transaction.factory_class." +msgstr "" +"2つ(それ以上)の環境で互換性のあるコードを維持するために、オプションとして根" +"本的なシステムを ラッピングするHibernate Transaction APIを" +"推奨します。 Hibernate設定プロパティの hibernate.transaction." +"factory_class を設定することで ある特定の Transaction クラスのインスタンスを持つことができます。" -#: index.docbook:1437 +#. Tag: para +#: configuration.xml:1437 +#, no-c-format msgid "There are three standard (built-in) choices:" msgstr "3つの基本的な(既にある)選択を挙げます:" -#: index.docbook:1443 +#. Tag: literal +#: configuration.xml:1443 +#, no-c-format msgid "org.hibernate.transaction.JDBCTransactionFactory" msgstr "org.hibernate.transaction.JDBCTransactionFactory" -#: index.docbook:1445 +#. Tag: para +#: configuration.xml:1445 +#, no-c-format msgid "delegates to database (JDBC) transactions (default)" msgstr "データベース(JDBC)トランザクションに委譲します(デフォルト)" -#: index.docbook:1449 +#. Tag: literal +#: configuration.xml:1449 +#, no-c-format msgid "org.hibernate.transaction.JTATransactionFactory" msgstr "org.hibernate.transaction.JTATransactionFactory" -#: index.docbook:1451 -msgid "delegates to container-managed transaction if an existing transaction is underway in this context (e.g. EJB session bean method), otherwise a new transaction is started and bean-managed transaction are used." -msgstr "もし、このコンテキスト(例えば、EJBセッションBeanメソッド)で進行中のトランザクションが存在する、もしくは 新しいトランザクションが開始されており、Bean管理トランザクションが使われている場合、 コンテナ管理トランザクションに委譲します。" +#. Tag: para +#: configuration.xml:1451 +#, no-c-format +msgid "" +"delegates to container-managed transaction if an existing transaction is " +"underway in this context (e.g. EJB session bean method), otherwise a new " +"transaction is started and bean-managed transaction are used." +msgstr "" +"もし、このコンテキスト(例えば、EJBセッションBeanメソッド)で進行中のトランザ" +"クションが存在する、もしくは 新しいトランザクションが開始されており、Bean管理" +"トランザクションが使われている場合、 コンテナ管理トランザクションに委譲しま" +"す。" -#: index.docbook:1459 +#. Tag: literal +#: configuration.xml:1459 +#, no-c-format msgid "org.hibernate.transaction.CMTTransactionFactory" msgstr "org.hibernate.transaction.CMTTransactionFactory" -#: index.docbook:1461 +#. Tag: para +#: configuration.xml:1461 +#, no-c-format msgid "delegates to container-managed JTA transactions" msgstr "コンテナ管理JTAトランザクションに委譲します" -#: index.docbook:1466 -msgid "You may also define your own transaction strategies (for a CORBA transaction service, for example)." -msgstr "自分自身のトランザクション戦略(例えば、CORBAトランザクションサービス)を定義することもできます。" +#. Tag: para +#: configuration.xml:1466 +#, no-c-format +msgid "" +"You may also define your own transaction strategies (for a CORBA transaction " +"service, for example)." +msgstr "" +"自分自身のトランザクション戦略(例えば、CORBAトランザクションサービス)を定義" +"することもできます。" -#: index.docbook:1471 -msgid "Some features in Hibernate (i.e. the second level cache, Contextual Sessions with JTA, etc.) require access to the JTA TransactionManager in a managed environment. In an application server you have to specify how Hibernate should obtain a reference to the TransactionManager, since J2EE does not standardize a single mechanism:" -msgstr "Hibernateのいくつかの機能(例えば、二次キャッシュ、JTAによるコンテキストセッション 等)は 管理された環境の中のJTA TransactionManager へのアクセスを要求します。 J2EEがひとつのメカニズムに規格化されていないので、 アプリケーションサーバにおいて、Hibernateが TransactionManager のリファレンス を取得する方法を明確にする必要があります。" +#. Tag: para +#: configuration.xml:1471 +#, no-c-format +msgid "" +"Some features in Hibernate (i.e. the second level cache, Contextual Sessions " +"with JTA, etc.) require access to the JTA TransactionManager in a managed environment. In an application server you have to " +"specify how Hibernate should obtain a reference to the " +"TransactionManager, since J2EE does not standardize a " +"single mechanism:" +msgstr "" +"Hibernateのいくつかの機能(例えば、二次キャッシュ、JTAによるコンテキストセッ" +"ション 等)は 管理された環境の中のJTA TransactionManager " +"へのアクセスを要求します。 J2EEがひとつのメカニズムに規格化されていないの" +"で、 アプリケーションサーバにおいて、Hibernateが " +"TransactionManager のリファレンス を取得する方法を明確にす" +"る必要があります。" -#: index.docbook:1479 +#. Tag: title +#: configuration.xml:1479 +#, no-c-format msgid "JTA TransactionManagers" msgstr "JTA トランザクションマネージャ" -#: index.docbook:1485 +#. Tag: entry +#: configuration.xml:1485 +#, no-c-format msgid "Transaction Factory" msgstr "Transaction Factory" -#: index.docbook:1486 +#. Tag: entry +#: configuration.xml:1486 +#, no-c-format msgid "Application Server" msgstr "Application Server" -#: index.docbook:1491 +#. Tag: literal +#: configuration.xml:1491 +#, no-c-format msgid "org.hibernate.transaction.JBossTransactionManagerLookup" msgstr "org.hibernate.transaction.JBossTransactionManagerLookup" -#: index.docbook:1492 +#. Tag: entry +#: configuration.xml:1492 +#, no-c-format msgid "JBoss" msgstr "JBoss" -#: index.docbook:1495 +#. Tag: literal +#: configuration.xml:1495 +#, no-c-format msgid "org.hibernate.transaction.WeblogicTransactionManagerLookup" msgstr "org.hibernate.transaction.WeblogicTransactionManagerLookup" -#: index.docbook:1496 +#. Tag: entry +#: configuration.xml:1496 +#, no-c-format msgid "Weblogic" msgstr "Weblogic" -#: index.docbook:1499 +#. Tag: literal +#: configuration.xml:1499 +#, no-c-format msgid "org.hibernate.transaction.WebSphereTransactionManagerLookup" msgstr "org.hibernate.transaction.WebSphereTransactionManagerLookup" -#: index.docbook:1500 +#. Tag: entry +#: configuration.xml:1500 +#, no-c-format msgid "WebSphere" msgstr "WebSphere" -#: index.docbook:1503 +#. Tag: literal +#: configuration.xml:1503 +#, no-c-format msgid "org.hibernate.transaction.WebSphereExtendedJTATransactionLookup" msgstr "org.hibernate.transaction.WebSphereExtendedJTATransactionLookup" -#: index.docbook:1504 +#. Tag: entry +#: configuration.xml:1504 +#, no-c-format msgid "WebSphere 6" msgstr "WebSphere 6" -#: index.docbook:1507 +#. Tag: literal +#: configuration.xml:1507 +#, no-c-format msgid "org.hibernate.transaction.OrionTransactionManagerLookup" msgstr "org.hibernate.transaction.OrionTransactionManagerLookup" -#: index.docbook:1508 +#. Tag: entry +#: configuration.xml:1508 +#, no-c-format msgid "Orion" msgstr "Orion" -#: index.docbook:1511 +#. Tag: literal +#: configuration.xml:1511 +#, no-c-format msgid "org.hibernate.transaction.ResinTransactionManagerLookup" msgstr "org.hibernate.transaction.ResinTransactionManagerLookup" -#: index.docbook:1512 +#. Tag: entry +#: configuration.xml:1512 +#, no-c-format msgid "Resin" msgstr "Resin" -#: index.docbook:1515 +#. Tag: literal +#: configuration.xml:1515 +#, no-c-format msgid "org.hibernate.transaction.JOTMTransactionManagerLookup" msgstr "org.hibernate.transaction.JOTMTransactionManagerLookup" -#: index.docbook:1516 +#. Tag: entry +#: configuration.xml:1516 +#, no-c-format msgid "JOTM" msgstr "JOTM" -#: index.docbook:1519 +#. Tag: literal +#: configuration.xml:1519 +#, no-c-format msgid "org.hibernate.transaction.JOnASTransactionManagerLookup" msgstr "org.hibernate.transaction.JOnASTransactionManagerLookup" -#: index.docbook:1520 +#. Tag: entry +#: configuration.xml:1520 +#, no-c-format msgid "JOnAS" msgstr "JOnAS" -#: index.docbook:1523 +#. Tag: literal +#: configuration.xml:1523 +#, no-c-format msgid "org.hibernate.transaction.JRun4TransactionManagerLookup" msgstr "org.hibernate.transaction.JRun4TransactionManagerLookup" -#: index.docbook:1524 +#. Tag: entry +#: configuration.xml:1524 +#, no-c-format msgid "JRun4" msgstr "JRun4" -#: index.docbook:1527 +#. Tag: literal +#: configuration.xml:1527 +#, no-c-format msgid "org.hibernate.transaction.BESTransactionManagerLookup" msgstr "org.hibernate.transaction.BESTransactionManagerLookup" -#: index.docbook:1528 +#. Tag: entry +#: configuration.xml:1528 +#, no-c-format msgid "Borland ES" msgstr "Borland ES" -#: index.docbook:1537 +#. Tag: title +#: configuration.xml:1537 +#, no-c-format msgid "JNDI-bound SessionFactory" msgstr "SessionFactory のJNDIへの登録" -#: index.docbook:1539 -msgid "A JNDI bound Hibernate SessionFactory can simplify the lookup of the factory and the creation of new Sessions. Note that this is not related to a JNDI bound Datasource, both simply use the same registry!" -msgstr "JNDIに登録したHibernate SessionFactory は単純に ファクトリをルックアップし、新しい Session を作ります。 これはJNDIに登録された Datasource には関連せず、 お互いにシンプルにこれらの登録を使うことに注意してください。" +#. Tag: para +#: configuration.xml:1539 +#, no-c-format +msgid "" +"A JNDI bound Hibernate SessionFactory can simplify the " +"lookup of the factory and the creation of new Sessions. " +"Note that this is not related to a JNDI bound Datasource, " +"both simply use the same registry!" +msgstr "" +"JNDIに登録したHibernate SessionFactory は単純に ファクトリ" +"をルックアップし、新しい Session を作ります。 これはJNDIに" +"登録された Datasource には関連せず、 お互いにシンプルにこ" +"れらの登録を使うことに注意してください。" -#: index.docbook:1546 -msgid "If you wish to have the SessionFactory bound to a JNDI namespace, specify a name (eg. java:hibernate/SessionFactory) using the property hibernate.session_factory_name. If this property is omitted, the SessionFactory will not be bound to JNDI. (This is especially useful in environments with a read-only JNDI default implementation, e.g. Tomcat.)" -msgstr "もし SessionFactory をJNDIネームスペースに登録したい場合、 特別な名前(例えば、 java:hibernate/SessionFactory )を hibernate.session_factory_name プロパティに使ってください もしこのプロパティを省略した場合、 SessionFactory は JNDIに登録されません。(これはTomcatのようなデフォルト実装でJNDIが読みより専用の環境の場合特に便利です。)" +#. Tag: para +#: configuration.xml:1546 +#, no-c-format +msgid "" +"If you wish to have the SessionFactory bound to a JNDI " +"namespace, specify a name (eg. java:hibernate/SessionFactory) using the property hibernate.session_factory_name. If this property is omitted, the SessionFactory " +"will not be bound to JNDI. (This is especially useful in environments with a " +"read-only JNDI default implementation, e.g. Tomcat.)" +msgstr "" +"もし SessionFactory をJNDIネームスペースに登録したい場" +"合、 特別な名前(例えば、 java:hibernate/SessionFactory )" +"を hibernate.session_factory_name プロパティに使ってくださ" +"い もしこのプロパティを省略した場合、 SessionFactory は " +"JNDIに登録されません。(これはTomcatのようなデフォルト実装でJNDIが読みより専" +"用の環境の場合特に便利です。)" -#: index.docbook:1554 -msgid "When binding the SessionFactory to JNDI, Hibernate will use the values of hibernate.jndi.url, hibernate.jndi.class to instantiate an initial context. If they are not specified, the default InitialContext will be used." -msgstr "SessionFactory をJNDIに登録するとき、Hibernateは hibernate.jndi.url の値を使用し、hibernate.jndi.class をイニシャルコンテキストとして具体化します。 もし何も設定しない場合は、デフォルトの InitialContext を使用します。" +#. Tag: para +#: configuration.xml:1554 +#, no-c-format +msgid "" +"When binding the SessionFactory to JNDI, Hibernate will " +"use the values of hibernate.jndi.url, hibernate." +"jndi.class to instantiate an initial context. If they are not " +"specified, the default InitialContext will be used." +msgstr "" +"SessionFactory をJNDIに登録するとき、Hibernateは " +"hibernate.jndi.url の値を使用し、hibernate.jndi." +"class をイニシャルコンテキストとして具体化します。 もし何も設定しな" +"い場合は、デフォルトの InitialContext を使用します。" -#: index.docbook:1561 -msgid "Hibernate will automatically place the SessionFactory in JNDI after you call cfg.buildSessionFactory(). This means you will at least have this call in some startup code (or utility class) in your application, unless you use JMX deployment with the HibernateService (discussed later)." -msgstr "cfg.buildSessionFactory() をコール後 Hibernateは自動的に SessionFactory をJNDIに配置します。 HibernateService と一緒にJMXデプロイメントを使わない限り、 これはこの呼び出しをアプリケーション内の何らかのスタートアップコード(もしくはユーティリティクラス) に配置しなければならないことを意味します。(後で議論します)" +#. Tag: para +#: configuration.xml:1561 +#, no-c-format +msgid "" +"Hibernate will automatically place the SessionFactory in " +"JNDI after you call cfg.buildSessionFactory(). This means " +"you will at least have this call in some startup code (or utility class) in " +"your application, unless you use JMX deployment with the " +"HibernateService (discussed later)." +msgstr "" +"cfg.buildSessionFactory() をコール後 Hibernateは自動的に " +"SessionFactory をJNDIに配置します。 " +"HibernateService と一緒にJMXデプロイメントを使わない限" +"り、 これはこの呼び出しをアプリケーション内の何らかのスタートアップコード(も" +"しくはユーティリティクラス) に配置しなければならないことを意味します。(後で" +"議論します)" -#: index.docbook:1568 -msgid "If you use a JNDI SessionFactory, an EJB or any other class may obtain the SessionFactory using a JNDI lookup." -msgstr "もしJNDI SessionFactory を使う場合、EJBや他のクラスは JNDIルックアップを使って SessionFactory を取得します。" +#. Tag: para +#: configuration.xml:1568 +#, no-c-format +msgid "" +"If you use a JNDI SessionFactory, an EJB or any other " +"class may obtain the SessionFactory using a JNDI lookup." +msgstr "" +"もしJNDI SessionFactory を使う場合、EJBや他のクラスは JNDI" +"ルックアップを使って SessionFactory を取得します。" -#: index.docbook:1573 -msgid "We recommend that you bind the SessionFactory to JNDI in a managed environment and use a static singleton otherwise. To shield your application code from these details, we also recommend to hide the actual lookup code for a SessionFactory in a helper class, such as HibernateUtil.getSessionFactory(). Note that such a class is also a convenient way to startup Hibernate—see chapter 1." -msgstr "管理された環境では SessionFactory をJNDIにバインドし、 そうでなければ static シングルトンを使うことを推奨します。 こういった詳細からアプリケーションコードを保護するために、 HibernateUtil.getSessionFactory() のようなヘルパークラスの中に、 SessionFactory をルックアップするコードを隠すことを推奨します。 このようなヘルパークラスはHibernateを開始する便利な手段でもあります。 —1章を参照してください。" +#. Tag: para +#: configuration.xml:1573 +#, no-c-format +msgid "" +"We recommend that you bind the SessionFactory to JNDI in " +"a managed environment and use a static singleton " +"otherwise. To shield your application code from these details, we also " +"recommend to hide the actual lookup code for a SessionFactory in a helper class, such as HibernateUtil.getSessionFactory" +"(). Note that such a class is also a convenient way to startup " +"Hibernate—see chapter 1." +msgstr "" +"管理された環境では SessionFactory をJNDIにバインドし、 そ" +"うでなければ static シングルトンを使うことを推奨します。 " +"こういった詳細からアプリケーションコードを保護するために、 " +"HibernateUtil.getSessionFactory() のようなヘルパークラスの" +"中に、 SessionFactory をルックアップするコードを隠すことを" +"推奨します。 このようなヘルパークラスはHibernateを開始する便利な手段でもあり" +"ます。 —1章を参照してください。" -#: index.docbook:1585 +#. Tag: title +#: configuration.xml:1585 +#, no-c-format msgid "Current Session context management with JTA" msgstr "JTAによる現在のセッションコンテキストマネージメント" -#: index.docbook:1587 -msgid "The easiest way to handle Sessions and transactions is Hibernates automatic \"current\" Session management. See the discussion of current sessions. Using the \"jta\" session context, if there is no Hibernate Session associated with the current JTA transaction, one will be started and associated with that JTA transaction the first time you call sessionFactory.getCurrentSession(). The Sessions retrieved via getCurrentSession() in \"jta\" context will be set to automatically flush before the transaction completes, close after the transaction completes, and aggressively release JDBC connections after each statement. This allows the Sessions to be managed by the life cycle of the JTA transaction to which it is associated, keeping user code clean of such management concerns. Your code can either use JTA programmatically through UserTransaction, or (recommended for portable code) use the Hibernate Transaction API to set transaction boundaries. If you run in an EJB container, declarative transaction demarcation with CMT is preferred." -msgstr "もっとも簡単に Session とトランザクションを扱う方法は、 Hibernateが自動的に「現在の」 Session を管理することです。 カレントセッション の説明を参照してください。 もし 「JTA」 セッションコンテキストを使った上で、 現在のJTAトランザクションとHibernate Session が関連していない場合は、 最初に sessionFactory.getCurrentSession() をコールし、 JTAトランザクションとの関連付けを行ってください。 「JTA」 コンテキストの getCurrentSession() を 通じて取得した Session は、トランザクションが完了する前に 自動的にフラッシュし、完了した後には自動的にクローズします。 また、各ステートメント後にJDBCコネクションを積極的にリリースします。 これによりJTAトランザクションのライフサイクルで Session を管理することができ、 ユーザーのコードからそのような管理をするコードを排除できます。 UserTransaction を通じてJTAをプログラムで管理することができます。 または、(ポータブルなコードであれば)Hibernate Transaction APIを トランザクション境界として使うこともできます。 EJBコンテナを使うときは、CMTによる宣言的トランザクション境界が好ましいです。" +#. Tag: para +#: configuration.xml:1587 +#, no-c-format +msgid "" +"The easiest way to handle Sessions and transactions is " +"Hibernates automatic \"current\" Session management. See " +"the discussion of current " +"sessions. Using the \"jta\" session context, if " +"there is no Hibernate Session associated with the current " +"JTA transaction, one will be started and associated with that JTA " +"transaction the first time you call sessionFactory.getCurrentSession" +"(). The Sessions retrieved via " +"getCurrentSession() in \"jta\" context " +"will be set to automatically flush before the transaction completes, close " +"after the transaction completes, and aggressively release JDBC connections " +"after each statement. This allows the Sessions to be " +"managed by the life cycle of the JTA transaction to which it is associated, " +"keeping user code clean of such management concerns. Your code can either " +"use JTA programmatically through UserTransaction, or " +"(recommended for portable code) use the Hibernate Transaction API to set transaction boundaries. If you run in an EJB container, " +"declarative transaction demarcation with CMT is preferred." +msgstr "" +"もっとも簡単に Session とトランザクションを扱う方法は、 " +"Hibernateが自動的に「現在の」 Session を管理することで" +"す。 カレントセッション の説明を参照してください。 もし 「JTA」 セッションコ" +"ンテキストを使った上で、 現在のJTAトランザクションとHibernate " +"Session が関連していない場合は、 最初に " +"sessionFactory.getCurrentSession() をコールし、 JTAトラン" +"ザクションとの関連付けを行ってください。 「JTA」 コンテキ" +"ストの getCurrentSession() を 通じて取得した " +"Session は、トランザクションが完了する前に 自動的にフラッ" +"シュし、完了した後には自動的にクローズします。 また、各ステートメント後にJDBC" +"コネクションを積極的にリリースします。 これによりJTAトランザクションのライフ" +"サイクルで Session を管理することができ、 ユーザーのコード" +"からそのような管理をするコードを排除できます。 UserTransaction を通じてJTAをプログラムで管理することができます。 または、(ポータブ" +"ルなコードであれば)Hibernate Transaction APIを トランザク" +"ション境界として使うこともできます。 EJBコンテナを使うときは、CMTによる宣言的" +"トランザクション境界が好ましいです。" -#: index.docbook:1610 +#. Tag: title +#: configuration.xml:1610 +#, no-c-format msgid "JMX deployment" msgstr "JMXデプロイメント" -#: index.docbook:1612 -msgid "The line cfg.buildSessionFactory() still has to be executed somewhere to get a SessionFactory into JNDI. You can do this either in a static initializer block (like the one in HibernateUtil) or you deploy Hibernate as a managed service." -msgstr "SessionFactory をJNDIから取得するためには cfg.buildSessionFactory() 行をどこかで実行していなければなりません。 あなたはこれを、static 初期化ブロック内( HibernateUtil のような)か managed service としてHibernateをデプロイするか、どちらかで実行できます。" - -#: index.docbook:1620 -msgid "Hibernate is distributed with org.hibernate.jmx.HibernateService for deployment on an application server with JMX capabilities, such as JBoss AS. The actual deployment and configuration is vendor specific. Here is an example jboss-service.xml for JBoss 4.0.x:" -msgstr "JBOSSのようなJMXの機能でアプリケーションサーバにデプロイするために org.hibernate.jmx.HibernateService を使って、配置します。 実際のデプロイメントと設定はベンダー特有です。 ここで例としてJBOSS 4.0.x用の jboss-service.xml を示します。" - -#: index.docbook:1627 +#. Tag: para +#: configuration.xml:1612 +#, no-c-format msgid "" - "\n" - "\n" - "\n" - "\n" - "\n" - " \n" - " jboss.jca:service=RARDeployer\n" - " jboss.jca:service=LocalTxCM,name=HsqlDS\n" - "\n" - " \n" - " java:/hibernate/SessionFactory\n" - "\n" - " \n" - " java:HsqlDS\n" - " org.hibernate.dialect.HSQLDialect\n" - "\n" - " \n" - " \n" - " org.hibernate.transaction.JTATransactionFactory\n" - " \n" - " org.hibernate.transaction.JBossTransactionManagerLookup\n" - " true\n" - " true\n" - "\n" - " \n" - " 5\n" - "\n" - " \n" - " true\n" - " org.hibernate.cache.EhCacheProvider\n" - " true\n" - "\n" - " \n" - " true\n" - "\n" - " \n" - " auction/Item.hbm.xml,auction/Category.hbm.xml\n" - "\n" - "\n" - "\n" - "]]>" +"The line cfg.buildSessionFactory() still has to be " +"executed somewhere to get a SessionFactory into JNDI. You " +"can do this either in a static initializer block (like " +"the one in HibernateUtil) or you deploy Hibernate as a " +"managed service." msgstr "" - "\n" - "\n" - "\n" - "\n" - "\n" - " \n" - " jboss.jca:service=RARDeployer\n" - " jboss.jca:service=LocalTxCM,name=HsqlDS\n" - "\n" - " \n" - " java:/hibernate/SessionFactory\n" - "\n" - " \n" - " java:HsqlDS\n" - " org.hibernate.dialect.HSQLDialect\n" - "\n" - " \n" - " \n" - " org.hibernate.transaction.JTATransactionFactory\n" - " \n" - " org.hibernate.transaction.JBossTransactionManagerLookup\n" - " true\n" - " true\n" - "\n" - " \n" - " 5\n" - "\n" - " \n" - " true\n" - " org.hibernate.cache.EhCacheProvider\n" - " true\n" - "\n" - " \n" - " true\n" - "\n" - " \n" - " auction/Item.hbm.xml,auction/Category.hbm.xml\n" - "\n" - "\n" - "\n" - "]]>" +"SessionFactory をJNDIから取得するためには cfg." +"buildSessionFactory() 行をどこかで実行していなければなりません。 あ" +"なたはこれを、static 初期化ブロック内" +"( HibernateUtil のような)か managed service としてHibernateをデプロイするか、どちらかで実行できます。" -#: index.docbook:1629 -msgid "This file is deployed in a directory called META-INF and packaged in a JAR file with the extension .sar (service archive). You also need to package Hibernate, its required third-party libraries, your compiled persistent classes, as well as your mapping files in the same archive. Your enterprise beans (usually session beans) may be kept in their own JAR file, but you may include this EJB JAR file in the main service archive to get a single (hot-)deployable unit. Consult the JBoss AS documentation for more information about JMX service and EJB deployment." -msgstr "このファイルは META-INF ディレクトリに配置され、 JARファイルを拡張した .sar (service archive)でパッケージ化されます。 同様にHibernateパッケージも必要です。また、Hibernateはサードパーティのライブラリも要求します。 コンパイルした永続化クラスとそのマッピングファイルも同様にアーカイブ(.sarファイル)に入れます。 エンタープライズbean(通常はセッションbean)は自身のJARファイルを保持しますが、 1回で(ホット)デプロイ可能なユニットのためにメインサービスアーカイブとしてこのEJB JARファイルをインクルードする ことができます。JBossアプリケーションサーバのドキュメントにJXMサービスと EJBデプロイメントのより多くの情報があります。" +#. Tag: para +#: configuration.xml:1620 +#, no-c-format +msgid "" +"Hibernate is distributed with org.hibernate.jmx.HibernateService for deployment on an application server with JMX capabilities, such " +"as JBoss AS. The actual deployment and configuration is vendor specific. " +"Here is an example jboss-service.xml for JBoss 4.0.x:" +msgstr "" +"JBOSSのようなJMXの機能でアプリケーションサーバにデプロイするために " +"org.hibernate.jmx.HibernateService を使って、配置します。 " +"実際のデプロイメントと設定はベンダー特有です。 ここで例としてJBOSS 4.0.x用の " +"jboss-service.xml を示します。" -msgid "ROLES_OF_TRANSLATORS" -msgstr "" +#. Tag: programlisting +#: configuration.xml:1627 +#, no-c-format +msgid "" +"\n" +"\n" +"\n" +"\n" +"\n" +" \n" +" jboss.jca:service=RARDeployer\n" +" jboss.jca:service=LocalTxCM,name=HsqlDS\n" +"\n" +" \n" +" java:/hibernate/SessionFactory\n" +"\n" +" \n" +" java:HsqlDS\n" +" org.hibernate.dialect.HSQLDialect\n" +"\n" +" \n" +" \n" +" org.hibernate.transaction.JTATransactionFactory\n" +" \n" +" org.hibernate.transaction.JBossTransactionManagerLookup\n" +" true\n" +" true\n" +"\n" +" \n" +" 5\n" +"\n" +" \n" +" true\n" +" org.hibernate.cache." +"EhCacheProvider\n" +" true\n" +"\n" +" \n" +" true\n" +"\n" +" \n" +" auction/Item.hbm.xml,auction/Category." +"hbm.xml\n" +"\n" +"\n" +"\n" +"]]>" +msgstr "" -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#. Tag: para +#: configuration.xml:1629 +#, no-c-format +msgid "" +"This file is deployed in a directory called META-INF and " +"packaged in a JAR file with the extension .sar (service " +"archive). You also need to package Hibernate, its required third-party " +"libraries, your compiled persistent classes, as well as your mapping files " +"in the same archive. Your enterprise beans (usually session beans) may be " +"kept in their own JAR file, but you may include this EJB JAR file in the " +"main service archive to get a single (hot-)deployable unit. Consult the " +"JBoss AS documentation for more information about JMX service and EJB " +"deployment." +msgstr "" +"このファイルは META-INF ディレクトリに配置され、 JARファイ" +"ルを拡張した .sar (service archive)でパッケージ化されま" +"す。 同様にHibernateパッケージも必要です。また、Hibernateはサードパーティのラ" +"イブラリも要求します。 コンパイルした永続化クラスとそのマッピングファイルも同" +"様にアーカイブ(.sarファイル)に入れます。 エンタープライズbean(通常はセッ" +"ションbean)は自身のJARファイルを保持しますが、 1回で(ホット)デプロイ可能な" +"ユニットのためにメインサービスアーカイブとしてこのEJB JARファイルをインクルー" +"ドする ことができます。JBossアプリケーションサーバのドキュメントにJXMサービス" +"と EJBデプロイメントのより多くの情報があります。" +#~ msgid " (optional)" +#~ msgstr " (オプション)" + +#~ msgid "InitialContextFactory" +#~ msgstr "InitialContextFactory" + +#~ msgid "class of the JNDI " +#~ msgstr "JNDIクラス " + +#~ msgid "eg." +#~ msgstr "例:" + +#~ msgid "full.classname.of.Dialect" +#~ msgstr "full.classname.of.Dialect" + +#~ msgid "debug" +#~ msgstr "debug" + +#~ msgid "SCHEMA_NAME" +#~ msgstr "SCHEMA_NAME" + +#~ msgid "CATALOG_NAME" +#~ msgstr "CATALOG_NAME" + +#~ msgid "SessionFactory" +#~ msgstr "SessionFactory" + +#~ msgid "jndi/composite/name" +#~ msgstr "jndi/composite/name" + +#~ msgid "0" +#~ msgstr "0" + +#~ msgid "false" +#~ msgstr "false" + +#~ msgid "Statement.setFetchSize()" +#~ msgstr "Statement.setFetchSize()" + +#~ msgid "true" +#~ msgstr "executeBatch()" + +#~ msgid "executeBatch()" +#~ msgstr "true" + +#~ msgid "Batcher" +#~ msgstr "Batcher" + +#~ msgid "classname.of.BatcherFactory" +#~ msgstr "classname.of.BatcherFactory" + +#~ msgid "binary" +#~ msgstr "binary" + +#~ msgid "serializable" +#~ msgstr "serializable" + +#~ msgid "PreparedStatement.getGeneratedKeys()" +#~ msgstr "PreparedStatement.getGeneratedKeys()" + +#~ msgid "true|false" +#~ msgstr "true|false" + +#~ msgid "ConnectionProvider" +#~ msgstr "ConnectionProvider" + +#~ msgid "classname.of.ConnectionProvider" +#~ msgstr "classname.of.ConnectionProvider" + +#~ msgid "java.sql.Connection" +#~ msgstr "java.sql.Connection" + +#~ msgid "1, 2, 4, 8" +#~ msgstr "1, 2, 4, 8" + +#~ msgid "after_statement" +#~ msgstr "after_statement" + +#~ msgid "after_transaction" +#~ msgstr "after_transaction" + +#~ msgid "auto" +#~ msgstr "auto" + +#~ msgid "hibernate.connection." +#~ msgstr "<propertyName>" + +#, fuzzy +#~ msgid "<propertyName>" +#~ msgstr "" +#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +#~ "hibernate.connection.\n" +#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +#~ "propertyName\n" +#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +#~ "hibernate.jndi.\n" +#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +#~ "propertyName" + +#~ msgid "DriverManager.getConnection()" +#~ msgstr "DriverManager.getConnection()" + +#~ msgid "Pass the JDBC property to ." +#~ msgstr "" +#~ "JDBCの プロパティを、 に渡します。" + +#~ msgid "hibernate.jndi." +#~ msgstr "<propertyName>" + +#~ msgid "Pass the property to the JNDI ." +#~ msgstr " プロパティを、 JNDI に渡します。" + +#~ msgid "CacheProvider" +#~ msgstr "CacheProvider" + +#~ msgid "classname.of.CacheProvider" +#~ msgstr "classname.of.CacheProvider" + +#~ msgid "<cache>" +#~ msgstr "<cache>" + +#~ msgid "QueryCache" +#~ msgstr "QueryCache" + +#~ msgid "StandardQueryCache" +#~ msgstr "StandardQueryCache" + +#~ msgid "classname.of.QueryCache" +#~ msgstr "classname.of.QueryCache" + +#~ msgid "prefix" +#~ msgstr "prefix" + +#~ msgid "TransactionFactory" +#~ msgstr "Transaction" + +#~ msgid "Transaction" +#~ msgstr "TransactionFactory" + +#~ msgid "JDBCTransactionFactory" +#~ msgstr "JDBCTransactionFactory" + +#~ msgid "classname.of.TransactionFactory" +#~ msgstr "classname.of.TransactionFactory" + +#~ msgid "JTATransactionFactory" +#~ msgstr "UserTransaction" + +#~ msgid "UserTransaction" +#~ msgstr "JTATransactionFactory" + +#~ msgid "TransactionManagerLookup" +#~ msgstr "TransactionManagerLookup" + +#~ msgid "classname.of.TransactionManagerLookup" +#~ msgstr "classname.of.TransactionManagerLookup" + +#~ msgid "Session" +#~ msgstr "Session" + +#~ msgid "hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC" +#~ msgstr "hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC" + +#~ msgid "create-drop" +#~ msgstr "create-drop" + +#~ msgid "hibernate.cfg.xml" +#~ msgstr "hibernate.cfg.xml" + +#~ msgid "DB2" +#~ msgstr "DB2" diff --git a/documentation/manual/translations/ja-JP/content/events.po b/documentation/manual/translations/ja-JP/content/events.po index 81cc3f965c..b5deb8836d 100644 --- a/documentation/manual/translations/ja-JP/content/events.po +++ b/documentation/manual/translations/ja-JP/content/events.po @@ -1,354 +1,471 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: events.xml:5 +#, no-c-format msgid "Interceptors and events" msgstr "インターセプタとイベント" -#: index.docbook:7 -msgid "It is often useful for the application to react to certain events that occur inside Hibernate. This allows implementation of certain kinds of generic functionality, and extension of Hibernate functionality." -msgstr "アプリケーションがHibernateの内部で発生するイベントに対応できると役に立つことがあります。 ある種の一般的な機能を実装できるようになり、 またHibernateの機能を拡張することもできるようになります。" +#. Tag: para +#: events.xml:7 +#, no-c-format +msgid "" +"It is often useful for the application to react to certain events that occur " +"inside Hibernate. This allows implementation of certain kinds of generic " +"functionality, and extension of Hibernate functionality." +msgstr "" +"アプリケーションがHibernateの内部で発生するイベントに対応できると役に立つこと" +"があります。 ある種の一般的な機能を実装できるようになり、 またHibernateの機能" +"を拡張することもできるようになります。" -#: index.docbook:14 +#. Tag: title +#: events.xml:14 +#, no-c-format msgid "Interceptors" msgstr "インターセプタ" -#: index.docbook:16 -msgid "The Interceptor interface provides callbacks from the session to the application allowing the application to inspect and/or manipulate properties of a persistent object before it is saved, updated, deleted or loaded. One possible use for this is to track auditing information. For example, the following Interceptor automatically sets the createTimestamp when an Auditable is created and updates the lastUpdateTimestamp property when an Auditable is updated." -msgstr "Interceptor インターフェイスを使って、 セッションからアプリケーションへコールバックをすることができます。 これにより永続オブジェクトの保存、更新、削除、読み込みの前に、 アプリケーションがプロパティを検査したり操作したりできるようになります。 これは監査情報の追跡に利用できます。 下の例で InterceptorAuditable が作成されると自動的に createTimestamp を設定し、 Auditable が更新されると自動的に lastUpdateTimestamp プロパティを更新します。" - -#: index.docbook:27 -msgid "You may either implement Interceptor directly or (better) extend EmptyInterceptor." -msgstr "Interceptor を直接実装したり、 (さらによいのは)EmptyInterceptor を拡張したりできます。" - -#: index.docbook:32 +#. Tag: para +#: events.xml:16 +#, no-c-format msgid "" - "" +"The Interceptor interface provides callbacks from the " +"session to the application allowing the application to inspect and/or " +"manipulate properties of a persistent object before it is saved, updated, " +"deleted or loaded. One possible use for this is to track auditing " +"information. For example, the following Interceptor " +"automatically sets the createTimestamp when an " +"Auditable is created and updates the " +"lastUpdateTimestamp property when an Auditable is updated." msgstr "" - "" +"Interceptor インターフェイスを使って、 セッションからアプ" +"リケーションへコールバックをすることができます。 これにより永続オブジェクトの" +"保存、更新、削除、読み込みの前に、 アプリケーションがプロパティを検査したり操" +"作したりできるようになります。 これは監査情報の追跡に利用できます。 下の例で " +"InterceptorAuditable が作成されると" +"自動的に createTimestamp を設定し、 Auditable が更新されると自動的に lastUpdateTimestamp プロパ" +"ティを更新します。" -#: index.docbook:34 -msgid "Interceptors come in two flavors: Session-scoped and SessionFactory-scoped." -msgstr "インターセプタには二種類あります: Session スコープのものと SessionFactory スコープのものです。" +#. Tag: para +#: events.xml:27 +#, no-c-format +msgid "" +"You may either implement Interceptor directly or (better) " +"extend EmptyInterceptor." +msgstr "" +"Interceptor を直接実装したり、 (さらによいのは)" +"EmptyInterceptor を拡張したりできます。" -#: index.docbook:39 -msgid "A Session-scoped interceptor is specified when a session is opened using one of the overloaded SessionFactory.openSession() methods accepting an Interceptor." -msgstr "Session スコープのインターセプタは、 セッションをオープンするときに指定します。 Interceptor を引数に取るSessionFactory.openSession() のオーバーロードメソッドの一つを使います。" +#. Tag: programlisting +#: events.xml:32 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:45 +#. Tag: para +#: events.xml:34 +#, no-c-format +msgid "" +"Interceptors come in two flavors: Session-scoped and " +"SessionFactory-scoped." +msgstr "" +"インターセプタには二種類あります: Session スコープのもの" +"と SessionFactory スコープのものです。" + +#. Tag: para +#: events.xml:39 +#, no-c-format +msgid "" +"A Session-scoped interceptor is specified when a session " +"is opened using one of the overloaded SessionFactory.openSession() methods " +"accepting an Interceptor." +msgstr "" +"Session スコープのインターセプタは、 セッションをオープン" +"するときに指定します。 Interceptor を引数に取る" +"SessionFactory.openSession() のオーバーロードメソッドの一つを使います。" + +#. Tag: programlisting +#: events.xml:45 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:47 -msgid "A SessionFactory-scoped interceptor is registered with the Configuration object prior to building the SessionFactory. In this case, the supplied interceptor will be applied to all sessions opened from that SessionFactory; this is true unless a session is opened explicitly specifying the interceptor to use. SessionFactory-scoped interceptors must be thread safe, taking care to not store session-specific state since multiple sessions will use this interceptor (potentially) concurrently." -msgstr "SessionFactory スコープのインターセプタは Configuration オブジェクトを使って登録します。 これは SessionFactory の構築よりも優先されます。 この場合、提供されるインターセプタは SessionFactory からオープンされたすべてのセッションに適用されます。 これは使用するインターセプタを明示的に指定してセッションをオープンしない限り、そうなります。 SessionFactory スコープのインターセプタはスレッドセーフでなければなりません。 複数のセッションが(潜在的に)このインターセプタを同時並行で使用することになるため、 セッション固有の状態を格納しないように気をつけてください。" +#. Tag: para +#: events.xml:47 +#, no-c-format +msgid "" +"A SessionFactory-scoped interceptor is registered with " +"the Configuration object prior to building the " +"SessionFactory. In this case, the supplied interceptor " +"will be applied to all sessions opened from that SessionFactory; this is true unless a session is opened explicitly specifying the " +"interceptor to use. SessionFactory-scoped interceptors " +"must be thread safe, taking care to not store session-specific state since " +"multiple sessions will use this interceptor (potentially) concurrently." +msgstr "" +"SessionFactory スコープのインターセプタは " +"Configuration オブジェクトを使って登録します。 これは " +"SessionFactory の構築よりも優先されます。 この場合、提供さ" +"れるインターセプタは SessionFactory からオープンされたすべ" +"てのセッションに適用されます。 これは使用するインターセプタを明示的に指定して" +"セッションをオープンしない限り、そうなります。 SessionFactory スコープのインターセプタはスレッドセーフでなければなりません。 複数" +"のセッションが(潜在的に)このインターセプタを同時並行で使用することになるた" +"め、 セッション固有の状態を格納しないように気をつけてください。" -#: index.docbook:56 -msgid "" -msgstr "" +#. Tag: programlisting +#: events.xml:56 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:61 +#. Tag: title +#: events.xml:61 +#, no-c-format msgid "Event system" msgstr "イベントシステム" -#: index.docbook:63 -msgid "If you have to react to particular events in your persistence layer, you may also use the Hibernate3 event architecture. The event system can be used in addition or as a replacement for interceptors." -msgstr "永続化層で特定のイベントに対応しなければならない場合、 Hibernate3の イベント アーキテクチャを使うこともできます。 イベントシステムはインターセプタと一緒に使うか、またはインターセプタの代わりとして使うことができます。" - -#: index.docbook:69 -msgid "Essentially all of the methods of the Session interface correlate to an event. You have a LoadEvent, a FlushEvent, etc (consult the XML configuration-file DTD or the org.hibernate.event package for the full list of defined event types). When a request is made of one of these methods, the Hibernate Session generates an appropriate event and passes it to the configured event listeners for that type. Out-of-the-box, these listeners implement the same processing in which those methods always resulted. However, you are free to implement a customization of one of the listener interfaces (i.e., the LoadEvent is processed by the registered implemenation of the LoadEventListener interface), in which case their implementation would be responsible for processing any load() requests made of the Session." -msgstr "本質的に Session インターフェイスのすべてのメソッドは、 1個のイベントと相互に関連します。 例えば LoadEventFlushEvent などがあります (定義済みのイベント型の一覧については、XML設定ファイルのDTDや org.hibernate.event パッケージを調べてください)。 リクエストがこれらのメソッドの1つから作られるとき、 Hibernateの Session は適切なイベントを生成し、 そのイベント型に設定されたイベントリスナに渡します。 すばらしいことに、これらのリスナはそのメソッドと同じ処理を実装します。 とはいえ、リスナインターフェイスの一つを自由にカスタム実装できます (つまり、LoadEvent は登録された LoadEventListener インターフェイスの実装により処理されます)。 その場合、その実装には Session から作られたどのような load() リクエストをも処理する責任があります。" - -#: index.docbook:84 -msgid "The listeners should be considered effectively singletons; meaning, they are shared between requests, and thus should not save any state as instance variables." -msgstr "リスナは事実上シングルトンであると見なせます。 つまりリスナはリクエスト間で共有されるため、 インスタンス変数として状態を保持するべきではないということです。" - -#: index.docbook:89 -msgid "A custom listener should implement the appropriate interface for the event it wants to process and/or extend one of the convenience base classes (or even the default event listeners used by Hibernate out-of-the-box as these are declared non-final for this purpose). Custom listeners can either be registered programmatically through the Configuration object, or specified in the Hibernate configuration XML (declarative configuration through the properties file is not supported). Here's an example of a custom load event listener:" -msgstr "カスタムリスナは処理したいイベントについて適切なインターフェイスを実装するべきです。 便利な基底クラスのうちの一つを継承してもよいです (またはHibernateがデフォルトで使用するイベントリスナを継承してもよいです。 すばらしいことに、この目的のために非finalとして宣言されています)。 カスタムリスナは Configuration オブジェクトを使ってプログラムから登録するか、 HibernateのXML設定ファイルで指定できます (プロパティファイルで宣言的に設定する方法はサポートされていません)。 カスタムロードイベントリスナの例を示します。" - -#: index.docbook:99 +#. Tag: para +#: events.xml:63 +#, no-c-format msgid "" - "" +"If you have to react to particular events in your persistence layer, you may " +"also use the Hibernate3 event architecture. The event " +"system can be used in addition or as a replacement for interceptors." msgstr "" - "" +"永続化層で特定のイベントに対応しなければならない場合、 Hibernate3の " +"イベント アーキテクチャを使うこともできます。 イベントシ" +"ステムはインターセプタと一緒に使うか、またはインターセプタの代わりとして使う" +"ことができます。" -#: index.docbook:101 -msgid "You also need a configuration entry telling Hibernate to use the listener in addition to the default listener:" +#. Tag: para +#: events.xml:69 +#, no-c-format +msgid "" +"Essentially all of the methods of the Session interface " +"correlate to an event. You have a LoadEvent, a " +"FlushEvent, etc (consult the XML configuration-file DTD " +"or the org.hibernate.event package for the full list of " +"defined event types). When a request is made of one of these methods, the " +"Hibernate Session generates an appropriate event and " +"passes it to the configured event listeners for that type. Out-of-the-box, " +"these listeners implement the same processing in which those methods always " +"resulted. However, you are free to implement a customization of one of the " +"listener interfaces (i.e., the LoadEvent is processed by " +"the registered implemenation of the LoadEventListener " +"interface), in which case their implementation would be responsible for " +"processing any load() requests made of the " +"Session." +msgstr "" +"本質的に Session インターフェイスのすべてのメソッドは、 1" +"個のイベントと相互に関連します。 例えば LoadEvent、" +"FlushEvent などがあります (定義済みのイベント型の一覧につ" +"いては、XML設定ファイルのDTDや org.hibernate.event パッ" +"ケージを調べてください)。 リクエストがこれらのメソッドの1つから作られると" +"き、 Hibernateの Session は適切なイベントを生成し、 そのイ" +"ベント型に設定されたイベントリスナに渡します。 すばらしいことに、これらのリス" +"ナはそのメソッドと同じ処理を実装します。 とはいえ、リスナインターフェイスの一" +"つを自由にカスタム実装できます (つまり、LoadEvent は登録" +"された LoadEventListener インターフェイスの実装により処理" +"されます)。 その場合、その実装には Session から作られたど" +"のような load() リクエストをも処理する責任があります。" + +#. Tag: para +#: events.xml:84 +#, no-c-format +msgid "" +"The listeners should be considered effectively singletons; meaning, they are " +"shared between requests, and thus should not save any state as instance " +"variables." +msgstr "" +"リスナは事実上シングルトンであると見なせます。 つまりリスナはリクエスト間で共" +"有されるため、 インスタンス変数として状態を保持するべきではないということで" +"す。" + +#. Tag: para +#: events.xml:89 +#, no-c-format +msgid "" +"A custom listener should implement the appropriate interface for the event " +"it wants to process and/or extend one of the convenience base classes (or " +"even the default event listeners used by Hibernate out-of-the-box as these " +"are declared non-final for this purpose). Custom listeners can either be " +"registered programmatically through the Configuration " +"object, or specified in the Hibernate configuration XML (declarative " +"configuration through the properties file is not supported). Here's an " +"example of a custom load event listener:" +msgstr "" +"カスタムリスナは処理したいイベントについて適切なインターフェイスを実装するべ" +"きです。 便利な基底クラスのうちの一つを継承してもよいです (またはHibernateが" +"デフォルトで使用するイベントリスナを継承してもよいです。 すばらしいことに、こ" +"の目的のために非finalとして宣言されています)。 カスタムリスナは " +"Configuration オブジェクトを使ってプログラムから登録する" +"か、 HibernateのXML設定ファイルで指定できます (プロパティファイルで宣言的に" +"設定する方法はサポートされていません)。 カスタムロードイベントリスナの例を示" +"します。" + +#. Tag: programlisting +#: events.xml:99 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: events.xml:101 +#, no-c-format +msgid "" +"You also need a configuration entry telling Hibernate to use the listener in " +"addition to the default listener:" msgstr "デフォルトリスナ以外のリスナを使うには、Hibernateへの設定も必要です:" -#: index.docbook:106 +#. Tag: programlisting +#: events.xml:106 +#, no-c-format msgid "" - "\n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " ... \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:108 +#. Tag: para +#: events.xml:108 +#, no-c-format msgid "Instead, you may register it programmatically:" msgstr "またその他に、プログラムで登録する方法もあります:" -#: index.docbook:112 +#. Tag: programlisting +#: events.xml:112 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:114 -msgid "Listeners registered declaratively cannot share instances. If the same class name is used in multiple <listener/> elements, each reference will result in a separate instance of that class. If you need the capability to share listener instances between listener types you must use the programmatic registration approach." -msgstr "リスナを宣言的に登録すると、そのリスナのインスタンスを共有できません。 複数の <listener/> 要素で同じクラス名が使われると、 それぞれの参照はそのクラスの別々のインスタンスを指すことになります。 リスナ型の間でリスナインスタンスを共有する必要があれば、 プログラムで登録する方法を採らなければなりません。" +#. Tag: para +#: events.xml:114 +#, no-c-format +msgid "" +"Listeners registered declaratively cannot share instances. If the same class " +"name is used in multiple <listener/> elements, each " +"reference will result in a separate instance of that class. If you need the " +"capability to share listener instances between listener types you must use " +"the programmatic registration approach." +msgstr "" +"リスナを宣言的に登録すると、そのリスナのインスタンスを共有できません。 複数" +"の <listener/> 要素で同じクラス名が使われると、 それ" +"ぞれの参照はそのクラスの別々のインスタンスを指すことになります。 リスナ型の間" +"でリスナインスタンスを共有する必要があれば、 プログラムで登録する方法を採らな" +"ければなりません。" -#: index.docbook:122 -msgid "Why implement an interface and define the specific type during configuration? Well, a listener implementation could implement multiple event listener interfaces. Having the type additionally defined during registration makes it easier to turn custom listeners on or off during configuration." -msgstr "なぜインターフェイスを実装して、特化した型を設定時に指定するのでしょうか? リスナの実装クラスに、複数のイベントリスナインターフェイスを実装できるからです。 登録時に追加で型を指定することで、カスタムリスナのon/offを設定時に簡単に切り替えられます。" +#. Tag: para +#: events.xml:122 +#, no-c-format +msgid "" +"Why implement an interface and define the specific type during " +"configuration? Well, a listener implementation could implement multiple " +"event listener interfaces. Having the type additionally defined during " +"registration makes it easier to turn custom listeners on or off during " +"configuration." +msgstr "" +"なぜインターフェイスを実装して、特化した型を設定時に指定するのでしょうか? リ" +"スナの実装クラスに、複数のイベントリスナインターフェイスを実装できるからで" +"す。 登録時に追加で型を指定することで、カスタムリスナのon/offを設定時に簡単に" +"切り替えられます。" -#: index.docbook:132 +#. Tag: title +#: events.xml:132 +#, no-c-format msgid "Hibernate declarative security" msgstr "Hibernateの宣言的なセキュリティ" -#: index.docbook:133 -msgid "Usually, declarative security in Hibernate applications is managed in a session facade layer. Now, Hibernate3 allows certain actions to be permissioned via JACC, and authorized via JAAS. This is optional functionality built on top of the event architecture." -msgstr "一般的にHibernateアプリケーションの宣言的なセキュリティは、セッションファサード層で管理します。 現在、Hiberenate3はJACCで許可しかつ、JAASで認証したアクションを許しています。 これはイベントアーキテクチャの最上位に組み込まれているオプションの機能です。" - -#: index.docbook:139 -msgid "First, you must configure the appropriate event listeners, to enable the use of JAAS authorization." -msgstr "まず最初に、適切なイベントリスナを設定してJAAS認証を使えるようにしなければなりません。" - -#: index.docbook:144 +#. Tag: para +#: events.xml:133 +#, no-c-format msgid "" - "\n" - "\n" - "\n" - "]]>" +"Usually, declarative security in Hibernate applications is managed in a " +"session facade layer. Now, Hibernate3 allows certain actions to be " +"permissioned via JACC, and authorized via JAAS. This is optional " +"functionality built on top of the event architecture." msgstr "" - " \n" - " \n" - " \n" - "]]>" +"一般的にHibernateアプリケーションの宣言的なセキュリティは、セッションファサー" +"ド層で管理します。 現在、Hiberenate3はJACCで許可しかつ、JAASで認証したアク" +"ションを許しています。 これはイベントアーキテクチャの最上位に組み込まれている" +"オプションの機能です。" -#: index.docbook:146 -msgid "Note that <listener type=\"...\" class=\"...\"/> is just a shorthand for <event type=\"...\"><listener class=\"...\"/></event> when there is exactly one listener for a particular event type." -msgstr "特定のイベント型に対してちょうど一つのリスナがあるとき、 <listener type=\"...\" class=\"...\"/><event type=\"...\"><listener class=\"...\"/></event> の簡略形に過ぎないことに注意してください。" - -#: index.docbook:152 -msgid "Next, still in hibernate.cfg.xml, bind the permissions to roles:" -msgstr "次に、同じく hibernate.cfg.xml でロールにパーミッションを与えてください:" - -#: index.docbook:156 +#. Tag: para +#: events.xml:139 +#, no-c-format msgid "" - "\n" - "]]>" +"First, you must configure the appropriate event listeners, to enable the use " +"of JAAS authorization." msgstr "" - " \n" - "]]>" +"まず最初に、適切なイベントリスナを設定してJAAS認証を使えるようにしなければな" +"りません。" -#: index.docbook:158 +#. Tag: programlisting +#: events.xml:144 +#, no-c-format +msgid "" +"\n" +"\n" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: events.xml:146 +#, no-c-format +msgid "" +"Note that <listener type=\"...\" class=\"...\"/> is " +"just a shorthand for <event type=\"...\"><listener class=" +"\"...\"/></event> when there is exactly one listener for " +"a particular event type." +msgstr "" +"特定のイベント型に対してちょうど一つのリスナがあるとき、 <" +"listener type=\"...\" class=\"...\"/><event " +"type=\"...\"><listener class=\"...\"/></event> の簡" +"略形に過ぎないことに注意してください。" + +#. Tag: para +#: events.xml:152 +#, no-c-format +msgid "" +"Next, still in hibernate.cfg.xml, bind the permissions to " +"roles:" +msgstr "" +"次に、同じく hibernate.cfg.xml でロールにパーミッションを" +"与えてください:" + +#. Tag: programlisting +#: events.xml:156 +#, no-c-format +msgid "" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: events.xml:158 +#, no-c-format msgid "The role names are the roles understood by your JACC provider." msgstr "このロール名は使用するJACCプロバイダに理解されるロールです。" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" - diff --git a/documentation/manual/translations/ja-JP/content/example_mappings.po b/documentation/manual/translations/ja-JP/content/example_mappings.po index 3da2cc4fa9..cb6eed80d9 100644 --- a/documentation/manual/translations/ja-JP/content/example_mappings.po +++ b/documentation/manual/translations/ja-JP/content/example_mappings.po @@ -1,1162 +1,790 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:20 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: example_mappings.xml:20 +#, no-c-format msgid "Example: Various Mappings" msgstr "例:いろいろなマッピング" -#: index.docbook:22 +#. Tag: para +#: example_mappings.xml:22 +#, no-c-format msgid "This chapters shows off some more complex association mappings." msgstr "この章では、より複雑な関連のマッピングをいくつか紹介します。" -#: index.docbook:27 +#. Tag: title +#: example_mappings.xml:27 +#, no-c-format msgid "Employer/Employee" msgstr "雇用者/従業員" -#: index.docbook:29 -msgid "The following model of the relationship between Employer and Employee uses an actual entity class (Employment) to represent the association. This is done because there might be more than one period of employment for the same two parties. Components are used to model monetary values and employee names." -msgstr "EmployerEmployee の関係を表す以下のモデルは、 関連の表現に実際のエンティティクラス( Employment ) を使います。 なぜなら、同じ2つのパーティに複数の期間雇用されるということがありえるからです。 お金の値と従業員の名前をモデル化するためにコンポーネントを使っています。" +#. Tag: para +#: example_mappings.xml:29 +#, no-c-format +msgid "" +"The following model of the relationship between Employer " +"and Employee uses an actual entity class " +"(Employment) to represent the association. This is done " +"because there might be more than one period of employment for the same two " +"parties. Components are used to model monetary values and employee names." +msgstr "" +"EmployerEmployee の関係を表す以下の" +"モデルは、 関連の表現に実際のエンティティクラス( Employment ) を使います。 なぜなら、同じ2つのパーティに複数の期間雇用されると" +"いうことがありえるからです。 お金の値と従業員の名前をモデル化するためにコン" +"ポーネントを使っています。" -#: index.docbook:46 +#. Tag: para +#: example_mappings.xml:46 +#, no-c-format msgid "Heres a possible mapping document:" msgstr "マッピングドキュメントの一例です:" -#: index.docbook:50 +#. Tag: programlisting +#: example_mappings.xml:50 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " employer_id_seq\n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - "\n" - " \n" - " \n" - " employment_id_seq\n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - "\n" - " \n" - "\n" - " \n" - " \n" - " \n" - " employee_id_seq\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" employer_id_seq\n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +"\n" +" \n" +" \n" +" employment_id_seq\n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +"\n" +" \n" +"\n" +" \n" +" \n" +" \n" +" employee_id_seq\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " employer_id_seq \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " employment_id_seq \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " employee_id_seq \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:52 -msgid "And heres the table schema generated by SchemaExport." +#. Tag: para +#: example_mappings.xml:52 +#, no-c-format +msgid "" +"And heres the table schema generated by SchemaExport." msgstr "SchemaExport で生成したテーブルスキーマです。" -#: index.docbook:56 +#. Tag: programlisting +#: example_mappings.xml:56 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:61 +#. Tag: title +#: example_mappings.xml:61 +#, no-c-format msgid "Author/Work" msgstr "作者/作品" -#: index.docbook:63 -msgid "Consider the following model of the relationships between Work, Author and Person. We represent the relationship between Work and Author as a many-to-many association. We choose to represent the relationship between Author and Person as one-to-one association. Another possibility would be to have Author extend Person." -msgstr "Work , Author そして Person の関係を表す以下のモデルを考えてみてください。 WorkAuthor の関係を多対多関連で表しています。 AuthorPerson の関係は一対一関連として表しています。 他には AuthorPerson を拡張するという方法もあります。" +#. Tag: para +#: example_mappings.xml:63 +#, no-c-format +msgid "" +"Consider the following model of the relationships between Work, Author and Person. We " +"represent the relationship between Work and " +"Author as a many-to-many association. We choose to " +"represent the relationship between Author and " +"Person as one-to-one association. Another possibility " +"would be to have Author extend Person." +msgstr "" +"Work , Author そして Person の関係を表す以下のモデルを考えてみてください。 WorkAuthor の関係を多対多関連で表しています。 " +"AuthorPerson の関係は一対一関連とし" +"て表しています。 他には AuthorPerson を拡張するという方法もあります。" -#: index.docbook:81 -msgid "The following mapping document correctly represents these relationships:" +#. Tag: para +#: example_mappings.xml:81 +#, no-c-format +msgid "" +"The following mapping document correctly represents these relationships:" msgstr "以下のマッピングドキュメントはこのような関係を正確に表現しています。" -#: index.docbook:85 +#. Tag: programlisting +#: example_mappings.xml:85 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"\n" +"\n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:87 -msgid "There are four tables in this mapping. works, authors and persons hold work, author and person data respectively. author_work is an association table linking authors to works. Heres the table schema, as generated by SchemaExport." -msgstr "このマッピングには4つのテーブルがあります。 works , authors , persons はそれぞれ、仕事、作者、人のデータを保持します。 author_work は作者と作品をリンクする関連テーブルです。 以下は SchemaExport で生成したテーブルスキーマです。" - -#: index.docbook:95 +#. Tag: para +#: example_mappings.xml:87 +#, no-c-format msgid "" - "" +"There are four tables in this mapping. works, " +"authors and persons hold work, author " +"and person data respectively. author_work is an " +"association table linking authors to works. Heres the table schema, as " +"generated by SchemaExport." msgstr "" - "" +"このマッピングには4つのテーブルがあります。 works , " +"authors , persons はそれぞれ、仕事、作" +"者、人のデータを保持します。 author_work は作者と作品をリ" +"ンクする関連テーブルです。 以下は SchemaExport で生成した" +"テーブルスキーマです。" -#: index.docbook:100 +#. Tag: programlisting +#: example_mappings.xml:95 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: example_mappings.xml:100 +#, no-c-format msgid "Customer/Order/Product" msgstr "顧客/注文/製品" -#: index.docbook:102 -msgid "Now consider a model of the relationships between Customer, Order and LineItem and Product. There is a one-to-many association between Customer and Order, but how should we represent Order / LineItem / Product? I've chosen to map LineItem as an association class representing the many-to-many association between Order and Product. In Hibernate, this is called a composite element." -msgstr "さて、 Customer , Order , LineItem Product の関係を表すモデルを考えてみましょう。 CustomerOrder は一対多の関連ですが、 Order / LineItem / Product はどのように表現するべきでしょうか? LineItem を、OrderProduct の多対多関連を表現する関連クラスとしてマッピングしました。 Hibernateではこれをコンポジット要素と呼びます。" +#. Tag: para +#: example_mappings.xml:102 +#, no-c-format +msgid "" +"Now consider a model of the relationships between Customer, Order and LineItem and " +"Product. There is a one-to-many association between " +"Customer and Order, but how should we " +"represent Order / LineItem / " +"Product? I've chosen to map LineItem " +"as an association class representing the many-to-many association between " +"Order and Product. In Hibernate, this " +"is called a composite element." +msgstr "" +"さて、 Customer , Order , " +"LineItemProduct の関係を表すモデルを考" +"えてみましょう。 CustomerOrder は一" +"対多の関連ですが、 Order / LineItem / " +"Product はどのように表現するべきでしょうか? " +"LineItem を、Order と " +"Product の多対多関連を表現する関連クラスとしてマッピングし" +"ました。 Hibernateではこれをコンポジット要素と呼びます。" -#: index.docbook:122 +#. Tag: para +#: example_mappings.xml:122 +#, no-c-format msgid "The mapping document:" msgstr "マッピングドキュメント:" -#: index.docbook:126 +#. Tag: programlisting +#: example_mappings.xml:126 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:128 -msgid "customers, orders, line_items and products hold customer, order, order line item and product data respectively. line_items also acts as an association table linking orders with products." -msgstr "customers , orders , line_items , products はそれぞれ、顧客、注文、注文明細、製品のデータを保持します。 line_items は注文と製品をリンクする関連テーブルとしても働きます。" - -#: index.docbook:135 +#. Tag: para +#: example_mappings.xml:128 +#, no-c-format msgid "" - "" +"customers, orders, " +"line_items and products hold customer, " +"order, order line item and product data respectively. line_items also acts as an association table linking orders with products." msgstr "" - "" +"customers , orders , " +"line_items , products はそれぞれ、顧" +"客、注文、注文明細、製品のデータを保持します。 line_items " +"は注文と製品をリンクする関連テーブルとしても働きます。" -#: index.docbook:140 +#. Tag: programlisting +#: example_mappings.xml:135 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: example_mappings.xml:140 +#, no-c-format msgid "Miscellaneous example mappings" msgstr "種々雑多なマッピング例" -#: index.docbook:142 -msgid "These examples are all taken from the Hibernate test suite. You will find many other useful example mappings there. Look in the test folder of the Hibernate distribution." -msgstr "ここにある例はすべてHibernateのテストスイートから取りました。 そこには、他にもたくさんのマッピングの例があります。 Hibernateディストリビューションの test フォルダを見てください。" +#. Tag: para +#: example_mappings.xml:142 +#, no-c-format +msgid "" +"These examples are all taken from the Hibernate test suite. You will find " +"many other useful example mappings there. Look in the test folder of the Hibernate distribution." +msgstr "" +"ここにある例はすべてHibernateのテストスイートから取りました。 そこには、他に" +"もたくさんのマッピングの例があります。 Hibernateディストリビューションの " +"test フォルダを見てください。" -#: index.docbook:148 +#. Tag: para +#: example_mappings.xml:148 +#, no-c-format msgid "TODO: put words around this stuff" msgstr "TODO: ここに文章を埋める" -#: index.docbook:151 +#. Tag: title +#: example_mappings.xml:151 +#, no-c-format msgid "\"Typed\" one-to-one association" msgstr "「型付けされた」一対一関連" -#: index.docbook:152 +#. Tag: programlisting +#: example_mappings.xml:152 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " name\n" - " 'HOME'\n" - " \n" - " \n" - " name\n" - " 'MAILING'\n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" name\n" +" 'HOME'\n" +" \n" +" \n" +" name\n" +" 'MAILING'\n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " name \n" - " 'HOME' \n" - " \n" - " \n" - " name \n" - " 'MAILING' \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:156 +#. Tag: title +#: example_mappings.xml:156 +#, no-c-format msgid "Composite key example" msgstr "複合キーの例" -#: index.docbook:157 +#. Tag: programlisting +#: example_mappings.xml:157 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ( select sum(li.quantity*p.price) \n" - " from LineItem li, Product p \n" - " where li.productId = p.productId \n" - " and li.customerId = customerId \n" - " and li.orderNumber = orderNumber )\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ( select sum(li.quantity) \n" - " from LineItem li \n" - " where li.productId = productId )\n" - " \n" - " \n" - " \n" - "]]>" +"\n" +"\n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ( select sum(li.quantity*p.price) \n" +" from LineItem li, Product p \n" +" where li.productId = p.productId \n" +" and li.customerId = customerId \n" +" and li.orderNumber = orderNumber )\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ( select sum(li.quantity) \n" +" from LineItem li \n" +" where li.productId = productId )\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ( select sum(li.quantity*p.price) \n" - " from LineItem li, Product p \n" - " where li.productId = p.productId \n" - " and li.customerId = customerId \n" - " and li.orderNumber = orderNumber ) \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ( select sum(li.quantity) \n" - " from LineItem li \n" - " where li.productId = productId ) \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:161 +#. Tag: title +#: example_mappings.xml:161 +#, no-c-format msgid "Many-to-many with shared composite key attribute" msgstr "複合キー属性を共有する多対多" -#: index.docbook:162 +#. Tag: programlisting +#: example_mappings.xml:162 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " org\n" - " \n" - " \n" - "\n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " org\n" - " \n" - " \n" - "\n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" org\n" +" \n" +" \n" +"\n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" org\n" +" \n" +" \n" +"\n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " org \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " org \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:166 +#. Tag: title +#: example_mappings.xml:166 +#, no-c-format msgid "Content based discrimination" msgstr "discriminationに基づく内容" -#: index.docbook:167 +#. Tag: programlisting +#: example_mappings.xml:167 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " case \n" - " when title is not null then 'E' \n" - " when salesperson is not null then 'C' \n" - " else 'P' \n" - " end\n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" case \n" +" when title is not null then 'E' \n" +" when salesperson is not null then 'C' \n" +" else 'P' \n" +" end\n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " case \n" - " when title is not null then 'E' \n" - " when salesperson is not null then 'C' \n" - " else 'P' \n" - " end \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:171 +#. Tag: title +#: example_mappings.xml:171 +#, no-c-format msgid "Associations on alternate keys" msgstr "代替キーの関連" -#: index.docbook:172 +#. Tag: programlisting +#: example_mappings.xml:172 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" - diff --git a/documentation/manual/translations/ja-JP/content/example_parentchild.po b/documentation/manual/translations/ja-JP/content/example_parentchild.po index 57d3de2268..0e80c03a3f 100644 --- a/documentation/manual/translations/ja-JP/content/example_parentchild.po +++ b/documentation/manual/translations/ja-JP/content/example_parentchild.po @@ -1,351 +1,603 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: example_parentchild.xml:5 +#, no-c-format msgid "Example: Parent/Child" msgstr "例:親/子供" -#: index.docbook:7 -msgid "One of the very first things that new users try to do with Hibernate is to model a parent / child type relationship. There are two different approaches to this. For various reasons the most convenient approach, especially for new users, is to model both Parent and Child as entity classes with a <one-to-many> association from Parent to Child. (The alternative approach is to declare the Child as a <composite-element>.) Now, it turns out that default semantics of a one to many association (in Hibernate) are much less close to the usual semantics of a parent / child relationship than those of a composite element mapping. We will explain how to use a bidirectional one to many association with cascades to model a parent / child relationship efficiently and elegantly. It's not at all difficult!" -msgstr "新規ユーザがHibernateを使ってまず最初に扱うモデルの一つに、親子型のモデル化があります。 このモデル化には二つのアプローチが存在します。とりわけ新規ユーザにとって、 さまざまな理由から最も便利だと思われるアプローチは、 から 子供 への <one-to-many> 関連により 子供 の両方をエンティティクラスとしてモデリングする方法です (もう一つの方法は、子供<composite-element> として定義するものです)。 これで(Hibernateにおける)一対多関連のデフォルトのセマンティクスが、通常の複合要素のマッピングよりも、 親子関係のセマンティクスから遠いことがわかります。 それでは親子関係を効率的かつエレガントにモデリングするために、 カスケード操作を使った双方向一対多関連 の扱い方を説明します。これはまったく難しいものではありません。" +#. Tag: para +#: example_parentchild.xml:7 +#, no-c-format +msgid "" +"One of the very first things that new users try to do with Hibernate is to " +"model a parent / child type relationship. There are two different approaches " +"to this. For various reasons the most convenient approach, especially for " +"new users, is to model both Parent and Child as entity classes with a <one-to-many> " +"association from Parent to Child. (The " +"alternative approach is to declare the Child as a " +"<composite-element>.) Now, it turns out that " +"default semantics of a one to many association (in Hibernate) are much less " +"close to the usual semantics of a parent / child relationship than those of " +"a composite element mapping. We will explain how to use a " +"bidirectional one to many association with cascades to " +"model a parent / child relationship efficiently and elegantly. It's not at " +"all difficult!" +msgstr "" +"新規ユーザがHibernateを使ってまず最初に扱うモデルの一つに、親子型のモデル化が" +"あります。 このモデル化には二つのアプローチが存在します。とりわけ新規ユーザに" +"とって、 さまざまな理由から最も便利だと思われるアプローチは、 から 子供 への <one-to-many> 関連により 子供 の両方を" +"エンティティクラスとしてモデリングする方法です (もう一つの方法は、" +"子供<composite-element> として定義する" +"ものです)。 これで(Hibernateにおける)一対多関連のデフォルトのセマンティク" +"スが、通常の複合要素のマッピングよりも、 親子関係のセマンティクスから遠いこと" +"がわかります。 それでは親子関係を効率的かつエレガントにモデリングするため" +"に、 カスケード操作を使った双方向一対多関連 の扱い方を説" +"明します。これはまったく難しいものではありません。" -#: index.docbook:21 +#. Tag: title +#: example_parentchild.xml:21 +#, no-c-format msgid "A note about collections" msgstr "コレクションに関する注意" -#: index.docbook:23 -msgid "Hibernate collections are considered to be a logical part of their owning entity; never of the contained entities. This is a crucial distinction! It has the following consequences:" -msgstr "Hibernateのコレクションは自身のエンティティの論理的な部分と考えられ、 決して包含するエンティティのものではありません。これは致命的な違いです! これは以下のような結果になります:" +#. Tag: para +#: example_parentchild.xml:23 +#, no-c-format +msgid "" +"Hibernate collections are considered to be a logical part of their owning " +"entity; never of the contained entities. This is a crucial distinction! It " +"has the following consequences:" +msgstr "" +"Hibernateのコレクションは自身のエンティティの論理的な部分と考えられ、 決して" +"包含するエンティティのものではありません。これは致命的な違いです! これは以下" +"のような結果になります:" -#: index.docbook:30 -msgid "When we remove / add an object from / to a collection, the version number of the collection owner is incremented." -msgstr "オブジェクトをコレクションから削除、またはコレクションに追加するとき、 コレクションのオーナーのバージョン番号はインクリメントされます。" +#. Tag: para +#: example_parentchild.xml:30 +#, no-c-format +msgid "" +"When we remove / add an object from / to a collection, the version number of " +"the collection owner is incremented." +msgstr "" +"オブジェクトをコレクションから削除、またはコレクションに追加するとき、 コレク" +"ションのオーナーのバージョン番号はインクリメントされます。" -#: index.docbook:36 -msgid "If an object that was removed from a collection is an instance of a value type (eg, a composite element), that object will cease to be persistent and its state will be completely removed from the database. Likewise, adding a value type instance to the collection will cause its state to be immediately persistent." -msgstr "もしコレクションから削除されたオブジェクトが値型のインスタンス (例えばコンポジットエレメント)だったならば、そのオブジェクトは永続的ではなくなり、 その状態はデータベースから完全に削除されます。 同じように、値型のインスタンスをコレクションに追加すると、その状態はすぐに永続的になります。" +#. Tag: para +#: example_parentchild.xml:36 +#, no-c-format +msgid "" +"If an object that was removed from a collection is an instance of a value " +"type (eg, a composite element), that object will cease to be persistent and " +"its state will be completely removed from the database. Likewise, adding a " +"value type instance to the collection will cause its state to be immediately " +"persistent." +msgstr "" +"もしコレクションから削除されたオブジェクトが値型のインスタンス (例えばコンポ" +"ジットエレメント)だったならば、そのオブジェクトは永続的ではなくなり、 その状" +"態はデータベースから完全に削除されます。 同じように、値型のインスタンスをコレ" +"クションに追加すると、その状態はすぐに永続的になります。" -#: index.docbook:44 -msgid "On the other hand, if an entity is removed from a collection (a one-to-many or many-to-many association), it will not be deleted, by default. This behaviour is completely consistent - a change to the internal state of another entity should not cause the associated entity to vanish! Likewise, adding an entity to a collection does not cause that entity to become persistent, by default." -msgstr "一方、もしエンティティがコレクション(一対多または多対多関連)から削除されても、 デフォルトではそれは削除されません。この動作は完全に一貫しています。 すなわち、他のエンティティの内部状態を変更しても、関連するエンティティが消滅すべきではないということです。 同様に、エンティティがコレクションに追加されても、デフォルトではそのエンティティは永続的にはなりません。" +#. Tag: para +#: example_parentchild.xml:44 +#, no-c-format +msgid "" +"On the other hand, if an entity is removed from a collection (a one-to-many " +"or many-to-many association), it will not be deleted, by default. This " +"behaviour is completely consistent - a change to the internal state of " +"another entity should not cause the associated entity to vanish! Likewise, " +"adding an entity to a collection does not cause that entity to become " +"persistent, by default." +msgstr "" +"一方、もしエンティティがコレクション(一対多または多対多関連)から削除されて" +"も、 デフォルトではそれは削除されません。この動作は完全に一貫しています。 す" +"なわち、他のエンティティの内部状態を変更しても、関連するエンティティが消滅す" +"べきではないということです。 同様に、エンティティがコレクションに追加されて" +"も、デフォルトではそのエンティティは永続的にはなりません。" -#: index.docbook:54 -msgid "Instead, the default behaviour is that adding an entity to a collection merely creates a link between the two entities, while removing it removes the link. This is very appropriate for all sorts of cases. Where it is not appropriate at all is the case of a parent / child relationship, where the life of the child is bound to the life cycle of the parent." -msgstr "その代わりに、デフォルトの動作では、エンティティをコレクションに追加すると単に二つのエンティティ間のリンクを作成し、 一方エンティティを削除するとリンクも削除します。これはすべてのケースにおいて非常に適切です。 これが適切でないのは親/子関係の場合です。この場合子供の生存は親のライフサイクルに制限されるからです。" +#. Tag: para +#: example_parentchild.xml:54 +#, no-c-format +msgid "" +"Instead, the default behaviour is that adding an entity to a collection " +"merely creates a link between the two entities, while removing it removes " +"the link. This is very appropriate for all sorts of cases. Where it is not " +"appropriate at all is the case of a parent / child relationship, where the " +"life of the child is bound to the life cycle of the parent." +msgstr "" +"その代わりに、デフォルトの動作では、エンティティをコレクションに追加すると単" +"に二つのエンティティ間のリンクを作成し、 一方エンティティを削除するとリンクも" +"削除します。これはすべてのケースにおいて非常に適切です。 これが適切でないのは" +"親/子関係の場合です。この場合子供の生存は親のライフサイクルに制限されるからで" +"す。" -#: index.docbook:64 +#. Tag: title +#: example_parentchild.xml:64 +#, no-c-format msgid "Bidirectional one-to-many" msgstr "双方向一対多" -#: index.docbook:66 -msgid "Suppose we start with a simple <one-to-many> association from Parent to Child." -msgstr "Parent から Child への単純な <one-to-many> 関連から始めるとします。" - -#: index.docbook:71 +#. Tag: para +#: example_parentchild.xml:66 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "]]>" +"Suppose we start with a simple <one-to-many> " +"association from Parent to Child." msgstr "" - " \n" - " \n" - " \n" - "]]>" +"Parent から Child への単純な " +"<one-to-many> 関連から始めるとします。" -#: index.docbook:73 +#. Tag: programlisting +#: example_parentchild.xml:71 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: example_parentchild.xml:73 +#, no-c-format msgid "If we were to execute the following code" msgstr "以下のコードを実行すると、" -#: index.docbook:77 +#. Tag: programlisting +#: example_parentchild.xml:77 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:79 +#. Tag: para +#: example_parentchild.xml:79 +#, no-c-format msgid "Hibernate would issue two SQL statements:" msgstr "Hibernateは二つのSQL文を発行します:" -#: index.docbook:85 -msgid "an INSERT to create the record for c" -msgstr "cに対するレコードを生成するINSERT" - -#: index.docbook:88 -msgid "an UPDATE to create the link from p to c" -msgstr "pからcへのリンクを作成するUPDATE" - -#: index.docbook:95 -msgid "This is not only inefficient, but also violates any NOT NULL constraint on the parent_id column. We can fix the nullability constraint violation by specifying not-null=\"true\" in the collection mapping:" -msgstr "これは非効率的なだけではなく、parent_id カラムにおいて NOT NULL 制約に違反します。 コレクションのマッピングで not-null=\"true\" と指定することで、null制約違反を解決することができます:" - -#: index.docbook:101 +#. Tag: para +#: example_parentchild.xml:85 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "]]>" +"an INSERT to create the record for c" msgstr "" - " \n" - " \n" - " \n" - "]]>" +"cに対するレコードを生成するINSERT" -#: index.docbook:103 +#. Tag: para +#: example_parentchild.xml:88 +#, no-c-format +msgid "" +"an UPDATE to create the link from p to " +"c" +msgstr "" +"pからcへのリンクを作成する" +"UPDATE" + +#. Tag: para +#: example_parentchild.xml:95 +#, no-c-format +msgid "" +"This is not only inefficient, but also violates any NOT NULL constraint on the parent_id column. We can fix " +"the nullability constraint violation by specifying not-null=\"true" +"\" in the collection mapping:" +msgstr "" +"これは非効率的なだけではなく、parent_id カラムにおいて " +"NOT NULL 制約に違反します。 コレクションのマッピングで " +"not-null=\"true\" と指定することで、null制約違反を解決する" +"ことができます:" + +#. Tag: programlisting +#: example_parentchild.xml:101 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: example_parentchild.xml:103 +#, no-c-format msgid "However, this is not the recommended solution." msgstr "しかしこの解決策は推奨できません。" -#: index.docbook:106 -msgid "The underlying cause of this behaviour is that the link (the foreign key parent_id) from p to c is not considered part of the state of the Child object and is therefore not created in the INSERT. So the solution is to make the link part of the Child mapping." -msgstr "この動作の根本的な原因は、p から c へのリンク (外部キー parent_id)は Child オブジェクトの状態の一部とは考えられず、 そのため INSERT によってリンクが生成されないことです。 ですから、解決策はリンクをChildマッピングの一部にすることです。" - -#: index.docbook:113 -msgid "]]>" -msgstr "]]>" - -#: index.docbook:115 -msgid "(We also need to add the parent property to the Child class.)" -msgstr "(また Child クラスに parent プロパティを追加する必要があります。)" - -#: index.docbook:119 -msgid "Now that the Child entity is managing the state of the link, we tell the collection not to update the link. We use the inverse attribute." -msgstr "それでは Child エンティティがリンクの状態を制御するようになったので、 コレクションがリンクを更新しないようにしましょう。それには inverse 属性を使います。" - -#: index.docbook:124 +#. Tag: para +#: example_parentchild.xml:106 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "]]>" +"The underlying cause of this behaviour is that the link (the foreign key " +"parent_id) from p to c is not considered part of the state of the Child " +"object and is therefore not created in the INSERT. So the " +"solution is to make the link part of the Child mapping." msgstr "" - " \n" - " \n" - " \n" - "]]>" +"この動作の根本的な原因は、p から c への" +"リンク (外部キー parent_id)は Child オ" +"ブジェクトの状態の一部とは考えられず、 そのため INSERT に" +"よってリンクが生成されないことです。 ですから、解決策はリンクをChildマッピン" +"グの一部にすることです。" -#: index.docbook:126 +#. Tag: programlisting +#: example_parentchild.xml:113 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: example_parentchild.xml:115 +#, no-c-format +msgid "" +"(We also need to add the parent property to the " +"Child class.)" +msgstr "" +"(また Child クラスに parent プロパティ" +"を追加する必要があります。)" + +#. Tag: para +#: example_parentchild.xml:119 +#, no-c-format +msgid "" +"Now that the Child entity is managing the state of the " +"link, we tell the collection not to update the link. We use the " +"inverse attribute." +msgstr "" +"それでは Child エンティティがリンクの状態を制御するように" +"なったので、 コレクションがリンクを更新しないようにしましょう。それには " +"inverse 属性を使います。" + +#. Tag: programlisting +#: example_parentchild.xml:124 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: example_parentchild.xml:126 +#, no-c-format msgid "The following code would be used to add a new Child" -msgstr "以下のコードを使えば、新しい Child を追加することができます。" - -#: index.docbook:130 -msgid "" - "" msgstr "" - "" +"以下のコードを使えば、新しい Child を追加することができま" +"す。" -#: index.docbook:132 +#. Tag: programlisting +#: example_parentchild.xml:130 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: example_parentchild.xml:132 +#, no-c-format msgid "And now, only one SQL INSERT would be issued!" -msgstr "これにより、SQLの INSERT 文が一つだけが発行されるようになりました!" - -#: index.docbook:136 -msgid "To tighten things up a bit, we could create an addChild() method of Parent." -msgstr "もう少し強化するには、ParentaddChild() メソッドを作成します。" - -#: index.docbook:141 -msgid "" - "" msgstr "" - "" +"これにより、SQLの INSERT 文が一つだけが発行されるようにな" +"りました!" -#: index.docbook:143 +#. Tag: para +#: example_parentchild.xml:136 +#, no-c-format +msgid "" +"To tighten things up a bit, we could create an addChild() " +"method of Parent." +msgstr "" +"もう少し強化するには、ParentaddChild() メソッドを作成します。" + +#. Tag: programlisting +#: example_parentchild.xml:141 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: example_parentchild.xml:143 +#, no-c-format msgid "Now, the code to add a Child looks like" msgstr "Child を追加するコードはこのようになります。" -#: index.docbook:147 +#. Tag: programlisting +#: example_parentchild.xml:147 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:152 +#. Tag: title +#: example_parentchild.xml:152 +#, no-c-format msgid "Cascading life cycle" msgstr "ライフサイクルのカスケード" -#: index.docbook:154 -msgid "The explicit call to save() is still annoying. We will address this by using cascades." -msgstr "明示的に save() をコールするのはまだ煩わしいものです。これをカスケードを使って対処します。" - -#: index.docbook:159 +#. Tag: para +#: example_parentchild.xml:154 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "]]>" +"The explicit call to save() is still annoying. We will " +"address this by using cascades." msgstr "" - " \n" - " \n" - " \n" - "]]>" +"明示的に save() をコールするのはまだ煩わしいものです。これ" +"をカスケードを使って対処します。" -#: index.docbook:161 +#. Tag: programlisting +#: example_parentchild.xml:159 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: example_parentchild.xml:161 +#, no-c-format msgid "This simplifies the code above to" msgstr "これにより先ほどのコードをこのように単純化します" -#: index.docbook:165 +#. Tag: programlisting +#: example_parentchild.xml:165 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:167 -msgid "Similarly, we don't need to iterate over the children when saving or deleting a Parent. The following removes p and all its children from the database." -msgstr "同様に Parent を保存または削除するときに、子供を一つ一つ取り出して扱う必要はありません。 以下のコードは p を削除し、そしてデータベースからその子供をすべて削除します。" - -#: index.docbook:172 +#. Tag: para +#: example_parentchild.xml:167 +#, no-c-format msgid "" - "" +"Similarly, we don't need to iterate over the children when saving or " +"deleting a Parent. The following removes p and all its children from the database." msgstr "" - "" +"同様に Parent を保存または削除するときに、子供を一つ一つ取" +"り出して扱う必要はありません。 以下のコードは p を削除し、" +"そしてデータベースからその子供をすべて削除します。" -#: index.docbook:174 +#. Tag: programlisting +#: example_parentchild.xml:172 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: example_parentchild.xml:174 +#, no-c-format msgid "However, this code" msgstr "しかしこのコードは" -#: index.docbook:178 +#. Tag: programlisting +#: example_parentchild.xml:178 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:180 -msgid "will not remove c from the database; it will ony remove the link to p (and cause a NOT NULL constraint violation, in this case). You need to explicitly delete() the Child." -msgstr "データベースから c を削除しません。p へのリンクを削除する (そしてこのケースでは NOT NULL 制約違反を引き起こす)だけです。 Childdelete() を明示する必要があります。" - -#: index.docbook:186 +#. Tag: para +#: example_parentchild.xml:180 +#, no-c-format msgid "" - "" +"will not remove c from the database; it will ony remove " +"the link to p (and cause a NOT NULL " +"constraint violation, in this case). You need to explicitly delete()" +" the Child." msgstr "" - "" +"データベースから c を削除しません。p へ" +"のリンクを削除する (そしてこのケースでは NOT NULL 制約違" +"反を引き起こす)だけです。 Childdelete() を明示する必要があります。" -#: index.docbook:188 -msgid "Now, in our case, a Child can't really exist without its parent. So if we remove a Child from the collection, we really do want it to be deleted. For this, we must use cascade=\"all-delete-orphan\"." -msgstr "今このケースでは実際に Child が親なしでは存在できないようになりました。 そのため、もしコレクションから Child を取り除く場合、これも削除したいです。 そのためには cascade=\"all-delete-orphan\" を使わなければなりません。" - -#: index.docbook:194 +#. Tag: programlisting +#: example_parentchild.xml:186 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "]]>" +"" msgstr "" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:196 -msgid "Note: even though the collection mapping specifies inverse=\"true\", cascades are still processed by iterating the collection elements. So if you require that an object be saved, deleted or updated by cascade, you must add it to the collection. It is not enough to simply call setParent()." -msgstr "注意:コレクションのマッピングで inverse=\"true\" と指定しても、 コレクションの要素のイテレーションによって、依然カスケードが実行されます。 そのためもしカスケードでオブジェクトをセーブ、削除、更新する必要があるなら、 それをコレクションに追加しなければなりません。単に setParent() を呼ぶだけでは不十分です。" +#. Tag: para +#: example_parentchild.xml:188 +#, no-c-format +msgid "" +"Now, in our case, a Child can't really exist without its " +"parent. So if we remove a Child from the collection, we " +"really do want it to be deleted. For this, we must use cascade=" +"\"all-delete-orphan\"." +msgstr "" +"今このケースでは実際に Child が親なしでは存在できないよう" +"になりました。 そのため、もしコレクションから Child を取り" +"除く場合、これも削除したいです。 そのためには cascade=\"all-delete-" +"orphan\" を使わなければなりません。" -#: index.docbook:206 +#. Tag: programlisting +#: example_parentchild.xml:194 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: example_parentchild.xml:196 +#, no-c-format +msgid "" +"Note: even though the collection mapping specifies inverse=\"true" +"\", cascades are still processed by iterating the collection " +"elements. So if you require that an object be saved, deleted or updated by " +"cascade, you must add it to the collection. It is not enough to simply call " +"setParent()." +msgstr "" +"注意:コレクションのマッピングで inverse=\"true\" と指定し" +"ても、 コレクションの要素のイテレーションによって、依然カスケードが実行されま" +"す。 そのためもしカスケードでオブジェクトをセーブ、削除、更新する必要があるな" +"ら、 それをコレクションに追加しなければなりません。単に setParent()" +" を呼ぶだけでは不十分です。" + +#. Tag: title +#: example_parentchild.xml:206 +#, no-c-format msgid "Cascades and unsaved-value" msgstr "カスケードと unsaved-value" -#: index.docbook:208 -msgid "Suppose we loaded up a Parent in one Session, made some changes in a UI action and wish to persist these changes in a new session by calling update(). The Parent will contain a collection of childen and, since cascading update is enabled, Hibernate needs to know which children are newly instantiated and which represent existing rows in the database. Lets assume that both Parent and Child have genenerated identifier properties of type Long. Hibernate will use the identifier and version/timestamp property value to determine which of the children are new. (See .) In Hibernate3, it is no longer necessary to specify an unsaved-value explicitly." -msgstr "Parent が、ある Session でロードされ、UIのアクションで変更が加えられ、 update() を呼んでこの変更を新しいセッションで永続化したいとします。 Parent が子供のコレクションを持ち、カスケード更新が有効になっているため、 Hibernateはどの子供が新しくインスタンス化されたか、どれがデータベースの既存の行に相当するのかを知る必要があります。 ParentChild の両方が java.lang.Long 型の識別プロパティを生成したとしましょう。 Hibernateはどの子供が新しいものかを決定するために識別プロパティの値を使います(versionやtimestampプロパティも使えます。 参照)。Hibernate3になって、 明示的に unsaved-value を指定する必要はなくなりました。" - -#: index.docbook:220 -msgid "The following code will update parent and child and insert newChild." -msgstr "以下のコードは parentchild を更新し、newChild を挿入します。" - -#: index.docbook:225 +#. Tag: para +#: example_parentchild.xml:208 +#, no-c-format msgid "" - "" +"Suppose we loaded up a Parent in one Session, made some changes in a UI action and wish to persist these changes " +"in a new session by calling update(). The " +"Parent will contain a collection of childen and, since " +"cascading update is enabled, Hibernate needs to know which children are " +"newly instantiated and which represent existing rows in the database. Lets " +"assume that both Parent and Child have " +"genenerated identifier properties of type Long. Hibernate " +"will use the identifier and version/timestamp property value to determine " +"which of the children are new. (See .) In Hibernate3, it is no longer necessary to specify an " +"unsaved-value explicitly." msgstr "" - "" +"Parent が、ある Session でロードされ、" +"UIのアクションで変更が加えられ、 update() を呼んでこの変更" +"を新しいセッションで永続化したいとします。 Parent が子供の" +"コレクションを持ち、カスケード更新が有効になっているため、 Hibernateはどの子" +"供が新しくインスタンス化されたか、どれがデータベースの既存の行に相当するのか" +"を知る必要があります。 ParentChild " +"の両方が java.lang.Long 型の識別プロパティを生成したとしま" +"しょう。 Hibernateはどの子供が新しいものかを決定するために識別プロパティの値" +"を使います(versionやtimestampプロパティも使えます。 参照)。Hibernate3になって、 明示的" +"に unsaved-value を指定する必要はなくなりました。" -#: index.docbook:227 -msgid "Well, that's all very well for the case of a generated identifier, but what about assigned identifiers and composite identifiers? This is more difficult, since Hibernate can't use the identifier property to distinguish between a newly instantiated object (with an identifier assigned by the user) and an object loaded in a previous session. In this case, Hibernate will either use the timestamp or version property, or will actually query the second-level cache or, worst case, the database, to see if the row exists." -msgstr "これらは生成された識別子の場合には非常に良いのですが、割り当てられた識別子と複合識別子の場合はどうでしょうか? これはHibernateが、(ユーザにより割り当てられた識別子を持つ)新しくインスタンス化されたオブジェクトと、 以前のSessionでロードされたオブジェクトを区別できないため、より難しいです。 この場合、Hibernateはタイムスタンプかバージョンのプロパティのどちらかを使うか、二次キャッシュに問い合わせます。 最悪の場合、行が存在するかどうかデータベースを見ます。" +#. Tag: para +#: example_parentchild.xml:220 +#, no-c-format +msgid "" +"The following code will update parent and child and insert newChild." +msgstr "" +"以下のコードは parentchild を更新" +"し、newChild を挿入します。" -#: index.docbook:260 +#. Tag: programlisting +#: example_parentchild.xml:225 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: example_parentchild.xml:227 +#, no-c-format +msgid "" +"Well, that's all very well for the case of a generated identifier, but what " +"about assigned identifiers and composite identifiers? This is more " +"difficult, since Hibernate can't use the identifier property to distinguish " +"between a newly instantiated object (with an identifier assigned by the " +"user) and an object loaded in a previous session. In this case, Hibernate " +"will either use the timestamp or version property, or will actually query " +"the second-level cache or, worst case, the database, to see if the row " +"exists." +msgstr "" +"これらは生成された識別子の場合には非常に良いのですが、割り当てられた識別子と" +"複合識別子の場合はどうでしょうか? これはHibernateが、(ユーザにより割り当て" +"られた識別子を持つ)新しくインスタンス化されたオブジェクトと、 以前のSession" +"でロードされたオブジェクトを区別できないため、より難しいです。 この場合、" +"Hibernateはタイムスタンプかバージョンのプロパティのどちらかを使うか、二次" +"キャッシュに問い合わせます。 最悪の場合、行が存在するかどうかデータベースを見" +"ます。" + +#. Tag: title +#: example_parentchild.xml:260 +#, no-c-format msgid "Conclusion" -msgstr "結論" +msgstr "結論" -#: index.docbook:262 -msgid "There is quite a bit to digest here and it might look confusing first time around. However, in practice, it all works out very nicely. Most Hibernate applications use the parent / child pattern in many places." -msgstr "ここではかなりの量を要約したので、最初の頃は混乱しているように思われるかもしれません。 しかし実際は、すべて非常に良く動作します。ほとんどのHibernateアプリケーションでは、多くの場面で親子パターンを使用します。" - -#: index.docbook:267 -msgid "We mentioned an alternative in the first paragraph. None of the above issues exist in the case of <composite-element> mappings, which have exactly the semantics of a parent / child relationship. Unfortunately, there are two big limitations to composite element classes: composite elements may not own collections, and they should not be the child of any entity other than the unique parent." -msgstr "最初の段落で代替方法について触れました。上記のような問題は <composite-element> マッピングの場合は存在せず、 にもかかわらずそれは確かに親子関係のセマンティクスを持ちます。 しかし残念ながら、複合要素クラスには二つの大きな制限があります: 1つは複合要素はコレクションを持つことができないことです。もうひとつは、 ユニークな親ではないエンティティの子供となるべきではないということです" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#. Tag: para +#: example_parentchild.xml:262 +#, no-c-format +msgid "" +"There is quite a bit to digest here and it might look confusing first time " +"around. However, in practice, it all works out very nicely. Most Hibernate " +"applications use the parent / child pattern in many places." +msgstr "" +"ここではかなりの量を要約したので、最初の頃は混乱しているように思われるかもし" +"れません。 しかし実際は、すべて非常に良く動作します。ほとんどのHibernateアプ" +"リケーションでは、多くの場面で親子パターンを使用します。" +#. Tag: para +#: example_parentchild.xml:267 +#, no-c-format +msgid "" +"We mentioned an alternative in the first paragraph. None of the above issues " +"exist in the case of <composite-element> mappings, " +"which have exactly the semantics of a parent / child relationship. " +"Unfortunately, there are two big limitations to composite element classes: " +"composite elements may not own collections, and they should not be the child " +"of any entity other than the unique parent." +msgstr "" +"最初の段落で代替方法について触れました。上記のような問題は <" +"composite-element> マッピングの場合は存在せず、 にもかかわらずそ" +"れは確かに親子関係のセマンティクスを持ちます。 しかし残念ながら、複合要素クラ" +"スには二つの大きな制限があります: 1つは複合要素はコレクションを持つことがで" +"きないことです。もうひとつは、 ユニークな親ではないエンティティの子供となるべ" +"きではないということです" diff --git a/documentation/manual/translations/ja-JP/content/example_weblog.po b/documentation/manual/translations/ja-JP/content/example_weblog.po index d532828d57..e7cdd37789 100644 --- a/documentation/manual/translations/ja-JP/content/example_weblog.po +++ b/documentation/manual/translations/ja-JP/content/example_weblog.po @@ -1,840 +1,484 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: example_weblog.xml:5 +#, no-c-format msgid "Example: Weblog Application" msgstr "例: Weblogアプリケーション" -#: index.docbook:8 +#. Tag: title +#: example_weblog.xml:8 +#, no-c-format msgid "Persistent Classes" msgstr "永続クラス" -#: index.docbook:10 -msgid "The persistent classes represent a weblog, and an item posted in a weblog. They are to be modelled as a standard parent/child relationship, but we will use an ordered bag, instead of a set." -msgstr "永続クラスがウェブログと、ウェブログに掲示された項目を表しています。 それらは通常の親子関係としてモデリングされますが、 setではなく順序を持ったbagを使用することにします。" - -#: index.docbook:16 +#. Tag: para +#: example_weblog.xml:10 +#, no-c-format msgid "" - "" +"The persistent classes represent a weblog, and an item posted in a weblog. " +"They are to be modelled as a standard parent/child relationship, but we will " +"use an ordered bag, instead of a set." msgstr "" - "" +"永続クラスがウェブログと、ウェブログに掲示された項目を表しています。 それらは" +"通常の親子関係としてモデリングされますが、 setではなく順序を持ったbagを使用す" +"ることにします。" -#: index.docbook:18 +#. Tag: programlisting +#: example_weblog.xml:16 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:23 +#. Tag: programlisting +#: example_weblog.xml:18 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: example_weblog.xml:23 +#, no-c-format msgid "Hibernate Mappings" msgstr "Hibernateのマッピング" -#: index.docbook:25 +#. Tag: para +#: example_weblog.xml:25 +#, no-c-format msgid "The XML mappings should now be quite straightforward." msgstr "XMLマッピングは、今ではとても簡単なはずです。" -#: index.docbook:29 +#. Tag: programlisting +#: example_weblog.xml:29 +#, no-c-format msgid "" - "\n" - "\n" - "\n" - "\n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - "]]>" +"\n" +"\n" +"\n" +"\n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:31 +#. Tag: programlisting +#: example_weblog.xml:31 +#, no-c-format msgid "" - "\n" - "\n" - "\n" - "\n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - "]]>" +"\n" +"\n" +"\n" +"\n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:36 +#. Tag: title +#: example_weblog.xml:36 +#, no-c-format msgid "Hibernate Code" msgstr "Hibernateのコード" -#: index.docbook:38 -msgid "The following class demonstrates some of the kinds of things we can do with these classes, using Hibernate." -msgstr "以下のクラスは、 Hibernateでこれらのクラスを使ってできることをいくつか示しています。" - -#: index.docbook:43 +#. Tag: para +#: example_weblog.xml:38 +#, no-c-format msgid "" - " :minDate\"\n" - " );\n" - "\n" - " Calendar cal = Calendar.getInstance();\n" - " cal.roll(Calendar.MONTH, false);\n" - " q.setCalendar(\"minDate\", cal);\n" - " \n" - " result = q.list();\n" - " tx.commit();\n" - " }\n" - " catch (HibernateException he) {\n" - " if (tx!=null) tx.rollback();\n" - " throw he;\n" - " }\n" - " finally {\n" - " session.close();\n" - " }\n" - " return result;\n" - " }\n" - "}]]>" +"The following class demonstrates some of the kinds of things we can do with " +"these classes, using Hibernate." msgstr "" - " :minDate\" \n" - " ); \n" - " \n" - " Calendar cal = Calendar.getInstance(); \n" - " cal.roll(Calendar.MONTH, false); \n" - " q.setCalendar(\"minDate\", cal); \n" - " \n" - " result = q.list(); \n" - " tx.commit(); \n" - " } \n" - " catch (HibernateException he) { \n" - " if (tx!=null) tx.rollback(); \n" - " throw he; \n" - " } \n" - " finally { \n" - " session.close(); \n" - " } \n" - " return result; \n" - " } \n" - "}]]>" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +"以下のクラスは、 Hibernateでこれらのクラスを使ってできることをいくつか示して" +"います。" +#. Tag: programlisting +#: example_weblog.xml:43 +#, no-c-format +msgid "" +" :minDate\"\n" +" );\n" +"\n" +" Calendar cal = Calendar.getInstance();\n" +" cal.roll(Calendar.MONTH, false);\n" +" q.setCalendar(\"minDate\", cal);\n" +" \n" +" result = q.list();\n" +" tx.commit();\n" +" }\n" +" catch (HibernateException he) {\n" +" if (tx!=null) tx.rollback();\n" +" throw he;\n" +" }\n" +" finally {\n" +" session.close();\n" +" }\n" +" return result;\n" +" }\n" +"}]]>" +msgstr "" diff --git a/documentation/manual/translations/ja-JP/content/filters.po b/documentation/manual/translations/ja-JP/content/filters.po index 4807c97171..646b32733c 100644 --- a/documentation/manual/translations/ja-JP/content/filters.po +++ b/documentation/manual/translations/ja-JP/content/filters.po @@ -1,194 +1,286 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: filters.xml:5 +#, no-c-format msgid "Filtering data" msgstr "データのフィルタリング" -#: index.docbook:7 -msgid "Hibernate3 provides an innovative new approach to handling data with \"visibility\" rules. A Hibernate filter is a global, named, parameterized filter that may be enabled or disabled for a particular Hibernate session." -msgstr "Hibernate3では「可視性」ルールに基づいてデータを扱うための画期的な方法を用意しています。 Hibernate filter はグローバルで、名前付きで、パラメータ化されたフィルタです。 これはHibernateセッションごとに有効無効を切り替えられます。" +#. Tag: para +#: filters.xml:7 +#, no-c-format +msgid "" +"Hibernate3 provides an innovative new approach to handling data with " +"\"visibility\" rules. A Hibernate filter is a global, " +"named, parameterized filter that may be enabled or disabled for a particular " +"Hibernate session." +msgstr "" +"Hibernate3では「可視性」ルールに基づいてデータを扱うための画期的な方法を用意" +"しています。 Hibernate filter はグローバルで、名前付き" +"で、パラメータ化されたフィルタです。 これはHibernateセッションごとに有効無効" +"を切り替えられます。" -#: index.docbook:14 +#. Tag: title +#: filters.xml:14 +#, no-c-format msgid "Hibernate filters" msgstr "Hibernateのフィルタ" -#: index.docbook:16 -msgid "Hibernate3 adds the ability to pre-define filter criteria and attach those filters at both a class and a collection level. A filter criteria is the ability to define a restriction clause very similiar to the existing \"where\" attribute available on the class and various collection elements. Except these filter conditions can be parameterized. The application can then make the decision at runtime whether given filters should be enabled and what their parameter values should be. Filters can be used like database views, but parameterized inside the application." -msgstr "Hibernate3はフィルタクライテリアをあらかじめ定義し、 これらのフィルタをクラスやコレクションレベルに加える機能を加えました。 フィルタクライテリアは制約節を定義する機能です。 これらのフィルタ条件はパラメータ化できるということを除き、 クラスやさまざまなコレクション要素で利用可能な「where」句に非常によく似ています。 アプリケーションは、与えられたフィルタを可能にすべきか、 そしてそのパラメータ値を何にすべきかを実行時に決定することができます。 フィルタはデータベースビューのように使用されますが、アプリケーション内ではパラメータ化されます。" - -#: index.docbook:26 -msgid "In order to use filters, they must first be defined and then attached to the appropriate mapping elements. To define a filter, use the <filter-def/> element within a <hibernate-mapping/> element:" -msgstr "フィルタを使うためにはまず、適切なマッピング要素に定義、追加しなくてはなりません。 フィルタを定義するためには、 <hibernate-mapping/> 要素内で <filter-def/> 要素を使用します。:" - -#: index.docbook:32 +#. Tag: para +#: filters.xml:16 +#, no-c-format msgid "" - "\n" - " \n" - "]]>" +"Hibernate3 adds the ability to pre-define filter criteria and attach those " +"filters at both a class and a collection level. A filter criteria is the " +"ability to define a restriction clause very similiar to the existing \"where" +"\" attribute available on the class and various collection elements. Except " +"these filter conditions can be parameterized. The application can then make " +"the decision at runtime whether given filters should be enabled and what " +"their parameter values should be. Filters can be used like database views, " +"but parameterized inside the application." msgstr "" - " \n" - " \n" - "]]>" +"Hibernate3はフィルタクライテリアをあらかじめ定義し、 これらのフィルタをクラス" +"やコレクションレベルに加える機能を加えました。 フィルタクライテリアは制約節を" +"定義する機能です。 これらのフィルタ条件はパラメータ化できるということを除" +"き、 クラスやさまざまなコレクション要素で利用可能な「where」句に非常によく似て" +"います。 アプリケーションは、与えられたフィルタを可能にすべきか、 そしてその" +"パラメータ値を何にすべきかを実行時に決定することができます。 フィルタはデータ" +"ベースビューのように使用されますが、アプリケーション内ではパラメータ化されま" +"す。" -#: index.docbook:34 +#. Tag: para +#: filters.xml:26 +#, no-c-format +msgid "" +"In order to use filters, they must first be defined and then attached to the " +"appropriate mapping elements. To define a filter, use the <" +"filter-def/> element within a <hibernate-mapping/" +"> element:" +msgstr "" +"フィルタを使うためにはまず、適切なマッピング要素に定義、追加しなくてはなりま" +"せん。 フィルタを定義するためには、 <hibernate-mapping/> 要素内で <filter-def/> 要素を使用します。:" + +#. Tag: programlisting +#: filters.xml:32 +#, no-c-format +msgid "" +"\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: filters.xml:34 +#, no-c-format msgid "Then, this filter can be attached to a class:" msgstr "そうしてフィルタはクラスへと結び付けられます。:" -#: index.docbook:38 +#. Tag: programlisting +#: filters.xml:38 +#, no-c-format msgid "" - "\n" - " ...\n" - " \n" - "]]>" +"\n" +" ...\n" +" \n" +"]]>" msgstr "" - " \n" - " ... \n" - " \n" - "]]>" -#: index.docbook:40 +#. Tag: para +#: filters.xml:40 +#, no-c-format msgid "or, to a collection:" msgstr "また、コレクションに対しては次のようになります。:" -#: index.docbook:44 +#. Tag: programlisting +#: filters.xml:44 +#, no-c-format msgid "" - "\n" - " \n" - "]]>" +"\n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - "]]>" -#: index.docbook:46 +#. Tag: para +#: filters.xml:46 +#, no-c-format msgid "or, even to both (or multiples of each) at the same time." msgstr "どちらに対しても(また、それぞれを複数)同時に設定することもできます。" -#: index.docbook:50 -msgid "The methods on Session are: enableFilter(String filterName), getEnabledFilter(String filterName), and disableFilter(String filterName). By default, filters are not enabled for a given session; they must be explcitly enabled through use of the Session.enabledFilter() method, which returns an instance of the Filter interface. Using the simple filter defined above, this would look like:" -msgstr "Session 上のメソッドは enableFilter(String filterName), getEnabledFilter(String filterName), disableFilter(String filterName) です。 デフォルトでは、フィルタは与えられたセッションに対して使用 できませんFilter インスタンスを返り値とする Session.enabledFilter() メソッドを使うことで、 フィルタは明示的に使用可能となります。 上で定義した単純なフィルタの使用は、このようになります。:" +#. Tag: para +#: filters.xml:50 +#, no-c-format +msgid "" +"The methods on Session are: enableFilter(String " +"filterName), getEnabledFilter(String filterName), and disableFilter(String filterName). By " +"default, filters are not enabled for a given session; " +"they must be explcitly enabled through use of the Session." +"enabledFilter() method, which returns an instance of the " +"Filter interface. Using the simple filter defined above, " +"this would look like:" +msgstr "" +"Session 上のメソッドは enableFilter(String " +"filterName), getEnabledFilter(String filterName), disableFilter(String filterName) です。 デフォル" +"トでは、フィルタは与えられたセッションに対して使用 できませんFilter インスタンスを返り値とする " +"Session.enabledFilter() メソッドを使うことで、 フィルタは" +"明示的に使用可能となります。 上で定義した単純なフィルタの使用は、このようにな" +"ります。:" -#: index.docbook:59 -msgid "" -msgstr "" +#. Tag: programlisting +#: filters.xml:59 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:61 -msgid "Note that methods on the org.hibernate.Filter interface do allow the method-chaining common to much of Hibernate." -msgstr "org.hibernate.Filterインターフェイスのメソッドは、 Hibernateの多くに共通しているメソッド連鎖を許していることに注意してください。" +#. Tag: para +#: filters.xml:61 +#, no-c-format +msgid "" +"Note that methods on the org.hibernate.Filter interface do allow the method-" +"chaining common to much of Hibernate." +msgstr "" +"org.hibernate.Filterインターフェイスのメソッドは、 Hibernateの多くに共通して" +"いるメソッド連鎖を許していることに注意してください。" -#: index.docbook:65 -msgid "A full example, using temporal data with an effective record date pattern:" +#. Tag: para +#: filters.xml:65 +#, no-c-format +msgid "" +"A full example, using temporal data with an effective record date pattern:" msgstr "有効なレコードデータパターンを持つ一時データを使った完全な例です:" -#: index.docbook:69 +#. Tag: programlisting +#: filters.xml:69 +#, no-c-format msgid "" - "\n" - " \n" - "\n" - "\n" - "\n" - "...\n" - " \n" - " \n" - " \n" - "...\n" - " \n" - " \n" - "\n" - "\n" - "\n" - "...\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +"\n" +"\n" +"\n" +"...\n" +" \n" +" \n" +" \n" +"...\n" +" \n" +" \n" +"\n" +"\n" +"\n" +"...\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - "... \n" - " \n" - " \n" - " \n" - "... \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "... \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:71 -msgid "Then, in order to ensure that you always get back currently effective records, simply enable the filter on the session prior to retrieving employee data:" -msgstr "常に現在の有効レコードを返却することを保証するために、 単純に、社員データの検索より前にセッション上のフィルタを有効にします。" - -#: index.docbook:76 +#. Tag: para +#: filters.xml:71 +#, no-c-format msgid "" - " :targetSalary\")\n" - " .setLong(\"targetSalary\", new Long(1000000))\n" - " .list();\n" - "]]>" +"Then, in order to ensure that you always get back currently effective " +"records, simply enable the filter on the session prior to retrieving " +"employee data:" msgstr "" - " :targetSalary\") \n" - " .setLong(\"targetSalary\", new Long(1000000)) \n" - " .list(); \n" - "]]>" +"常に現在の有効レコードを返却することを保証するために、 単純に、社員データの検" +"索より前にセッション上のフィルタを有効にします。" -#: index.docbook:78 -msgid "In the HQL above, even though we only explicitly mentioned a salary constraint on the results, because of the enabled filter the query will return only currently active employees who have a salary greater than a million dollars." -msgstr "上記のHQLでは、結果の給料の制約について明示的に触れただけですが、 有効になっているフィルタのおかげで、このクエリは給料が100万ドル以上の現役の社員だけを返します。" - -#: index.docbook:84 -msgid "Note: if you plan on using filters with outer joining (either through HQL or load fetching) be careful of the direction of the condition expression. Its safest to set this up for left outer joining; in general, place the parameter first followed by the column name(s) after the operator." -msgstr "(HQLかロードフェッチで)外部結合を持つフィルタを使うつもりなら、 条件式の方向に注意してください。 これは左外部結合のために設定するのが最も安全です。 一般的に、演算子の後カラム名に続けて最初のパラメータを配置してください。" - -#: index.docbook:91 -msgid "After being defined a filter might be attached to multiple entities and/or collections each with its own condition. That can be tedious when the conditions are the same each time. Thus <filter-def/> allows defining a default condition, either as an attribute or CDATA:" -msgstr "" - -#: index.docbook:98 +#. Tag: programlisting +#: filters.xml:76 +#, no-c-format msgid "" - " xyz\">...\n" - "abc=xyz]]>" +" :" +"targetSalary\")\n" +" .setLong(\"targetSalary\", new Long(1000000))\n" +" .list();\n" +"]]>" msgstr "" -#: index.docbook:100 -msgid "This default condition will then be used whenever the filter is attached to something without specifying a condition. Note that this means you can give a specific condition as part of the attachment of the filter which overrides the default condition in that particular case." +#. Tag: para +#: filters.xml:78 +#, no-c-format +msgid "" +"In the HQL above, even though we only explicitly mentioned a salary " +"constraint on the results, because of the enabled filter the query will " +"return only currently active employees who have a salary greater than a " +"million dollars." +msgstr "" +"上記のHQLでは、結果の給料の制約について明示的に触れただけですが、 有効になっ" +"ているフィルタのおかげで、このクエリは給料が100万ドル以上の現役の社員だけを返" +"します。" + +#. Tag: para +#: filters.xml:84 +#, no-c-format +msgid "" +"Note: if you plan on using filters with outer joining (either through HQL or " +"load fetching) be careful of the direction of the condition expression. Its " +"safest to set this up for left outer joining; in general, place the " +"parameter first followed by the column name(s) after the operator." +msgstr "" +"(HQLかロードフェッチで)外部結合を持つフィルタを使うつもりなら、 条件式の方向" +"に注意してください。 これは左外部結合のために設定するのが最も安全です。 一般" +"的に、演算子の後カラム名に続けて最初のパラメータを配置してください。" + +#. Tag: para +#: filters.xml:91 +#, no-c-format +msgid "" +"After being defined a filter might be attached to multiple entities and/or " +"collections each with its own condition. That can be tedious when the " +"conditions are the same each time. Thus <filter-def/> allows defining a default condition, either as an attribute or " +"CDATA:" +msgstr "translator-credits" + +#. Tag: programlisting +#: filters.xml:98 +#, no-c-format +msgid "" +" xyz\">...\n" +"abc=xyz]]>" msgstr "" -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" - +#. Tag: para +#: filters.xml:100 +#, no-c-format +msgid "" +"This default condition will then be used whenever the filter is attached to " +"something without specifying a condition. Note that this means you can give " +"a specific condition as part of the attachment of the filter which overrides " +"the default condition in that particular case." +msgstr "" diff --git a/documentation/manual/translations/ja-JP/content/inheritance_mapping.po b/documentation/manual/translations/ja-JP/content/inheritance_mapping.po index 5068771996..46f9f1e242 100644 --- a/documentation/manual/translations/ja-JP/content/inheritance_mapping.po +++ b/documentation/manual/translations/ja-JP/content/inheritance_mapping.po @@ -1,642 +1,842 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: inheritance_mapping.xml:5 +#, no-c-format msgid "Inheritance Mapping" msgstr "継承マッピング" -#: index.docbook:8 +#. Tag: title +#: inheritance_mapping.xml:8 +#, no-c-format msgid "The Three Strategies" msgstr "3つの戦略" -#: index.docbook:10 +#. Tag: para +#: inheritance_mapping.xml:10 +#, no-c-format msgid "Hibernate supports the three basic inheritance mapping strategies:" msgstr "Hibernateは3つの基本的な継承のマッピング戦略をサポートします。" -#: index.docbook:16 +#. Tag: para +#: inheritance_mapping.xml:16 +#, no-c-format msgid "table per class hierarchy" -msgstr "クラス階層ごとのテーブル(table-per-class-hierarchy)" +msgstr "クラス階層ごとのテーブル(table-per-class-hierarchy)" -#: index.docbook:21 +#. Tag: para +#: inheritance_mapping.xml:21 +#, fuzzy, no-c-format msgid "table per subclass" -msgstr "サブクラスごとのテーブル(table-per-subclass)" +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"サブクラスごとのテーブル(table-per-subclass)\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"table per subclass" -#: index.docbook:26 +#. Tag: para +#: inheritance_mapping.xml:26 +#, no-c-format msgid "table per concrete class" -msgstr "具象クラスごとのテーブル(table-per-concrete-class)" +msgstr "具象クラスごとのテーブル(table-per-concrete-class)" -#: index.docbook:32 -msgid "In addition, Hibernate supports a fourth, slightly different kind of polymorphism:" -msgstr "加えて4つ目に、Hibernateはわずかに異なる性質を持ったポリモーフィズムをサポートします。" +#. Tag: para +#: inheritance_mapping.xml:32 +#, no-c-format +msgid "" +"In addition, Hibernate supports a fourth, slightly different kind of " +"polymorphism:" +msgstr "" +"加えて4つ目に、Hibernateはわずかに異なる性質を持ったポリモーフィズムをサポー" +"トします。" -#: index.docbook:39 +#. Tag: para +#: inheritance_mapping.xml:39 +#, no-c-format msgid "implicit polymorphism" msgstr "暗黙的ポリモーフィズム" -#: index.docbook:45 -msgid "It is possible to use different mapping strategies for different branches of the same inheritance hierarchy, and then make use of implicit polymorphism to achieve polymorphism across the whole hierarchy. However, Hibernate does not support mixing <subclass>, and <joined-subclass> and <union-subclass> mappings under the same root <class> element. It is possible to mix together the table per hierarchy and table per subclass strategies, under the the same <class> element, by combining the <subclass> and <join> elements (see below)." -msgstr "同一の継承階層の異なるブランチに対して異なるマッピング戦略を使うことができます。 その場合には全体の階層に渡るポリモーフィズムを実現するために暗黙的ポリモーフィズムを使用します。 しかし、Hibernateは同じルート <class> 要素内で <subclass> マッピング、<joined-subclass> マッピング、 <union-subclass> マッピングの同時使用をサポートしていません。 <subclass> 要素と <join> 要素を組み合わせることで、 同一 <class> 要素内での table-per-hierarchy 戦略と table-per-subclass 戦略の同時使用は可能です。次の例を見てください。" - -#: index.docbook:59 -msgid "It is possible to define subclass, union-subclass, and joined-subclass mappings in separate mapping documents, directly beneath hibernate-mapping. This allows you to extend a class hierachy just by adding a new mapping file. You must specify an extends attribute in the subclass mapping, naming a previously mapped superclass. Note: Previously this feature made the ordering of the mapping documents important. Since Hibernate3, the ordering of mapping files does not matter when using the extends keyword. The ordering inside a single mapping file still needs to be defined as superclasses before subclasses." -msgstr "subclass, union-subclassjoined-subclass マッピングを複数のマッピングドキュメントに定義することが出来、 hibernate-mapping の直下に配置します。 これは新しいマッピングファイルを追加するだけで、クラス階層を拡張できるということです。 あらかじめマップしたスーパークラスを指定して、サブクラスマッピングに extends 属性を記述しなければなりません。 注意:この特徴により、以前はマッピング・ドキュメントの順番が重要でした。 Hibernate3からは、extendsキーワードを使う場合、マッピングドキュメントの順番は問題になりません。 1つのマッピングファイル内で順番付けを行うときは、 依然として、サブクラスを定義する前にスーパークラスを定義する必要があります。)" - -#: index.docbook:70 +#. Tag: para +#: inheritance_mapping.xml:45 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " ]]>" +"It is possible to use different mapping strategies for different branches of " +"the same inheritance hierarchy, and then make use of implicit polymorphism " +"to achieve polymorphism across the whole hierarchy. However, Hibernate does " +"not support mixing <subclass>, and <" +"joined-subclass> and <union-subclass> " +"mappings under the same root <class> element. It is " +"possible to mix together the table per hierarchy and table per subclass " +"strategies, under the the same <class> element, by " +"combining the <subclass> and <join> elements (see below)." msgstr "" - "\n" - " \n" - " \n" - " \n" - " ]]>" +"同一の継承階層の異なるブランチに対して異なるマッピング戦略を使うことができま" +"す。 その場合には全体の階層に渡るポリモーフィズムを実現するために暗黙的ポリ" +"モーフィズムを使用します。 しかし、Hibernateは同じルート <" +"class> 要素内で <subclass> マッピング、" +"<joined-subclass> マッピング、 <union-" +"subclass> マッピングの同時使用をサポートしていません。 " +"<subclass> 要素と <join> 要" +"素を組み合わせることで、 同一 <class> 要素内での " +"table-per-hierarchy 戦略と table-per-subclass 戦略の同時使用は可能です。次の" +"例を見てください。" -#: index.docbook:74 +#. Tag: para +#: inheritance_mapping.xml:59 +#, no-c-format +msgid "" +"It is possible to define subclass, union-" +"subclass, and joined-subclass mappings in " +"separate mapping documents, directly beneath hibernate-mapping. This allows you to extend a class hierachy just by adding a new " +"mapping file. You must specify an extends attribute in " +"the subclass mapping, naming a previously mapped superclass. Note: " +"Previously this feature made the ordering of the mapping documents " +"important. Since Hibernate3, the ordering of mapping files does not matter " +"when using the extends keyword. The ordering inside a single mapping file " +"still needs to be defined as superclasses before subclasses." +msgstr "" +"subclass, union-subclass と " +"joined-subclass マッピングを複数のマッピングドキュメントに" +"定義することが出来、 hibernate-mapping の直下に配置しま" +"す。 これは新しいマッピングファイルを追加するだけで、クラス階層を拡張できると" +"いうことです。 あらかじめマップしたスーパークラスを指定して、サブクラスマッピ" +"ングに extends 属性を記述しなければなりません。 注意:この" +"特徴により、以前はマッピング・ドキュメントの順番が重要でした。 Hibernate3から" +"は、extendsキーワードを使う場合、マッピングドキュメントの順番は問題になりませ" +"ん。 1つのマッピングファイル内で順番付けを行うときは、 依然として、サブクラ" +"スを定義する前にスーパークラスを定義する必要があります。)" + +#. Tag: programlisting +#: inheritance_mapping.xml:70 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" ]]>" +msgstr "" + +#. Tag: title +#: inheritance_mapping.xml:74 +#, no-c-format msgid "Table per class hierarchy" -msgstr "クラス階層ごとのテーブル(table-per-class-hierarchy)" +msgstr "クラス階層ごとのテーブル(table-per-class-hierarchy)" -#: index.docbook:76 -msgid "Suppose we have an interface Payment, with implementors CreditCardPayment, CashPayment, ChequePayment. The table per hierarchy mapping would look like:" -msgstr "例えば、インターフェイス Payment と、それを実装した CreditCardPaymentCashPaymentChequePayment があるとします。階層ごとのテーブルマッピングは 以下のようになります。" - -#: index.docbook:83 +#. Tag: para +#: inheritance_mapping.xml:76 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" +"Suppose we have an interface Payment, with implementors " +"CreditCardPayment, CashPayment, " +"ChequePayment. The table per hierarchy mapping would look " +"like:" msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" +"例えば、インターフェイス Payment と、それを実装した " +"CreditCardPaymentCashPayment、 " +"ChequePayment があるとします。階層ごとのテーブルマッピング" +"は 以下のようになります。" -#: index.docbook:85 -msgid "Exactly one table is required. There is one big limitation of this mapping strategy: columns declared by the subclasses, such as CCTYPE, may not have NOT NULL constraints." -msgstr "ちょうど一つのテーブルが必要です。 このマッピング戦略には一つ大きな制限があります。 CCTYPE のような、サブクラスで宣言されたカラムは NOT NULL 制約を持てません。" +#. Tag: programlisting +#: inheritance_mapping.xml:83 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" ...\n" +" \n" +"]]>" +msgstr "" -#: index.docbook:94 +#. Tag: para +#: inheritance_mapping.xml:85 +#, no-c-format +msgid "" +"Exactly one table is required. There is one big limitation of this mapping " +"strategy: columns declared by the subclasses, such as CCTYPE, may not have NOT NULL constraints." +msgstr "" +"ちょうど一つのテーブルが必要です。 このマッピング戦略には一つ大きな制限があり" +"ます。 CCTYPE のような、サブクラスで宣言されたカラムは " +"NOT NULL 制約を持てません。" + +#. Tag: title +#: inheritance_mapping.xml:94 +#, no-c-format msgid "Table per subclass" -msgstr "サブクラスごとのテーブル(table-per-subclass)" +msgstr "サブクラスごとのテーブル(table-per-subclass)" -#: index.docbook:96 +#. Tag: para +#: inheritance_mapping.xml:96 +#, no-c-format msgid "A table per subclass mapping would look like:" msgstr "table-per-subclass マッピングは以下のようになります。" -#: index.docbook:100 +#. Tag: programlisting +#: inheritance_mapping.xml:100 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" -#: index.docbook:102 -msgid "Four tables are required. The three subclass tables have primary key associations to the superclass table (so the relational model is actually a one-to-one association)." -msgstr "このマッピングには4つのテーブルが必要です。3つのサブクラステーブルは スーパークラステーブルとの関連を示す主キーを持っています (実際、関係モデル上は一対一関連です)。" +#. Tag: para +#: inheritance_mapping.xml:102 +#, no-c-format +msgid "" +"Four tables are required. The three subclass tables have primary key " +"associations to the superclass table (so the relational model is actually a " +"one-to-one association)." +msgstr "" +"このマッピングには4つのテーブルが必要です。3つのサブクラステーブルは スーパー" +"クラステーブルとの関連を示す主キーを持っています (実際、関係モデル上は一対一" +"関連です)。" -#: index.docbook:111 +#. Tag: title +#: inheritance_mapping.xml:111 +#, no-c-format msgid "Table per subclass, using a discriminator" msgstr "弁別子を用いた table-per-subclass" -#: index.docbook:113 -msgid "Note that Hibernate's implementation of table per subclass requires no discriminator column. Other object/relational mappers use a different implementation of table per subclass which requires a type discriminator column in the superclass table. The approach taken by Hibernate is much more difficult to implement but arguably more correct from a relational point of view. If you would like to use a discriminator column with the table per subclass strategy, you may combine the use of <subclass> and <join>, as follow:" -msgstr "Hibernateの table-per-subclass 実装は、discriminatorカラムを必要としないことを覚えておいてください。 Hibernate以外のO/Rマッパーは、table-per-subclass に異なる実装を用います。 それは、スーパークラスのテーブルにタイプdiscriminatorカラムを必要とします。 このアプローチは実装が困難になりますが、関係の視点から見ると、より正確なものです。 table-per-subclass 戦略でdiscriminatorカラムを使いたければ、 <subclass><join> を以下のように組み合わせて使ってください。" - -#: index.docbook:125 +#. Tag: para +#: inheritance_mapping.xml:113 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - "]]>" +"Note that Hibernate's implementation of table per subclass requires no " +"discriminator column. Other object/relational mappers use a different " +"implementation of table per subclass which requires a type discriminator " +"column in the superclass table. The approach taken by Hibernate is much more " +"difficult to implement but arguably more correct from a relational point of " +"view. If you would like to use a discriminator column with the table per " +"subclass strategy, you may combine the use of <subclass> and <join>, as follow:" msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - "]]>" +"Hibernateの table-per-subclass 実装は、discriminatorカラムを必要としないこと" +"を覚えておいてください。 Hibernate以外のO/Rマッパーは、table-per-subclass に" +"異なる実装を用います。 それは、スーパークラスのテーブルにタイプdiscriminator" +"カラムを必要とします。 このアプローチは実装が困難になりますが、関係の視点から" +"見ると、より正確なものです。 table-per-subclass 戦略でdiscriminatorカラムを使" +"いたければ、 <subclass><join> を以下のように組み合わせて使ってください。" -#: index.docbook:127 -msgid "The optional fetch=\"select\" declaration tells Hibernate not to fetch the ChequePayment subclass data using an outer join when querying the superclass." -msgstr "オプションの fetch=\"select\" 宣言は、 スーパークラスのクエリ実行時に外部結合を使って、 サブクラスの ChequePayment データを取得しないように指定するためのものです。" +#. Tag: programlisting +#: inheritance_mapping.xml:125 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +"]]>" +msgstr "" -#: index.docbook:136 +#. Tag: para +#: inheritance_mapping.xml:127 +#, no-c-format +msgid "" +"The optional fetch=\"select\" declaration tells Hibernate " +"not to fetch the ChequePayment subclass data using an " +"outer join when querying the superclass." +msgstr "" +"オプションの fetch=\"select\" 宣言は、 スーパークラスのク" +"エリ実行時に外部結合を使って、 サブクラスの ChequePayment " +"データを取得しないように指定するためのものです。" + +#. Tag: title +#: inheritance_mapping.xml:136 +#, no-c-format msgid "Mixing table per class hierarchy with table per subclass" msgstr "table-per-subclass と table-per-class-hierarchy の混合" -#: index.docbook:138 -msgid "You may even mix the table per hierarchy and table per subclass strategies using this approach:" -msgstr "このアプローチを使用すると、table-per-hierarchy と table-per-subclass 戦略を 組み合わせる事も可能です。" - -#: index.docbook:143 +#. Tag: para +#: inheritance_mapping.xml:138 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" +"You may even mix the table per hierarchy and table per subclass strategies " +"using this approach:" msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" +"このアプローチを使用すると、table-per-hierarchy と table-per-subclass 戦略を " +"組み合わせる事も可能です。" -#: index.docbook:145 -msgid "For any of these mapping strategies, a polymorphic association to the root Payment class is mapped using <many-to-one>." -msgstr "いずれのマッピング戦略であっても、ルートである Payment クラスへの ポリモーフィックな関連は <many-to-one> を使ってマッピングします。" +#. Tag: programlisting +#: inheritance_mapping.xml:143 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" ...\n" +" \n" +"]]>" +msgstr "" -#: index.docbook:151 -msgid "]]>" -msgstr "]]>" +#. Tag: para +#: inheritance_mapping.xml:145 +#, no-c-format +msgid "" +"For any of these mapping strategies, a polymorphic association to the root " +"Payment class is mapped using <many-to-one>" +"." +msgstr "" +"いずれのマッピング戦略であっても、ルートである Payment ク" +"ラスへの ポリモーフィックな関連は <many-to-one> を" +"使ってマッピングします。" -#: index.docbook:156 +#. Tag: programlisting +#: inheritance_mapping.xml:151 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: title +#: inheritance_mapping.xml:156 +#, no-c-format msgid "Table per concrete class" -msgstr "具象クラスごとのテーブル(table-per-concrete-class)" +msgstr "具象クラスごとのテーブル(table-per-concrete-class)" -#: index.docbook:158 -msgid "There are two ways we could go about mapping the table per concrete class strategy. The first is to use <union-subclass>." -msgstr "table-per-concrete-class 戦略のマッピングに対するアプローチは、2つあります。 1つ目は <union-subclass> を利用する方法です。" - -#: index.docbook:163 +#. Tag: para +#: inheritance_mapping.xml:158 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" +"There are two ways we could go about mapping the table per concrete class " +"strategy. The first is to use <union-subclass>." msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" +"table-per-concrete-class 戦略のマッピングに対するアプローチは、2つあります。 " +"1つ目は <union-subclass> を利用する方法です。" -#: index.docbook:165 -msgid "Three tables are involved for the subclasses. Each table defines columns for all properties of the class, including inherited properties." -msgstr "サブクラスごとに3つのテーブルが必要です。それぞれのテーブルは、継承プロパティを含んだ、 クラスの全てのプロパティに対するカラムを定義します。" +#. Tag: programlisting +#: inheritance_mapping.xml:163 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" ...\n" +" \n" +"]]>" +msgstr "" -#: index.docbook:170 -msgid "The limitation of this approach is that if a property is mapped on the superclass, the column name must be the same on all subclass tables. (We might relax this in a future release of Hibernate.) The identity generator strategy is not allowed in union subclass inheritance, indeed the primary key seed has to be shared accross all unioned subclasses of a hierarchy." -msgstr "このアプローチには制限があります。 それは、プロパティがスーパークラスにマッピングされていた場合、 全てのサブクラスにおいてカラム名が同じでなければならないというものです。 (Hibernateの今後のリリースで緩和されるかもしれません)。 <union-subclass> を使った table-per-concrete-class 戦略では識別子生成戦略を使用できません。 主キーを生成するためのシードは、全ての union subclass の階層内で共有する必要があるからです。" +#. Tag: para +#: inheritance_mapping.xml:165 +#, no-c-format +msgid "" +"Three tables are involved for the subclasses. Each table defines columns for " +"all properties of the class, including inherited properties." +msgstr "" +"サブクラスごとに3つのテーブルが必要です。それぞれのテーブルは、継承プロパティ" +"を含んだ、 クラスの全てのプロパティに対するカラムを定義します。" -#: index.docbook:179 -msgid "If your superclass is abstract, map it with abstract=\"true\". Of course, if it is not abstract, an additional table (defaults to PAYMENT in the example above) is needed to hold instances of the superclass." -msgstr "もしスーパークラスが抽象クラスなら、abstract=\"true\"とマッピングします。 もちろん、スーパークラスが抽象クラスでないなら、スーパークラスのインスタンスを 保持するためのテーブルの追加が必要となります(上の例でのデフォルトは PAYMENT )。" +#. Tag: para +#: inheritance_mapping.xml:170 +#, no-c-format +msgid "" +"The limitation of this approach is that if a property is mapped on the " +"superclass, the column name must be the same on all subclass tables. (We " +"might relax this in a future release of Hibernate.) The identity generator " +"strategy is not allowed in union subclass inheritance, indeed the primary " +"key seed has to be shared accross all unioned subclasses of a hierarchy." +msgstr "" +"このアプローチには制限があります。 それは、プロパティがスーパークラスにマッピ" +"ングされていた場合、 全てのサブクラスにおいてカラム名が同じでなければならない" +"というものです。 (Hibernateの今後のリリースで緩和されるかもしれません)。 " +"<union-subclass> を使った table-per-concrete-class 戦略では識別子生成戦" +"略を使用できません。 主キーを生成するためのシードは、全ての union subclass の" +"階層内で共有する必要があるからです。" -#: index.docbook:189 +#. Tag: para +#: inheritance_mapping.xml:179 +#, no-c-format +msgid "" +"If your superclass is abstract, map it with abstract=\"true\". Of course, if it is not abstract, an additional table (defaults to " +"PAYMENT in the example above) is needed to hold instances " +"of the superclass." +msgstr "" +"もしスーパークラスが抽象クラスなら、abstract=\"true\"と" +"マッピングします。 もちろん、スーパークラスが抽象クラスでないなら、スーパーク" +"ラスのインスタンスを 保持するためのテーブルの追加が必要となります(上の例での" +"デフォルトは PAYMENT )。" + +#. Tag: title +#: inheritance_mapping.xml:189 +#, no-c-format msgid "Table per concrete class, using implicit polymorphism" msgstr "暗黙的ポリモーフィズムを用いた table-per-concrete-class" -#: index.docbook:191 +#. Tag: para +#: inheritance_mapping.xml:191 +#, no-c-format msgid "An alternative approach is to make use of implicit polymorphism:" msgstr "もう一つのアプローチは暗黙的ポリモーフィズムの使用です。" -#: index.docbook:195 +#. Tag: programlisting +#: inheritance_mapping.xml:195 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - "]]>" -#: index.docbook:197 -msgid "Notice that nowhere do we mention the Payment interface explicitly. Also notice that properties of Payment are mapped in each of the subclasses. If you want to avoid duplication, consider using XML entities (e.g. [ <!ENTITY allproperties SYSTEM \"allproperties.xml\"> ] in the DOCTYPE declartion and &allproperties; in the mapping)." -msgstr "Payment インターフェイスがどこにも明示的に示されていないことに注意してください。 そして、Payment プロパティがそれぞれのサブクラスにマッピングされていることにも注意してください。 もし重複を避けたいのであれば、XMLエンティティの利用を考えてください。 (例: DOCTYPE 宣言における [ <!ENTITY allproperties SYSTEM \"allproperties.xml\"> ] と、マッピングにおける &allproperties;)" - -#: index.docbook:207 -msgid "The disadvantage of this approach is that Hibernate does not generate SQL UNIONs when performing polymorphic queries." -msgstr "このアプローチの欠点は、Hibernateがポリモーフィックなクエリの実行時にSQL UNION を生成しない点です。" - -#: index.docbook:212 -msgid "For this mapping strategy, a polymorphic association to Payment is usually mapped using <any>." -msgstr "このマッピング戦略に対しては、Payment へのポリモーフィックな関連は 通常、<any> を使ってマッピングされます。" - -#: index.docbook:217 +#. Tag: para +#: inheritance_mapping.xml:197 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"Notice that nowhere do we mention the Payment interface " +"explicitly. Also notice that properties of Payment are " +"mapped in each of the subclasses. If you want to avoid duplication, consider " +"using XML entities (e.g. [ <!ENTITY allproperties SYSTEM " +"\"allproperties.xml\"> ] in the DOCTYPE " +"declartion and &allproperties; in the mapping)." msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"Payment インターフェイスがどこにも明示的に示されていないこ" +"とに注意してください。 そして、Payment プロパティがそれぞ" +"れのサブクラスにマッピングされていることにも注意してください。 もし重複を避け" +"たいのであれば、XMLエンティティの利用を考えてください。 (例: " +"DOCTYPE 宣言における [ <!ENTITY allproperties " +"SYSTEM \"allproperties.xml\"> ] と、マッピングにおける " +"&allproperties;)" -#: index.docbook:222 +#. Tag: para +#: inheritance_mapping.xml:207 +#, no-c-format +msgid "" +"The disadvantage of this approach is that Hibernate does not generate SQL " +"UNIONs when performing polymorphic queries." +msgstr "" +"このアプローチの欠点は、Hibernateがポリモーフィックなクエリの実行時にSQL " +"UNION を生成しない点です。" + +#. Tag: para +#: inheritance_mapping.xml:212 +#, no-c-format +msgid "" +"For this mapping strategy, a polymorphic association to Payment is usually mapped using <any>." +msgstr "" +"このマッピング戦略に対しては、Payment へのポリモーフィック" +"な関連は 通常、<any> を使ってマッピングされます。" + +#. Tag: programlisting +#: inheritance_mapping.xml:217 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: title +#: inheritance_mapping.xml:222 +#, no-c-format msgid "Mixing implicit polymorphism with other inheritance mappings" msgstr "他の継承マッピングと暗黙的ポリモーフィズムの組み合わせ" -#: index.docbook:224 -msgid "There is one further thing to notice about this mapping. Since the subclasses are each mapped in their own <class> element (and since Payment is just an interface), each of the subclasses could easily be part of another inheritance hierarchy! (And you can still use polymorphic queries against the Payment interface.)" -msgstr "このマッピングについての更なる注意点があります。 サブクラスが自身を <class> 要素としてマッピングしているので、 (かつ Payment は単なるインターフェイスなので)、 それぞれのサブクラスは簡単にその他の継承階層の一部となります。 (しかも、今までどおり Payment インターフェイスに対するポリモーフィックなクエリ を使用することができます)" - -#: index.docbook:232 +#. Tag: para +#: inheritance_mapping.xml:224 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" +"There is one further thing to notice about this mapping. Since the " +"subclasses are each mapped in their own <class> " +"element (and since Payment is just an interface), each of " +"the subclasses could easily be part of another inheritance hierarchy! (And " +"you can still use polymorphic queries against the Payment " +"interface.)" msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - "\n" - "\n" - "\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" +"このマッピングについての更なる注意点があります。 サブクラスが自身を " +"<class> 要素としてマッピングしているので、 (かつ " +"Payment は単なるインターフェイスなので)、 それぞれのサブ" +"クラスは簡単にその他の継承階層の一部となります。 (しかも、今までどおり " +"Payment インターフェイスに対するポリモーフィックなクエリ " +"を使用することができます)" -#: index.docbook:234 -msgid "Once again, we don't mention Payment explicitly. If we execute a query against the Payment interface - for example, from Payment - Hibernate automatically returns instances of CreditCardPayment (and its subclasses, since they also implement Payment), CashPayment and ChequePayment but not instances of NonelectronicTransaction." -msgstr "もう一度述べますが、Payment は明示的に定義されません。 もし、Payment インターフェイスに対してクエリを実行するなら (例えば from Payment 節を使って)、 Hibernateは自動的に CreditCardPayment (とCreditCardPaymentのサブクラス、Payment の実装であるため)、 および、CashPaymentChequePayment のインスタンスを返します。 NonelectronicTransaction インスタンスは返しません。" +#. Tag: programlisting +#: inheritance_mapping.xml:232 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +"\n" +"\n" +"\n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +"]]>" +msgstr "" -#: index.docbook:249 +#. Tag: para +#: inheritance_mapping.xml:234 +#, no-c-format +msgid "" +"Once again, we don't mention Payment explicitly. If we " +"execute a query against the Payment interface - for " +"example, from Payment - Hibernate automatically returns " +"instances of CreditCardPayment (and its subclasses, since " +"they also implement Payment), CashPayment and ChequePayment but not instances of " +"NonelectronicTransaction." +msgstr "" +"もう一度述べますが、Payment は明示的に定義されません。 も" +"し、Payment インターフェイスに対してクエリを実行するなら " +"(例えば from Payment 節を使って)、 Hibernateは自動的に " +"CreditCardPayment (とCreditCardPaymentのサブクラス、" +"Payment の実装であるため)、 および、" +"CashPaymentChequePayment のインスタ" +"ンスを返します。 NonelectronicTransaction インスタンスは返" +"しません。" + +#. Tag: title +#: inheritance_mapping.xml:249 +#, no-c-format msgid "Limitations" -msgstr "制限" +msgstr "制限" -#: index.docbook:251 -msgid "There are certain limitations to the \"implicit polymorphism\" approach to the table per concrete-class mapping strategy. There are somewhat less restrictive limitations to <union-subclass> mappings." -msgstr "table-per-concrete-class マッピング戦略への「暗黙的ポリモーフィズム」アプローチには いくつかの制限があります。<union-subclass> マッピングに対しても 少し弱めの制限があります。" +#. Tag: para +#: inheritance_mapping.xml:251 +#, no-c-format +msgid "" +"There are certain limitations to the \"implicit polymorphism\" approach to " +"the table per concrete-class mapping strategy. There are somewhat less " +"restrictive limitations to <union-subclass> " +"mappings." +msgstr "" +"table-per-concrete-class マッピング戦略への「暗黙的ポリモーフィズム」アプロー" +"チには いくつかの制限があります。<union-subclass> " +"マッピングに対しても 少し弱めの制限があります。" -#: index.docbook:258 -msgid "The following table shows the limitations of table per concrete-class mappings, and of implicit polymorphism, in Hibernate." -msgstr "次のテーブルに、Hibernateにおけるtable-per-concrete-classマッピングの 制限や暗黙的ポリモーフィズムの制限を示します。" +#. Tag: para +#: inheritance_mapping.xml:258 +#, no-c-format +msgid "" +"The following table shows the limitations of table per concrete-class " +"mappings, and of implicit polymorphism, in Hibernate." +msgstr "" +"次のテーブルに、Hibernateにおけるtable-per-concrete-classマッピングの 制限や" +"暗黙的ポリモーフィズムの制限を示します。" -#: index.docbook:264 +#. Tag: title +#: inheritance_mapping.xml:264 +#, no-c-format msgid "Features of inheritance mappings" msgstr "継承マッピングの機能" -#: index.docbook:276 +#. Tag: entry +#: inheritance_mapping.xml:276 +#, no-c-format msgid "Inheritance strategy" msgstr "継承戦略" -#: index.docbook:277 +#. Tag: entry +#: inheritance_mapping.xml:277 +#, no-c-format msgid "Polymorphic many-to-one" msgstr "多対一のポリモーフィズム" -#: index.docbook:278 +#. Tag: entry +#: inheritance_mapping.xml:278 +#, no-c-format msgid "Polymorphic one-to-one" msgstr "一対一のポリモーフィズム" -#: index.docbook:279 +#. Tag: entry +#: inheritance_mapping.xml:279 +#, no-c-format msgid "Polymorphic one-to-many" msgstr "一対多のポリモーフィズム" -#: index.docbook:280 +#. Tag: entry +#: inheritance_mapping.xml:280 +#, no-c-format msgid "Polymorphic many-to-many" msgstr "多対多のポリモーフィズム" -#: index.docbook:281 +#. Tag: entry +#: inheritance_mapping.xml:281 +#, no-c-format msgid "Polymorphic load()/get()" -msgstr "ポリモーフィズムを使ったload()/get()" +msgstr "" -#: index.docbook:282 +#. Tag: entry +#: inheritance_mapping.xml:282 +#, no-c-format msgid "Polymorphic queries" msgstr "ポリモーフィズムを使ったクエリ" -#: index.docbook:283 +#. Tag: entry +#: inheritance_mapping.xml:283 +#, no-c-format msgid "Polymorphic joins" msgstr "ポリモーフィズムを使った結合" -#: index.docbook:284 +#. Tag: entry +#: inheritance_mapping.xml:284 +#, no-c-format msgid "Outer join fetching" msgstr "外部結合によるフェッチ" -#: index.docbook:289 +#. Tag: entry +#: inheritance_mapping.xml:289 +#, no-c-format msgid "table per class-hierarchy" msgstr "table per class-hierarchy" -#: index.docbook:290, index.docbook:301, index.docbook:312 +#. Tag: literal +#: inheritance_mapping.xml:290 inheritance_mapping.xml:301 +#: inheritance_mapping.xml:312 +#, no-c-format msgid "<many-to-one>" msgstr "<many-to-one>" -#: index.docbook:291, index.docbook:302, index.docbook:313 +#. Tag: literal +#: inheritance_mapping.xml:291 inheritance_mapping.xml:302 +#: inheritance_mapping.xml:313 +#, no-c-format msgid "<one-to-one>" msgstr "<one-to-one>" -#: index.docbook:292, index.docbook:303 +#. Tag: literal +#: inheritance_mapping.xml:292 inheritance_mapping.xml:303 +#, no-c-format msgid "<one-to-many>" msgstr "<one-to-many>" -#: index.docbook:293, index.docbook:304, index.docbook:315 +#. Tag: literal +#: inheritance_mapping.xml:293 inheritance_mapping.xml:304 +#: inheritance_mapping.xml:315 +#, no-c-format msgid "<many-to-many>" msgstr "<many-to-many>" -#: index.docbook:294, index.docbook:305, index.docbook:316 +#. Tag: literal +#: inheritance_mapping.xml:294 inheritance_mapping.xml:305 +#: inheritance_mapping.xml:316 +#, no-c-format msgid "s.get(Payment.class, id)" msgstr "s.get(Payment.class, id)" -#: index.docbook:295, index.docbook:306, index.docbook:317, index.docbook:328 +#. Tag: literal +#: inheritance_mapping.xml:295 inheritance_mapping.xml:306 +#: inheritance_mapping.xml:317 inheritance_mapping.xml:328 +#, no-c-format msgid "from Payment p" msgstr "from Payment p" -#: index.docbook:296, index.docbook:307, index.docbook:318 +#. Tag: literal +#: inheritance_mapping.xml:296 inheritance_mapping.xml:307 +#: inheritance_mapping.xml:318 +#, no-c-format msgid "from Order o join o.payment p" msgstr "from Order o join o.payment p" -#: index.docbook:297, index.docbook:308, index.docbook:319 +#. Tag: emphasis +#: inheritance_mapping.xml:297 inheritance_mapping.xml:308 +#: inheritance_mapping.xml:319 +#, no-c-format msgid "supported" msgstr "サポート" -#: index.docbook:300 +#. Tag: entry +#: inheritance_mapping.xml:300 +#, fuzzy, no-c-format msgid "table per subclass" -msgstr "table per subclass" +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"サブクラスごとのテーブル(table-per-subclass)\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"table per subclass" -#: index.docbook:311 +#. Tag: entry +#: inheritance_mapping.xml:311 +#, no-c-format msgid "table per concrete-class (union-subclass)" msgstr "table per concrete-class (union-subclass)" -#: index.docbook:314 -msgid "<one-to-many> (for inverse=\"true\" only)" -msgstr "<one-to-many> (for inverse=\"true\" only)" +#. Tag: entry +#: inheritance_mapping.xml:314 +#, no-c-format +msgid "" +"<one-to-many> (for inverse=\"true\" only)" +msgstr "" -#: index.docbook:322 +#. Tag: entry +#: inheritance_mapping.xml:322 +#, no-c-format msgid "table per concrete class (implicit polymorphism)" msgstr "table per concrete class (implicit polymorphism)" -#: index.docbook:323 +#. Tag: literal +#: inheritance_mapping.xml:323 +#, no-c-format msgid "<any>" msgstr "<any>" -#: index.docbook:324, index.docbook:325, index.docbook:329, index.docbook:330 +#. Tag: emphasis +#: inheritance_mapping.xml:324 inheritance_mapping.xml:325 +#: inheritance_mapping.xml:329 inheritance_mapping.xml:330 +#, no-c-format msgid "not supported" msgstr "サポートしていません" -#: index.docbook:326 +#. Tag: literal +#: inheritance_mapping.xml:326 +#, no-c-format msgid "<many-to-any>" msgstr "<many-to-any>" -#: index.docbook:327 -msgid "s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()" -msgstr "s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()" +#. Tag: literal +#: inheritance_mapping.xml:327 +#, no-c-format +msgid "" +"s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()" +msgstr "" +"s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()" -msgid "ROLES_OF_TRANSLATORS" -msgstr "" +#~ msgid "load()/get()" +#~ msgstr "load()/get()" -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#~ msgid "Polymorphic " +#~ msgstr "ポリモーフィズムを使った" +#~ msgid "inverse=\"true\"" +#~ msgstr "inverse=\"true\"" + +#~ msgid " (for only)" +#~ msgstr " (for only)" diff --git a/documentation/manual/translations/ja-JP/content/performance.po b/documentation/manual/translations/ja-JP/content/performance.po index 045a0edabe..5d0b737a04 100644 --- a/documentation/manual/translations/ja-JP/content/performance.po +++ b/documentation/manual/translations/ja-JP/content/performance.po @@ -1,1224 +1,2553 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: performance.xml:5 +#, no-c-format msgid "Improving performance" msgstr "パフォーマンスの改善" -#: index.docbook:8 +#. Tag: title +#: performance.xml:8 +#, no-c-format msgid "Fetching strategies" msgstr "フェッチ戦略" -#: index.docbook:10 -msgid "A fetching strategy is the strategy Hibernate will use for retrieving associated objects if the application needs to navigate the association. Fetch strategies may be declared in the O/R mapping metadata, or over-ridden by a particular HQL or Criteria query." -msgstr "フェッチ戦略 は、アプリケーションが関連をナビゲートする必要がある ときに、Hibernateが関連オブジェクトを復元するために使用する戦略です。フェッチ戦略はO/Rマッピングの メタデータに宣言するか、特定のHQL、 Criteria クエリでオーバーライドします。" +#. Tag: para +#: performance.xml:10 +#, no-c-format +msgid "" +"A fetching strategy is the strategy Hibernate will use " +"for retrieving associated objects if the application needs to navigate the " +"association. Fetch strategies may be declared in the O/R mapping metadata, " +"or over-ridden by a particular HQL or Criteria query." +msgstr "" +"フェッチ戦略 は、アプリケーションが関連をナビゲートする" +"必要がある ときに、Hibernateが関連オブジェクトを復元するために使用する戦略で" +"す。フェッチ戦略はO/Rマッピングの メタデータに宣言するか、特定のHQL、 " +"Criteria クエリでオーバーライドします。" -#: index.docbook:17 +#. Tag: para +#: performance.xml:17 +#, no-c-format msgid "Hibernate3 defines the following fetching strategies:" msgstr "Hibernate3は次に示すフェッチ戦略を定義しています。" -#: index.docbook:23 -msgid "Join fetching - Hibernate retrieves the associated instance or collection in the same SELECT, using an OUTER JOIN." -msgstr "結合フェッチ - Hibernateは OUTER JOIN を使って、 関連するインスタンスやコレクションを1つの SELECT で復元します。" +#. Tag: para +#: performance.xml:23 +#, no-c-format +msgid "" +"Join fetching - Hibernate retrieves the associated " +"instance or collection in the same SELECT, using an " +"OUTER JOIN." +msgstr "" +"結合フェッチ - Hibernateは OUTER JOIN を使って、 関連するインスタンスやコレクションを1つの " +"SELECT で復元します。" -#: index.docbook:30 -msgid "Select fetching - a second SELECT is used to retrieve the associated entity or collection. Unless you explicitly disable lazy fetching by specifying lazy=\"false\", this second select will only be executed when you actually access the association." -msgstr "セレクトフェッチ - 2回目の SELECT で関連するエンティティやコレクションを復元します。 lazy=\"false\" で明示的に遅延フェッチを無効にしなければ、この2回目のselectは実際に 関連にアクセスしたときのみ実行されるでしょう。" +#. Tag: para +#: performance.xml:30 +#, no-c-format +msgid "" +"Select fetching - a second SELECT is " +"used to retrieve the associated entity or collection. Unless you explicitly " +"disable lazy fetching by specifying lazy=\"false\", this " +"second select will only be executed when you actually access the association." +msgstr "" +"セレクトフェッチ - 2回目の SELECT で" +"関連するエンティティやコレクションを復元します。 lazy=\"false\" で明示的に遅延フェッチを無効にしなければ、この2回目のselectは実際に " +"関連にアクセスしたときのみ実行されるでしょう。" -#: index.docbook:39 -msgid "Subselect fetching - a second SELECT is used to retrieve the associated collections for all entities retrieved in a previous query or fetch. Unless you explicitly disable lazy fetching by specifying lazy=\"false\", this second select will only be executed when you actually access the association." -msgstr "サブセレクトフェッチ - 2回目の SELECT で、直前のクエリやフェッチで復元したすべての要素に関連するコレクションを 復元します。 lazy=\"false\" で明示的に遅延フェッチを無効にしなければ、この2回目のselectは実際に 関連にアクセスしたときのみ実行されるでしょう。" +#. Tag: para +#: performance.xml:39 +#, no-c-format +msgid "" +"Subselect fetching - a second SELECT " +"is used to retrieve the associated collections for all entities retrieved in " +"a previous query or fetch. Unless you explicitly disable lazy fetching by " +"specifying lazy=\"false\", this second select will only " +"be executed when you actually access the association." +msgstr "" +"サブセレクトフェッチ - 2回目の SELECT で、直前のクエリやフェッチで復元したすべての要素に関連するコレクショ" +"ンを 復元します。 lazy=\"false\" で明示的に遅延フェッチを" +"無効にしなければ、この2回目のselectは実際に 関連にアクセスしたときのみ実行さ" +"れるでしょう。" -#: index.docbook:48 -msgid "Batch fetching - an optimization strategy for select fetching - Hibernate retrieves a batch of entity instances or collections in a single SELECT, by specifying a list of primary keys or foreign keys." -msgstr "バッチフェッチ - セレクトフェッチのための最適化された戦略 - Hibernateはエンティティのインスタンスやコレクションの一群を1回の SELECT で復元します。これは主キーや外部キーのリストを指定することに により行います。" +#. Tag: para +#: performance.xml:48 +#, no-c-format +msgid "" +"Batch fetching - an optimization strategy for select " +"fetching - Hibernate retrieves a batch of entity instances or collections in " +"a single SELECT, by specifying a list of primary keys or " +"foreign keys." +msgstr "" +"バッチフェッチ - セレクトフェッチのための最適化された戦" +"略 - Hibernateはエンティティのインスタンスやコレクションの一群を1回の " +"SELECT で復元します。これは主キーや外部キーのリストを指定" +"することに により行います。" -#: index.docbook:57 +#. Tag: para +#: performance.xml:57 +#, no-c-format msgid "Hibernate also distinguishes between:" msgstr "Hibernateは次に示す戦略とも区別をします。" -#: index.docbook:63 -msgid "Immediate fetching - an association, collection or attribute is fetched immediately, when the owner is loaded." -msgstr "即時フェッチ - 所有者のオブジェクトがロードされたときに、 関連、コレクションは即時にフェッチされます。" +#. Tag: para +#: performance.xml:63 +#, no-c-format +msgid "" +"Immediate fetching - an association, collection or " +"attribute is fetched immediately, when the owner is loaded." +msgstr "" +"即時フェッチ - 所有者のオブジェクトがロードされたとき" +"に、 関連、コレクションは即時にフェッチされます。" -#: index.docbook:69 -msgid "Lazy collection fetching - a collection is fetched when the application invokes an operation upon that collection. (This is the default for collections.)" -msgstr "遅延コレクションフェッチ - アプリケーションがコレクションに 対して操作を行ったときにコレクションをフェッチします。 (これはコレクションに対するデフォルトの動作です)" +#. Tag: para +#: performance.xml:69 +#, no-c-format +msgid "" +"Lazy collection fetching - a collection is fetched when " +"the application invokes an operation upon that collection. (This is the " +"default for collections.)" +msgstr "" +"遅延コレクションフェッチ - アプリケーションがコレクショ" +"ンに 対して操作を行ったときにコレクションをフェッチします。 (これはコレクショ" +"ンに対するデフォルトの動作です)" -#: index.docbook:76 -msgid "\"Extra-lazy\" collection fetching - individual elements of the collection are accessed from the database as needed. Hibernate tries not to fetch the whole collection into memory unless absolutely needed (suitable for very large collections)" -msgstr "\"特別な遅延\"コレクションフェッチ - コレクションの要素 1つ1つが独立して、必要なときにデータベースから取得されます。 Hibernateは必要ないならば、コレクション全体をメモリにフェッチすることは 避けます(とても大きなコレクションに適しています)。" +#. Tag: para +#: performance.xml:76 +#, no-c-format +msgid "" +"\"Extra-lazy\" collection fetching - individual " +"elements of the collection are accessed from the database as needed. " +"Hibernate tries not to fetch the whole collection into memory unless " +"absolutely needed (suitable for very large collections)" +msgstr "" +"\"特別な遅延\"コレクションフェッチ - コレクションの要素 " +"1つ1つが独立して、必要なときにデータベースから取得されます。 Hibernateは必" +"要ないならば、コレクション全体をメモリにフェッチすることは 避けます(とても大" +"きなコレクションに適しています)。" -#: index.docbook:84 -msgid "Proxy fetching - a single-valued association is fetched when a method other than the identifier getter is invoked upon the associated object." -msgstr "プロキシフェッチ - 単一値関連は、識別子のgetter以外の メソッドが関連オブジェクトで呼び出されるときにフェッチされます。" +#. Tag: para +#: performance.xml:84 +#, no-c-format +msgid "" +"Proxy fetching - a single-valued association is fetched " +"when a method other than the identifier getter is invoked upon the " +"associated object." +msgstr "" +"プロキシフェッチ - 単一値関連は、識別子のgetter以外の メ" +"ソッドが関連オブジェクトで呼び出されるときにフェッチされます。" -#: index.docbook:91 -msgid "\"No-proxy\" fetching - a single-valued association is fetched when the instance variable is accessed. Compared to proxy fetching, this approach is less lazy (the association is fetched even when only the identifier is accessed) but more transparent, since no proxy is visible to the application. This approach requires buildtime bytecode instrumentation and is rarely necessary." -msgstr "\"プロキシなし\"フェッチ - 単一値関連は、インスタンス変数に アクセスされたときにフェッチされます。プロキシフェッチと比較すると、この方法は 遅延の度合いが少ない(関連は識別子にアクセスしただけでもフェッチされます) ですが、より透過的で、アプリケーションにプロキシが存在しないように見せます。 この方法はビルド時のバイトコード組み込みが必要になり、使う場面はまれです。" +#. Tag: para +#: performance.xml:91 +#, no-c-format +msgid "" +"\"No-proxy\" fetching - a single-valued association is " +"fetched when the instance variable is accessed. Compared to proxy fetching, " +"this approach is less lazy (the association is fetched even when only the " +"identifier is accessed) but more transparent, since no proxy is visible to " +"the application. This approach requires buildtime bytecode instrumentation " +"and is rarely necessary." +msgstr "" +"\"プロキシなし\"フェッチ - 単一値関連は、インスタンス変" +"数に アクセスされたときにフェッチされます。プロキシフェッチと比較すると、この" +"方法は 遅延の度合いが少ない(関連は識別子にアクセスしただけでもフェッチされま" +"す) ですが、より透過的で、アプリケーションにプロキシが存在しないように見せま" +"す。 この方法はビルド時のバイトコード組み込みが必要になり、使う場面はまれで" +"す。" -#: index.docbook:101 -msgid "Lazy attribute fetching - an attribute or single valued association is fetched when the instance variable is accessed. This approach requires buildtime bytecode instrumentation and is rarely necessary." -msgstr "遅延属性フェッチ - 属性や単一値関連は、インスタンス変数にアクセスした ときにフェッチされます。この方法はビルド時のバイトコード組み込みが必要になり、 使う場面はまれです。" +#. Tag: para +#: performance.xml:101 +#, no-c-format +msgid "" +"Lazy attribute fetching - an attribute or single valued " +"association is fetched when the instance variable is accessed. This approach " +"requires buildtime bytecode instrumentation and is rarely necessary." +msgstr "" +"遅延属性フェッチ - 属性や単一値関連は、インスタンス変数" +"にアクセスした ときにフェッチされます。この方法はビルド時のバイトコード組み込" +"みが必要になり、 使う場面はまれです。" -#: index.docbook:110 -msgid "We have two orthogonal notions here: when is the association fetched, and how is it fetched (what SQL is used). Don't confuse them! We use fetch to tune performance. We may use lazy to define a contract for what data is always available in any detached instance of a particular class." -msgstr "二つの直行する概念があります: いつ 関連をフェッチするか、 そして、 どうやって フェッチするか(どんなSQLを使って)。 これらを混同しないでください! fetch はパフォーマンスチューニングに使います。 lazy はあるクラスの分離されたインスタンスのうち、どのデータを常に 使用可能にするかの取り決めを定義します。" +#. Tag: para +#: performance.xml:110 +#, no-c-format +msgid "" +"We have two orthogonal notions here: when is the " +"association fetched, and how is it fetched (what SQL is " +"used). Don't confuse them! We use fetch to tune " +"performance. We may use lazy to define a contract for " +"what data is always available in any detached instance of a particular class." +msgstr "" +"二つの直行する概念があります: いつ 関連をフェッチする" +"か、 そして、 どうやって フェッチするか(どんなSQLを使っ" +"て)。 これらを混同しないでください! fetch はパフォーマン" +"スチューニングに使います。 lazy はあるクラスの分離されたイ" +"ンスタンスのうち、どのデータを常に 使用可能にするかの取り決めを定義します。" -#: index.docbook:119 +#. Tag: title +#: performance.xml:119 +#, no-c-format msgid "Working with lazy associations" msgstr "遅延関連の働き" -#: index.docbook:121 -msgid "By default, Hibernate3 uses lazy select fetching for collections and lazy proxy fetching for single-valued associations. These defaults make sense for almost all associations in almost all applications." -msgstr "デフォルトでは、Hibernate3はコレクションに対しては遅延セレクトフェッチを使い、 単一値関連には遅延プロキシフェッチを使います。これらのデフォルト動作はほぼすべての アプリケーションのほぼすべての関連で意味があります。" - -#: index.docbook:127 -msgid "Note: if you set hibernate.default_batch_fetch_size, Hibernate will use the batch fetch optimization for lazy fetching (this optimization may also be enabled at a more granular level)." -msgstr "注: hibernate.default_batch_fetch_size をセットしたときは、Hibernateは 遅延フェッチのためのバッチフェッチ最適化を使うでしょう (この最適化はより細かいレベルで有効にすることも出来ます)。" - -#: index.docbook:134 -msgid "However, lazy fetching poses one problem that you must be aware of. Access to a lazy association outside of the context of an open Hibernate session will result in an exception. For example:" -msgstr "しかし、遅延フェッチは知っておかなければならない一つの問題があります。 Hibernateのsessionをオープンしているコンテキストの外から遅延関連にアクセスすると、 例外が発生します。例:" - -#: index.docbook:140 +#. Tag: para +#: performance.xml:121 +#, no-c-format msgid "" - "" +"By default, Hibernate3 uses lazy select fetching for collections and lazy " +"proxy fetching for single-valued associations. These defaults make sense for " +"almost all associations in almost all applications." msgstr "" - "" +"デフォルトでは、Hibernate3はコレクションに対しては遅延セレクトフェッチを使" +"い、 単一値関連には遅延プロキシフェッチを使います。これらのデフォルト動作はほ" +"ぼすべての アプリケーションのほぼすべての関連で意味があります。" -#: index.docbook:142 -msgid "Since the permissions collection was not initialized when the Session was closed, the collection will not be able to load its state. Hibernate does not support lazy initialization for detached objects. The fix is to move the code that reads from the collection to just before the transaction is committed." -msgstr "Session がクローズされたとき、permissionsコレクションは 初期化されていないため、このコレクションは自身の状態をロードできません。 Hibernateは切り離されたオブジェクトの遅延初期化はサポート していません 。修正方法として、コレクションから読み込みを行うコードを トランザクションをコミットする直前に移動させます。" +#. Tag: para +#: performance.xml:127 +#, no-c-format +msgid "" +"Note: if you set hibernate." +"default_batch_fetch_size, Hibernate will use the batch fetch " +"optimization for lazy fetching (this optimization may also be enabled at a " +"more granular level)." +msgstr "" +"注:hibernate.default_batch_fetch_size をセットしたときは、Hibernateは 遅延フェッチのためのバッチフェッチ最" +"適化を使うでしょう (この最適化はより細かいレベルで有効にすることも出来ま" +"す)。" -#: index.docbook:150 -msgid "Alternatively, we could use a non-lazy collection or association, by specifying lazy=\"false\" for the association mapping. However, it is intended that lazy initialization be used for almost all collections and associations. If you define too many non-lazy associations in your object model, Hibernate will end up needing to fetch the entire database into memory in every transaction!" -msgstr "一方で、 lazy=\"false\" を関連マッピングに指定することで、 遅延処理をしないコレクションや関連を使うことが出来ます。 しかしながら、遅延初期化はほぼすべてのコレクションや関連で使われることを 意図しています。もしあなたのオブジェクトモデルの中に遅延処理をしない関連を 多く定義してしまうと、Hibernateは最終的にはトランザクション毎に ほぼ完全なデータベースをメモリの中にフェッチすることになるでしょう!" +#. Tag: para +#: performance.xml:134 +#, no-c-format +msgid "" +"However, lazy fetching poses one problem that you must be aware of. Access " +"to a lazy association outside of the context of an open Hibernate session " +"will result in an exception. For example:" +msgstr "" +"しかし、遅延フェッチは知っておかなければならない一つの問題があります。 " +"Hibernateのsessionをオープンしているコンテキストの外から遅延関連にアクセスす" +"ると、 例外が発生します。例:" -#: index.docbook:159 -msgid "On the other hand, we often want to choose join fetching (which is non-lazy by nature) instead of select fetching in a particular transaction. We'll now see how to customize the fetching strategy. In Hibernate3, the mechanisms for choosing a fetch strategy are identical for single-valued associations and collections." -msgstr "他方では、特定のトランザクションにおいてセレクトフェッチの代わりに 結合フェッチ(当然これは遅延処理ではなくなります)を選択したいことが 時々あります。これからフェッチ戦略をカスタマイズする方法をお見せします。 Hibernate3では、フェッチ戦略を選択する仕組みは単一値関連とコレクションで 変わりはありません。" +#. Tag: programlisting +#: performance.xml:140 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:170 +#. Tag: para +#: performance.xml:142 +#, no-c-format +msgid "" +"Since the permissions collection was not initialized when the " +"Session was closed, the collection will not be able to " +"load its state. Hibernate does not support lazy initialization for " +"detached objects. The fix is to move the code that reads from the " +"collection to just before the transaction is committed." +msgstr "" +"Session がクローズされたとき、permissionsコレクションは 初" +"期化されていないため、このコレクションは自身の状態をロードできません。 " +"Hibernateは切り離されたオブジェクトの遅延初期化はサポート していま" +"せん 。修正方法として、コレクションから読み込みを行うコードを トラ" +"ンザクションをコミットする直前に移動させます。" + +#. Tag: para +#: performance.xml:150 +#, no-c-format +msgid "" +"Alternatively, we could use a non-lazy collection or association, by " +"specifying lazy=\"false\" for the association mapping. " +"However, it is intended that lazy initialization be used for almost all " +"collections and associations. If you define too many non-lazy associations " +"in your object model, Hibernate will end up needing to fetch the entire " +"database into memory in every transaction!" +msgstr "" +"一方で、 lazy=\"false\" を関連マッピングに指定すること" +"で、 遅延処理をしないコレクションや関連を使うことが出来ます。 しかしながら、" +"遅延初期化はほぼすべてのコレクションや関連で使われることを 意図しています。も" +"しあなたのオブジェクトモデルの中に遅延処理をしない関連を 多く定義してしまう" +"と、Hibernateは最終的にはトランザクション毎に ほぼ完全なデータベースをメモリ" +"の中にフェッチすることになるでしょう!" + +#. Tag: para +#: performance.xml:159 +#, no-c-format +msgid "" +"On the other hand, we often want to choose join fetching (which is non-lazy " +"by nature) instead of select fetching in a particular transaction. We'll now " +"see how to customize the fetching strategy. In Hibernate3, the mechanisms " +"for choosing a fetch strategy are identical for single-valued associations " +"and collections." +msgstr "" +"他方では、特定のトランザクションにおいてセレクトフェッチの代わりに 結合フェッ" +"チ(当然これは遅延処理ではなくなります)を選択したいことが 時々あります。これ" +"からフェッチ戦略をカスタマイズする方法をお見せします。 Hibernate3では、フェッ" +"チ戦略を選択する仕組みは単一値関連とコレクションで 変わりはありません。" + +#. Tag: title +#: performance.xml:170 +#, no-c-format msgid "Tuning fetch strategies" msgstr "フェッチ戦略のチューニング" -#: index.docbook:172 -msgid "Select fetching (the default) is extremely vulnerable to N+1 selects problems, so we might want to enable join fetching in the mapping document:" -msgstr "セレクトフェッチ(デフォルト)はN+1セレクト問題という大きな弱点があるため、 マッピング定義で結合フェッチを有効にすることができます。" - -#: index.docbook:177 +#. Tag: para +#: performance.xml:172 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "" +"Select fetching (the default) is extremely vulnerable to N+1 selects " +"problems, so we might want to enable join fetching in the mapping document:" msgstr "" - " \n" - " \n" - " \n" - "" +"セレクトフェッチ(デフォルト)はN+1セレクト問題という大きな弱点があるため、 " +"マッピング定義で結合フェッチを有効にすることができます。" -#: index.docbook:179 +#. Tag: programlisting +#: performance.xml:177 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"" +msgstr "" + +#. Tag: programlisting +#: performance.xml:179 +#, no-c-format msgid "]]>" -msgstr "]]>" +msgstr "" -#: index.docbook:181 -msgid "The fetch strategy defined in the mapping document affects:" -msgstr "マッピング定義で定義した フェッチ 戦略は次のものに影響します。" +#. Tag: para +#: performance.xml:181 +#, no-c-format +msgid "" +"The fetch strategy defined in the mapping document " +"affects:" +msgstr "" +"マッピング定義で定義した フェッチ 戦略は次のものに影響しま" +"す。" -#: index.docbook:187 +#. Tag: para +#: performance.xml:187 +#, no-c-format msgid "retrieval via get() or load()" msgstr "get()load() による復元" -#: index.docbook:192 +#. Tag: para +#: performance.xml:192 +#, no-c-format msgid "retrieval that happens implicitly when an association is navigated" msgstr "関連にナビゲートしたときに発生する暗黙的な復元" -#: index.docbook:197 +#. Tag: para +#: performance.xml:197 +#, no-c-format msgid "Criteria queries" msgstr "Criteria クエリ" -#: index.docbook:202 +#. Tag: para +#: performance.xml:202 +#, no-c-format msgid "HQL queries if subselect fetching is used" msgstr "サブセレクト フェッチを使うHQLクエリ" -#: index.docbook:208 -msgid "No matter what fetching strategy you use, the defined non-lazy graph is guaranteed to be loaded into memory. Note that this might result in several immediate selects being used to execute a particular HQL query." -msgstr "たとえどんなフェッチ戦略を使ったとしても、遅延ではないグラフはメモリに読み込まれることが 保証されます。つまり、特定のHQLクエリを実行するためにいくつかのSELECT文が即時実行される ことがあるので注意してください。" - -#: index.docbook:214 -msgid "Usually, we don't use the mapping document to customize fetching. Instead, we keep the default behavior, and override it for a particular transaction, using left join fetch in HQL. This tells Hibernate to fetch the association eagerly in the first select, using an outer join. In the Criteria query API, you would use setFetchMode(FetchMode.JOIN)." -msgstr "通常は、マッピング定義でフェッチのカスタマイズは行いません。 代わりに、デフォルトの動作のままにしておいて、HQLで left join fetch を 指定することで特定のトランザクションで動作をオーバーライドします。 これはHibernateに初回のセレクトで外部結合を使って関連を先にフェッチするように指定しています。 Criteria クエリのAPIでは、 setFetchMode(FetchMode.JOIN) を使うことが出来ます。" - -#: index.docbook:223 -msgid "If you ever feel like you wish you could change the fetching strategy used by get() or load(), simply use a Criteria query, for example:" -msgstr "もし get()load() で使われる フェッチ戦略を変えたいと感じたときには、単純に Criteria クエリを使ってください。例:" - -#: index.docbook:229 +#. Tag: para +#: performance.xml:208 +#, no-c-format msgid "" - "" +"No matter what fetching strategy you use, the defined non-lazy graph is " +"guaranteed to be loaded into memory. Note that this might result in several " +"immediate selects being used to execute a particular HQL query." msgstr "" - "" +"たとえどんなフェッチ戦略を使ったとしても、遅延ではないグラフはメモリに読み込" +"まれることが 保証されます。つまり、特定のHQLクエリを実行するためにいくつかの" +"SELECT文が即時実行される ことがあるので注意してください。" -#: index.docbook:231 -msgid "(This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan\".)" -msgstr "(これはいくつかのORMソリューションが\"fetch plan\"と呼んでいるものと同じです。)" +#. Tag: para +#: performance.xml:214 +#, no-c-format +msgid "" +"Usually, we don't use the mapping document to customize fetching. Instead, " +"we keep the default behavior, and override it for a particular transaction, " +"using left join fetch in HQL. This tells Hibernate to " +"fetch the association eagerly in the first select, using an outer join. In " +"the Criteria query API, you would use " +"setFetchMode(FetchMode.JOIN)." +msgstr "" +"通常は、マッピング定義でフェッチのカスタマイズは行いません。 代わりに、デフォ" +"ルトの動作のままにしておいて、HQLで left join fetch を 指" +"定することで特定のトランザクションで動作をオーバーライドします。 これは" +"Hibernateに初回のセレクトで外部結合を使って関連を先にフェッチするように指定し" +"ています。 Criteria クエリのAPIでは、 " +"setFetchMode(FetchMode.JOIN) を使うことが出来ます。" -#: index.docbook:235 -msgid "A completely different way to avoid problems with N+1 selects is to use the second-level cache." -msgstr "N+1セレクト問題を避けるためのまったく違う方法は、第2レベルキャッシュを使うことです。" +#. Tag: para +#: performance.xml:223 +#, no-c-format +msgid "" +"If you ever feel like you wish you could change the fetching strategy used " +"by get() or load(), simply use a " +"Criteria query, for example:" +msgstr "" +"もし get()load() で使われる フェッ" +"チ戦略を変えたいと感じたときには、単純に Criteria クエリを" +"使ってください。例:" -#: index.docbook:243 +#. Tag: programlisting +#: performance.xml:229 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: performance.xml:231 +#, no-c-format +msgid "" +"(This is Hibernate's equivalent of what some ORM solutions call a \"fetch " +"plan\".)" +msgstr "" +"(これはいくつかのORMソリューションが\"fetch plan\"と呼んでいるものと同じで" +"す。)" + +#. Tag: para +#: performance.xml:235 +#, no-c-format +msgid "" +"A completely different way to avoid problems with N+1 selects is to use the " +"second-level cache." +msgstr "" +"N+1セレクト問題を避けるためのまったく違う方法は、第2レベルキャッシュを使うこ" +"とです。" + +#. Tag: title +#: performance.xml:243 +#, no-c-format msgid "Single-ended association proxies" msgstr "単一端関連プロキシ" -#: index.docbook:245 -msgid "Lazy fetching for collections is implemented using Hibernate's own implementation of persistent collections. However, a different mechanism is needed for lazy behavior in single-ended associations. The target entity of the association must be proxied. Hibernate implements lazy initializing proxies for persistent objects using runtime bytecode enhancement (via the excellent CGLIB library)." -msgstr "コレクションの遅延フェッチは、Hibernate自身の実装による永続コレクションを使って 実現しています。しかし、単一端関連における遅延処理では、違う仕組みが 必要です。対象の関連エンティティはプロキシでなければなりません。Hibernateは (すばらしいCGLIBライブラリによる)実行時のバイトコード拡張を 使って永続オブジェクトの遅延初期化プロキシを実現しています。" - -#: index.docbook:253 -msgid "By default, Hibernate3 generates proxies (at startup) for all persistent classes and uses them to enable lazy fetching of many-to-one and one-to-one associations." -msgstr "デフォルトでは、Hibernate3は(開始時に)すべての永続クラスのプロキシを生成し、 それらを使って、 many-to-oneone-to-one 関連の 遅延フェッチを可能にしています。" - -#: index.docbook:259 -msgid "The mapping file may declare an interface to use as the proxy interface for that class, with the proxy attribute. By default, Hibernate uses a subclass of the class. Note that the proxied class must implement a default constructor with at least package visibility. We recommend this constructor for all persistent classes!" -msgstr "マッピングファイルで proxy 属性によって、クラスのプロキシインターフェイスとして 使うインターフェイスを宣言できます。デフォルトでは、Hibernateはそのクラスのサブクラスを使います。 プロキシクラスは少なくともパッケージ可視でデフォルトコンストラクタを実装しなければ ならないことに注意してください。すべての永続クラスにこのコンストラクタを推奨します!" - -#: index.docbook:266 -msgid "There are some gotchas to be aware of when extending this approach to polymorphic classes, eg." -msgstr "ポリモーフィズムのクラスに対してこの方法を適用するときにいくつか考慮することがあります。 例:" - -#: index.docbook:271 +#. Tag: para +#: performance.xml:245 +#, no-c-format msgid "" - "\n" - " ......\n" - " \n" - " .....\n" - " \n" - "]]>" +"Lazy fetching for collections is implemented using Hibernate's own " +"implementation of persistent collections. However, a different mechanism is " +"needed for lazy behavior in single-ended associations. The target entity of " +"the association must be proxied. Hibernate implements lazy initializing " +"proxies for persistent objects using runtime bytecode enhancement (via the " +"excellent CGLIB library)." msgstr "" - " \n" - " ...... \n" - " \n" - " ..... \n" - " \n" - "]]>" +"コレクションの遅延フェッチは、Hibernate自身の実装による永続コレクションを使っ" +"て 実現しています。しかし、単一端関連における遅延処理では、違う仕組みが 必要" +"です。対象の関連エンティティはプロキシでなければなりません。Hibernateは (す" +"ばらしいCGLIBライブラリによる)実行時のバイトコード拡張を 使って永続オブジェ" +"クトの遅延初期化プロキシを実現しています。" -#: index.docbook:273 -msgid "Firstly, instances of Cat will never be castable to DomesticCat, even if the underlying instance is an instance of DomesticCat:" -msgstr "第一に、 Cat のインスタンスは DomesticCat にキャストできません。たとえ基となるインスタンスが DomesticCat であったとしてもです。" - -#: index.docbook:279 +#. Tag: para +#: performance.xml:253 +#, no-c-format msgid "" - "" +"By default, Hibernate3 generates proxies (at startup) for all persistent " +"classes and uses them to enable lazy fetching of many-to-one and one-to-one associations." msgstr "" - "" +"デフォルトでは、Hibernate3は(開始時に)すべての永続クラスのプロキシを生成" +"し、 それらを使って、 many-to-oneone-to-one 関連の 遅延フェッチを可能にしています。" -#: index.docbook:281 +#. Tag: para +#: performance.xml:259 +#, no-c-format +msgid "" +"The mapping file may declare an interface to use as the proxy interface for " +"that class, with the proxy attribute. By default, " +"Hibernate uses a subclass of the class. Note that the proxied " +"class must implement a default constructor with at least package visibility. " +"We recommend this constructor for all persistent classes!" +msgstr "" +"マッピングファイルで proxy 属性によって、クラスのプロキシ" +"インターフェイスとして 使うインターフェイスを宣言できます。デフォルトでは、" +"Hibernateはそのクラスのサブクラスを使います。 プロキシクラスは少な" +"くともパッケージ可視でデフォルトコンストラクタを実装しなければ ならないことに" +"注意してください。すべての永続クラスにこのコンストラクタを推奨します!" + +#. Tag: para +#: performance.xml:266 +#, no-c-format +msgid "" +"There are some gotchas to be aware of when extending this approach to " +"polymorphic classes, eg." +msgstr "" +"ポリモーフィズムのクラスに対してこの方法を適用するときにいくつか考慮すること" +"があります。 例:" + +#. Tag: programlisting +#: performance.xml:271 +#, no-c-format +msgid "" +"\n" +" ......\n" +" \n" +" .....\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: performance.xml:273 +#, no-c-format +msgid "" +"Firstly, instances of Cat will never be castable to " +"DomesticCat, even if the underlying instance is an " +"instance of DomesticCat:" +msgstr "" +"第一に、 Cat のインスタンスは DomesticCat にキャストできません。たとえ基となるインスタンスが " +"DomesticCat であったとしてもです。" + +#. Tag: programlisting +#: performance.xml:279 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: performance.xml:281 +#, no-c-format msgid "Secondly, it is possible to break proxy ==." msgstr "第二に、プロキシの == は成立しないことがあります。" -#: index.docbook:285 +#. Tag: programlisting +#: performance.xml:285 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:287 -msgid "However, the situation is not quite as bad as it looks. Even though we now have two references to different proxy objects, the underlying instance will still be the same object:" -msgstr "しかし、これは見かけほど悪い状況というわけではありません。たとえ異なったプロキシオブジェクトへの 二つの参照があったとしても、基となるインスタンスは同じオブジェクトです。" - -#: index.docbook:292 +#. Tag: para +#: performance.xml:287 +#, no-c-format msgid "" - "" +"However, the situation is not quite as bad as it looks. Even though we now " +"have two references to different proxy objects, the underlying instance will " +"still be the same object:" msgstr "" - "" +"しかし、これは見かけほど悪い状況というわけではありません。たとえ異なったプロ" +"キシオブジェクトへの 二つの参照があったとしても、基となるインスタンスは同じオ" +"ブジェクトです。" -#: index.docbook:294 -msgid "Third, you may not use a CGLIB proxy for a final class or a class with any final methods." -msgstr "第三に、 final クラスや final メソッドを持つクラスに CGLIBプロキシを使えません。" - -#: index.docbook:299 -msgid "Finally, if your persistent object acquires any resources upon instantiation (eg. in initializers or default constructor), then those resources will also be acquired by the proxy. The proxy class is an actual subclass of the persistent class." -msgstr "最後に、もし永続オブジェクトのインスタンス化時(例えば、初期化処理やデフォルトコンストラクタの中で) になんらかのリソースが必要となるなら、そのリソースもまたプロキシを通して取得されます。 実際には、プロキシクラスは永続クラスのサブクラスです。" - -#: index.docbook:305 -msgid "These problems are all due to fundamental limitations in Java's single inheritance model. If you wish to avoid these problems your persistent classes must each implement an interface that declares its business methods. You should specify these interfaces in the mapping file. eg." -msgstr "これらの問題はJavaの単一継承モデルの原理上の制限のためです。もしこれらの問題を避けたいのなら、 ビジネスメソッドを宣言したインターフェイスをそれぞれ永続クラスで実装しなければなりません。 マッピングファイルでこれらのインターフェイスを指定する必要があります。例:" - -#: index.docbook:311 +#. Tag: programlisting +#: performance.xml:292 +#, no-c-format msgid "" - "\n" - " ......\n" - " \n" - " .....\n" - " \n" - "]]>" +"" msgstr "" - " \n" - " ...... \n" - " \n" - " ..... \n" - " \n" - "]]>" -#: index.docbook:313 -msgid "where CatImpl implements the interface Cat and DomesticCatImpl implements the interface DomesticCat. Then proxies for instances of Cat and DomesticCat may be returned by load() or iterate(). (Note that list() does not usually return proxies.)" -msgstr "CatImplCat インターフェイスを実装するのに対し、 DomesticCatImplDomesticCat を実装します。 すると、 load()iterate() は、 CatDomesticCat のインスタンスのプロキシを 返します。( list() は通常はプロキシを返さないことに注意してください。)" - -#: index.docbook:321 +#. Tag: para +#: performance.xml:294 +#, no-c-format msgid "" - "" +"Third, you may not use a CGLIB proxy for a final class or " +"a class with any final methods." msgstr "" - "" +"第三に、 final クラスや final メソッド" +"を持つクラスに CGLIBプロキシを使えません。" -#: index.docbook:323 -msgid "Relationships are also lazily initialized. This means you must declare any properties to be of type Cat, not CatImpl." -msgstr "関連も遅延初期化されます。これはプロパティを Cat 型で宣言しなければ ならないことを意味します。 CatImpl ではありません。" +#. Tag: para +#: performance.xml:299 +#, no-c-format +msgid "" +"Finally, if your persistent object acquires any resources upon instantiation " +"(eg. in initializers or default constructor), then those resources will also " +"be acquired by the proxy. The proxy class is an actual subclass of the " +"persistent class." +msgstr "" +"最後に、もし永続オブジェクトのインスタンス化時(例えば、初期化処理やデフォルト" +"コンストラクタの中で) になんらかのリソースが必要となるなら、そのリソースもま" +"たプロキシを通して取得されます。 実際には、プロキシクラスは永続クラスのサブク" +"ラスです。" -#: index.docbook:328 -msgid "Certain operations do not require proxy initialization" -msgstr "プロキシの初期化を 必要としない 操作も存在します。" +#. Tag: para +#: performance.xml:305 +#, no-c-format +msgid "" +"These problems are all due to fundamental limitations in Java's single " +"inheritance model. If you wish to avoid these problems your persistent " +"classes must each implement an interface that declares its business methods. " +"You should specify these interfaces in the mapping file. eg." +msgstr "" +"これらの問題はJavaの単一継承モデルの原理上の制限のためです。もしこれらの問題" +"を避けたいのなら、 ビジネスメソッドを宣言したインターフェイスをそれぞれ永続ク" +"ラスで実装しなければなりません。 マッピングファイルでこれらのインターフェイス" +"を指定する必要があります。例:" -#: index.docbook:334 -msgid "equals(), if the persistent class does not override equals()" -msgstr "equals() (永続クラスが equals() を オーバーライドしないとき)" +#. Tag: programlisting +#: performance.xml:311 +#, no-c-format +msgid "" +"\n" +" ......\n" +" \n" +" .....\n" +" \n" +"]]>" +msgstr "" -#: index.docbook:340 -msgid "hashCode(), if the persistent class does not override hashCode()" -msgstr "hashCode() (永続クラスが hashCode() を オーバーライドしないとき)" +#. Tag: para +#: performance.xml:313 +#, no-c-format +msgid "" +"where CatImpl implements the interface Cat and DomesticCatImpl implements the interface " +"DomesticCat. Then proxies for instances of Cat and DomesticCat may be returned by load" +"() or iterate(). (Note that list() does not usually return proxies.)" +msgstr "" +"CatImplCat インターフェイスを実装す" +"るのに対し、 DomesticCatImplDomesticCat を実装します。 すると、 load() や " +"iterate() は、 Cat や " +"DomesticCat のインスタンスのプロキシを 返します。" +"( list() は通常はプロキシを返さないことに注意してくださ" +"い。)" -#: index.docbook:346 +#. Tag: programlisting +#: performance.xml:321 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: performance.xml:323 +#, no-c-format +msgid "" +"Relationships are also lazily initialized. This means you must declare any " +"properties to be of type Cat, not CatImpl." +msgstr "" +"関連も遅延初期化されます。これはプロパティを Cat 型で宣言" +"しなければ ならないことを意味します。 CatImpl ではありませ" +"ん。" + +#. Tag: para +#: performance.xml:328 +#, no-c-format +msgid "" +"Certain operations do not require proxy initialization" +msgstr "" +"プロキシの初期化を 必要としない 操作も存在します。" + +#. Tag: para +#: performance.xml:334 +#, no-c-format +msgid "" +"equals(), if the persistent class does not override " +"equals()" +msgstr "" +"equals() (永続クラスが equals() を " +"オーバーライドしないとき)" + +#. Tag: para +#: performance.xml:340 +#, no-c-format +msgid "" +"hashCode(), if the persistent class does not override " +"hashCode()" +msgstr "" +"hashCode() (永続クラスが hashCode() " +"を オーバーライドしないとき)" + +#. Tag: para +#: performance.xml:346 +#, no-c-format msgid "The identifier getter method" msgstr "識別子のgetterメソッド" -#: index.docbook:352 -msgid "Hibernate will detect persistent classes that override equals() or hashCode()." -msgstr "Hibernateは equals()hashCode() をオーバーライドした 永続クラスを検出します。" +#. Tag: para +#: performance.xml:352 +#, no-c-format +msgid "" +"Hibernate will detect persistent classes that override equals() or hashCode()." +msgstr "" +"Hibernateは equals()hashCode() を" +"オーバーライドした 永続クラスを検出します。" -#: index.docbook:357 -msgid "By choosing lazy=\"no-proxy\" instead of the default lazy=\"proxy\", we can avoid the problems associated with typecasting. However, we will require buildtime bytecode instrumentation, and all operations will result in immediate proxy initialization." -msgstr "デフォルトの lazy=\"proxy\" の代わりに、 lazy=\"no-proxy\" を 選んだことで、型変換に関連する問題を回避することが出来ます。 しかし、ビルド時のバイトコード組み込みが必要になり、どのような操作であっても、 ただちにプロキシの初期化を行うことになるでしょう。" +#. Tag: para +#: performance.xml:357 +#, no-c-format +msgid "" +"By choosing lazy=\"no-proxy\" instead of the default " +"lazy=\"proxy\", we can avoid the problems associated with " +"typecasting. However, we will require buildtime bytecode instrumentation, " +"and all operations will result in immediate proxy initialization." +msgstr "" +"デフォルトの lazy=\"proxy\" の代わりに、 lazy=" +"\"no-proxy\" を 選んだことで、型変換に関連する問題を回避することが" +"出来ます。 しかし、ビルド時のバイトコード組み込みが必要になり、どのような操作" +"であっても、 ただちにプロキシの初期化を行うことになるでしょう。" -#: index.docbook:367 +#. Tag: title +#: performance.xml:367 +#, no-c-format msgid "Initializing collections and proxies" msgstr "コレクションとプロキシの初期化" -#: index.docbook:369 -msgid "A LazyInitializationException will be thrown by Hibernate if an uninitialized collection or proxy is accessed outside of the scope of the Session, ie. when the entity owning the collection or having the reference to the proxy is in the detached state." -msgstr "LazyInitializationException は、 Session のスコープ外から 初期化していないコレクションやプロキシにアクセスされたときに、Hibernateによってスローされます。 すなわち、コレクションやプロキシへの参照を持つエンティティが分離された状態の時です。" +#. Tag: para +#: performance.xml:369 +#, no-c-format +msgid "" +"A LazyInitializationException will be thrown by Hibernate " +"if an uninitialized collection or proxy is accessed outside of the scope of " +"the Session, ie. when the entity owning the collection or " +"having the reference to the proxy is in the detached state." +msgstr "" +"LazyInitializationException は、 Session のスコープ外から 初期化していないコレクションやプロキシにアクセスさ" +"れたときに、Hibernateによってスローされます。 すなわち、コレクションやプロキ" +"シへの参照を持つエンティティが分離された状態の時です。" -#: index.docbook:375 -msgid "Sometimes we need to ensure that a proxy or collection is initialized before closing the Session. Of course, we can alway force initialization by calling cat.getSex() or cat.getKittens().size(), for example. But that is confusing to readers of the code and is not convenient for generic code." -msgstr "Session をクローズする前にプロキシやコレクションの初期化を確実に 行いたいときがあります。もちろん、 cat.getSex()cat.getKittens().size() などを常に呼び出すことで初期化を強制することはできます。 しかしこれはコードを読む人を混乱させ、汎用的なコードという点からも不便です。" +#. Tag: para +#: performance.xml:375 +#, no-c-format +msgid "" +"Sometimes we need to ensure that a proxy or collection is initialized before " +"closing the Session. Of course, we can alway force " +"initialization by calling cat.getSex() or cat." +"getKittens().size(), for example. But that is confusing to readers " +"of the code and is not convenient for generic code." +msgstr "" +"Session をクローズする前にプロキシやコレクションの初期化を" +"確実に 行いたいときがあります。もちろん、 cat.getSex() や " +"cat.getKittens().size() などを常に呼び出すことで初期化を強" +"制することはできます。 しかしこれはコードを読む人を混乱させ、汎用的なコードと" +"いう点からも不便です。" -#: index.docbook:382 -msgid "The static methods Hibernate.initialize() and Hibernate.isInitialized() provide the application with a convenient way of working with lazily initialized collections or proxies. Hibernate.initialize(cat) will force the initialization of a proxy, cat, as long as its Session is still open. Hibernate.initialize( cat.getKittens() ) has a similar effect for the collection of kittens." -msgstr "staticメソッドの Hibernate.initialize()Hibernate.isInitialized() は遅延初期化のコレクションやプロキシを扱うときに便利な方法をアプリケーションに提供します。 Hibernate.initialize(cat) は、 Session がオープンしている限りは cat プロキシを強制的に初期化します。 Hibernate.initialize( cat.getKittens() ) はkittensコレクションに対して同様の 効果があります。" +#. Tag: para +#: performance.xml:382 +#, no-c-format +msgid "" +"The static methods Hibernate.initialize() and " +"Hibernate.isInitialized() provide the application with a " +"convenient way of working with lazily initialized collections or proxies. " +"Hibernate.initialize(cat) will force the initialization " +"of a proxy, cat, as long as its Session is still open. Hibernate.initialize( cat.getKittens() ) has a similar effect for the collection of kittens." +msgstr "" +"staticメソッドの Hibernate.initialize() や " +"Hibernate.isInitialized() は遅延初期化のコレクションやプロ" +"キシを扱うときに便利な方法をアプリケーションに提供します。 " +"Hibernate.initialize(cat) は、 Session " +"がオープンしている限りは cat プロキシを強制的に初期化しま" +"す。 Hibernate.initialize( cat.getKittens() ) はkittensコ" +"レクションに対して同様の 効果があります。" -#: index.docbook:391 -msgid "Another option is to keep the Session open until all needed collections and proxies have been loaded. In some application architectures, particularly where the code that accesses data using Hibernate, and the code that uses it are in different application layers or different physical processes, it can be a problem to ensure that the Session is open when a collection is initialized. There are two basic ways to deal with this issue:" -msgstr "別の選択肢として、必要なすべてのコレクションやプロキシがロードされるまで Session をオープンにしておく方法があります。いくつかのアプリケーションの アーキテクチャでは、特にHibernateによるデータアクセスを行うコードと、それを使う コードが異なるアプリケーションのレイヤーや、物理的に異なるプロセッサのときには、 コレクションが初期化されるときに Session がオープンしていることを 保証する問題があります。この問題に対しては2つの基本的な方法があります。" +#. Tag: para +#: performance.xml:391 +#, no-c-format +msgid "" +"Another option is to keep the Session open until all " +"needed collections and proxies have been loaded. In some application " +"architectures, particularly where the code that accesses data using " +"Hibernate, and the code that uses it are in different application layers or " +"different physical processes, it can be a problem to ensure that the " +"Session is open when a collection is initialized. There " +"are two basic ways to deal with this issue:" +msgstr "" +"別の選択肢として、必要なすべてのコレクションやプロキシがロードされるまで " +"Session をオープンにしておく方法があります。いくつかのアプ" +"リケーションの アーキテクチャでは、特にHibernateによるデータアクセスを行う" +"コードと、それを使う コードが異なるアプリケーションのレイヤーや、物理的に異な" +"るプロセッサのときには、 コレクションが初期化されるときに Session がオープンしていることを 保証する問題があります。この問題に対しては2" +"つの基本的な方法があります。" -#: index.docbook:402 -msgid "In a web-based application, a servlet filter can be used to close the Session only at the very end of a user request, once the rendering of the view is complete (the Open Session in View pattern). Of course, this places heavy demands on the correctness of the exception handling of your application infrastructure. It is vitally important that the Session is closed and the transaction ended before returning to the user, even when an exception occurs during rendering of the view. See the Hibernate Wiki for examples of this \"Open Session in View\" pattern." -msgstr "Webベースのアプリケーションでは、 ビューのレンダリングが完了し、リクエストが終わる一番最後で Session をクローズするために、サーブレットフィルタを使うことができます( Open Session in View パターンです)。もちろん、アプリケーション基盤の例外処理の正確性が非常に重要になります。 ビューのレンダリング中に例外が発生したときでさえ、ユーザに処理が戻る前に Session のクローズとトランザクションの終了を行う ことが不可欠になります。 HibernateのWikiに載っている\"Open Session in View\"パターンの例を参照してください。" +#. Tag: para +#: performance.xml:402 +#, no-c-format +msgid "" +"In a web-based application, a servlet filter can be used to close the " +"Session only at the very end of a user request, once the " +"rendering of the view is complete (the Open Session in View pattern). Of course, this places heavy demands on the correctness " +"of the exception handling of your application infrastructure. It is vitally " +"important that the Session is closed and the transaction " +"ended before returning to the user, even when an exception occurs during " +"rendering of the view. See the Hibernate Wiki for examples of this \"Open " +"Session in View\" pattern." +msgstr "" +"Webベースのアプリケーションでは、 ビューのレンダリングが完了し、リクエストが" +"終わる一番最後で Session をクローズするために、サーブレッ" +"トフィルタを使うことができます( Open Session in View パ" +"ターンです)。もちろん、アプリケーション基盤の例外処理の正確性が非常に重要に" +"なります。 ビューのレンダリング中に例外が発生したときでさえ、ユーザに処理が戻" +"る前に Session のクローズとトランザクションの終了を行う こ" +"とが不可欠になります。 HibernateのWikiに載っている\"Open Session in View\"パ" +"ターンの例を参照してください。" -#: index.docbook:415 -msgid "In an application with a separate business tier, the business logic must \"prepare\" all collections that will be needed by the web tier before returning. This means that the business tier should load all the data and return all the data already initialized to the presentation/web tier that is required for a particular use case. Usually, the application calls Hibernate.initialize() for each collection that will be needed in the web tier (this call must occur before the session is closed) or retrieves the collection eagerly using a Hibernate query with a FETCH clause or a FetchMode.JOIN in Criteria. This is usually easier if you adopt the Command pattern instead of a Session Facade." -msgstr "ビジネス層が分離しているアプリケーションでは、ビジネスロジックは Web層で必要になるすべてのコレクションを事前に\"準備\"する必要があります。 これは特定のユースケースで必要となるプレゼンテーション/Web層に対し、 ビジネス層がすべてのデータをロードし、すべてのデータを初期化して返すべきと いうことを意味しています。通常は、アプリケーションはWeb層で必要なコレクション それぞれに対して Hibernate.initialize() を呼び出すか (この呼び出しはセッションをクローズする前に行う必要があります)、 Hibernateクエリの FETCH 節や CriteriaFetchMode.JOIN を使ってコレクションを先に復元します。 普通は Session Facade パターンの代わりに Command パターンを採用するほうがより簡単です。" +#. Tag: para +#: performance.xml:415 +#, no-c-format +msgid "" +"In an application with a separate business tier, the business logic must " +"\"prepare\" all collections that will be needed by the web tier before " +"returning. This means that the business tier should load all the data and " +"return all the data already initialized to the presentation/web tier that is " +"required for a particular use case. Usually, the application calls " +"Hibernate.initialize() for each collection that will be " +"needed in the web tier (this call must occur before the session is closed) " +"or retrieves the collection eagerly using a Hibernate query with a " +"FETCH clause or a FetchMode.JOIN in " +"Criteria. This is usually easier if you adopt the " +"Command pattern instead of a Session Facade." +msgstr "" +"ビジネス層が分離しているアプリケーションでは、ビジネスロジックは Web層で必要" +"になるすべてのコレクションを事前に\"準備\"する必要があります。 これは特定の" +"ユースケースで必要となるプレゼンテーション/Web層に対し、 ビジネス層がすべての" +"データをロードし、すべてのデータを初期化して返すべきと いうことを意味していま" +"す。通常は、アプリケーションはWeb層で必要なコレクション それぞれに対して " +"Hibernate.initialize() を呼び出すか (この呼び出しはセッ" +"ションをクローズする前に行う必要があります)、 Hibernateクエリの " +"FETCH 節や Criteria の " +"FetchMode.JOIN を使ってコレクションを先に復元します。 普通" +"は Session Facade パターンの代わりに Command パターンを採用するほうがより簡単です。" -#: index.docbook:430 -msgid "You may also attach a previously loaded object to a new Session with merge() or lock() before accessing uninitialized collections (or other proxies). No, Hibernate does not, and certainly should not do this automatically, since it would introduce ad hoc transaction semantics!" -msgstr "初期化されていないコレクション(もしくは他のプロキシ)にアクセスする前に、 merge()lock() を使って新しい Session に以前にロードされたオブジェクトを追加することも出来ます。 アドホックなトランザクションのセマンティクスを導入したので、Hibernateは これを自動的に行わず、 行うべきでもありません !" +#. Tag: para +#: performance.xml:430 +#, no-c-format +msgid "" +"You may also attach a previously loaded object to a new Session with merge() or lock() before " +"accessing uninitialized collections (or other proxies). No, Hibernate does " +"not, and certainly should not do this automatically, " +"since it would introduce ad hoc transaction semantics!" +msgstr "" +"初期化されていないコレクション(もしくは他のプロキシ)にアクセスする前に、 " +"merge()lock() を使って新しい " +"Session に以前にロードされたオブジェクトを追加することも出" +"来ます。 アドホックなトランザクションのセマンティクスを導入したので、" +"Hibernateは これを自動的に行わず、 行うべきでもありません !" -#: index.docbook:440 -msgid "Sometimes you don't want to initialize a large collection, but still need some information about it (like its size) or a subset of the data." -msgstr "大きなコレクションを初期化したくはないが、コレクションについてのなんらかの情報(サイズのような) やデータのサブセットを必要とすることがあります。" +#. Tag: para +#: performance.xml:440 +#, no-c-format +msgid "" +"Sometimes you don't want to initialize a large collection, but still need " +"some information about it (like its size) or a subset of the data." +msgstr "" +"大きなコレクションを初期化したくはないが、コレクションについてのなんらかの情" +"報(サイズのような) やデータのサブセットを必要とすることがあります。" -#: index.docbook:445 -msgid "You can use a collection filter to get the size of a collection without initializing it:" -msgstr "コレクションフィルタを使うことで、初期化せずにコレクションのサイズを取得することが出来ます。" +#. Tag: para +#: performance.xml:445 +#, no-c-format +msgid "" +"You can use a collection filter to get the size of a collection without " +"initializing it:" +msgstr "" +"コレクションフィルタを使うことで、初期化せずにコレクションのサイズを取得する" +"ことが出来ます。" -#: index.docbook:449 -msgid "" -msgstr "" +#. Tag: programlisting +#: performance.xml:449 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:451 -msgid "The createFilter() method is also used to efficiently retrieve subsets of a collection without needing to initialize the whole collection:" -msgstr "createFilter() メソッドは、コレクション全体を初期化する必要なしに、コレクションの サブセットを復元するために効果的に使えます。" +#. Tag: para +#: performance.xml:451 +#, no-c-format +msgid "" +"The createFilter() method is also used to efficiently " +"retrieve subsets of a collection without needing to initialize the whole " +"collection:" +msgstr "" +"createFilter() メソッドは、コレクション全体を初期化する必" +"要なしに、コレクションの サブセットを復元するために効果的に使えます。" -#: index.docbook:456 -msgid "" -msgstr "" +#. Tag: programlisting +#: performance.xml:456 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:461 +#. Tag: title +#: performance.xml:461 +#, no-c-format msgid "Using batch fetching" msgstr "バッチフェッチの使用" -#: index.docbook:463 -msgid "Hibernate can make efficient use of batch fetching, that is, Hibernate can load several uninitialized proxies if one proxy is accessed (or collections. Batch fetching is an optimization of the lazy select fetching strategy. There are two ways you can tune batch fetching: on the class and the collection level." -msgstr "Hibernateはバッチフェッチを効率的に使用できます。一つのプロキシ(もしくはコレクション)がアクセス されると、Hibernateはいくつかの初期化していないプロキシをロードすることができます。バッチフェッチは 遅延セレクトフェッチ戦略に対する最適化です。バッチフェッチの調整には2つの方法があります。 クラスレベルとコレクションレベルです。" - -#: index.docbook:469 -msgid "Batch fetching for classes/entities is easier to understand. Imagine you have the following situation at runtime: You have 25 Cat instances loaded in a Session, each Cat has a reference to its owner, a Person. The Person class is mapped with a proxy, lazy=\"true\". If you now iterate through all cats and call getOwner() on each, Hibernate will by default execute 25 SELECT statements, to retrieve the proxied owners. You can tune this behavior by specifying a batch-size in the mapping of Person:" -msgstr "クラス、要素のバッチフェッチは理解が簡単です。実行時の次の場面を想像してください。 Session にロードされた25個の Cat インスタンスが存在し、 それぞれの Catowner である Person への関連を持ちます。 Person クラスは lazy=\"true\" のプロキシでマッピングされています。 もし今すべてのCatに対して繰り返し getOwner() を呼び出すと、Hibernateは デフォルトでは25回の SELECT を実行し、ownerプロキシの復元をします。 この振る舞いを Person のマッピングの batch-size の指定で調整できます。" - -#: index.docbook:479 -msgid "...]]>" -msgstr "...]]>" - -#: index.docbook:481 -msgid "Hibernate will now execute only three queries, the pattern is 10, 10, 5." -msgstr "Hibernateはクエリを3回だけを実行するようになります。パターンは10, 10, 5です。" - -#: index.docbook:485 -msgid "You may also enable batch fetching of collections. For example, if each Person has a lazy collection of Cats, and 10 persons are currently loaded in the Sesssion, iterating through all persons will generate 10 SELECTs, one for every call to getCats(). If you enable batch fetching for the cats collection in the mapping of Person, Hibernate can pre-fetch collections:" -msgstr "コレクションのバッチフェッチも有効にすることが出来ます。例として、それぞれの PersonCat の遅延コレクションを持っており、 10個のPersonが Sesssion にロードされたとすると、すべてのPersonに 対して繰り返し getCats() を呼び出すことで、計10回の SELECT が発生します。もし Person のマッピングで cats コレクションのバッチフェッチを有効にすれば、Hibernateはコレクションの事前フェッチが出来ます。" - -#: index.docbook:494 +#. Tag: para +#: performance.xml:463 +#, no-c-format msgid "" - "\n" - " \n" - " ...\n" - " \n" - "]]>" +"Hibernate can make efficient use of batch fetching, that is, Hibernate can " +"load several uninitialized proxies if one proxy is accessed (or collections. " +"Batch fetching is an optimization of the lazy select fetching strategy. " +"There are two ways you can tune batch fetching: on the class and the " +"collection level." msgstr "" - " \n" - " \n" - " ... \n" - " \n" - "]]>" +"Hibernateはバッチフェッチを効率的に使用できます。一つのプロキシ(もしくはコレ" +"クション)がアクセス されると、Hibernateはいくつかの初期化していないプロキシ" +"をロードすることができます。バッチフェッチは 遅延セレクトフェッチ戦略に対する" +"最適化です。バッチフェッチの調整には2つの方法があります。 クラスレベルとコレ" +"クションレベルです。" -#: index.docbook:496 -msgid "With a batch-size of 3, Hibernate will load 3, 3, 3, 1 collections in four SELECTs. Again, the value of the attribute depends on the expected number of uninitialized collections in a particular Session." -msgstr "batch-size が3なので、Hibernateは4回の SELECT で3個、3個、3個、1個をロードします。繰り返すと、属性の値は特定の Session の中の初期化されていないコレクションの期待数に依存します。" +#. Tag: para +#: performance.xml:469 +#, no-c-format +msgid "" +"Batch fetching for classes/entities is easier to understand. Imagine you " +"have the following situation at runtime: You have 25 Cat " +"instances loaded in a Session, each Cat has a reference to its owner, a Person. The Person class is mapped with a proxy, " +"lazy=\"true\". If you now iterate through all cats and " +"call getOwner() on each, Hibernate will by default " +"execute 25 SELECT statements, to retrieve the proxied " +"owners. You can tune this behavior by specifying a batch-size in the mapping of Person:" +msgstr "" +"クラス、要素のバッチフェッチは理解が簡単です。実行時の次の場面を想像してくだ" +"さい。 Session にロードされた25個の Cat インスタンスが存在し、 それぞれの Cat は " +"owner である Person への関連を持ちま" +"す。 Person クラスは lazy=\"true\" のプ" +"ロキシでマッピングされています。 もし今すべてのCatに対して繰り返し " +"getOwner() を呼び出すと、Hibernateは デフォルトでは25回の " +"SELECT を実行し、ownerプロキシの復元をします。 この振る舞" +"いを Person のマッピングの batch-size " +"の指定で調整できます。" -#: index.docbook:502 -msgid "Batch fetching of collections is particularly useful if you have a nested tree of items, ie. the typical bill-of-materials pattern. (Although a nested set or a materialized path might be a better option for read-mostly trees.)" -msgstr "コレクションのバッチフェッチはアイテムのネストしたツリー、 すなわち、代表的な部品表のパターンが ある場合に特に有用です。(しかし、読み込みが多いツリーでは ネストしたset具体化したパス がよりよい選択になります。)" +#. Tag: programlisting +#: performance.xml:479 +#, no-c-format +msgid "...]]>" +msgstr "" -#: index.docbook:511 +#. Tag: para +#: performance.xml:481 +#, no-c-format +msgid "" +"Hibernate will now execute only three queries, the pattern is 10, 10, 5." +msgstr "" +"Hibernateはクエリを3回だけを実行するようになります。パターンは10, 10, 5で" +"す。" + +#. Tag: para +#: performance.xml:485 +#, no-c-format +msgid "" +"You may also enable batch fetching of collections. For example, if each " +"Person has a lazy collection of Cats, " +"and 10 persons are currently loaded in the Sesssion, " +"iterating through all persons will generate 10 SELECTs, " +"one for every call to getCats(). If you enable batch " +"fetching for the cats collection in the mapping of " +"Person, Hibernate can pre-fetch collections:" +msgstr "" +"コレクションのバッチフェッチも有効にすることが出来ます。例として、それぞれの " +"PersonCat の遅延コレクションを持っ" +"ており、 10個のPersonが Sesssion にロードされたとすると、" +"すべてのPersonに 対して繰り返し getCats() を呼び出すこと" +"で、計10回の SELECT が発生します。もし Person のマッピングで cats コレクションのバッチフェッチ" +"を有効にすれば、Hibernateはコレクションの事前フェッチが出来ます。" + +#. Tag: programlisting +#: performance.xml:494 +#, no-c-format +msgid "" +"\n" +" \n" +" ...\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: performance.xml:496 +#, no-c-format +msgid "" +"With a batch-size of 3, Hibernate will load 3, 3, 3, 1 " +"collections in four SELECTs. Again, the value of the " +"attribute depends on the expected number of uninitialized collections in a " +"particular Session." +msgstr "" +"batch-size が3なので、Hibernateは4回の SELECT で3個、3個、3個、1個をロードします。繰り返すと、属性の値は特定の " +"Session の中の初期化されていないコレクションの期待数に依存" +"します。" + +#. Tag: para +#: performance.xml:502 +#, no-c-format +msgid "" +"Batch fetching of collections is particularly useful if you have a nested " +"tree of items, ie. the typical bill-of-materials pattern. (Although a " +"nested set or a materialized path " +"might be a better option for read-mostly trees.)" +msgstr "" +"コレクションのバッチフェッチはアイテムのネストしたツリー、 すなわち、代表的な" +"部品表のパターンが ある場合に特に有用です。(しかし、読み込みが多いツリーで" +"は ネストしたset具体化したパス " +"がよりよい選択になります。)" + +#. Tag: title +#: performance.xml:511 +#, no-c-format msgid "Using subselect fetching" msgstr "サブセレクトフェッチの使用" -#: index.docbook:513 -msgid "If one lazy collection or single-valued proxy has to be fetched, Hibernate loads all of them, re-running the original query in a subselect. This works in the same way as batch-fetching, without the piecemeal loading." -msgstr "一つの遅延コレクションや単一値プロキシがフェッチされなければいけないとき、Hibernateは それらすべてをロードし、サブセレクトのオリジナルクエリが再度実行されます。これは バッチフェッチと同じ方法で動き、少しずつのロードは行いません。" +#. Tag: para +#: performance.xml:513 +#, no-c-format +msgid "" +"If one lazy collection or single-valued proxy has to be fetched, Hibernate " +"loads all of them, re-running the original query in a subselect. This works " +"in the same way as batch-fetching, without the piecemeal loading." +msgstr "" +"一つの遅延コレクションや単一値プロキシがフェッチされなければいけないとき、" +"Hibernateは それらすべてをロードし、サブセレクトのオリジナルクエリが再度実行" +"されます。これは バッチフェッチと同じ方法で動き、少しずつのロードは行いませ" +"ん。" -#: index.docbook:524 +#. Tag: title +#: performance.xml:524 +#, no-c-format msgid "Using lazy property fetching" msgstr "遅延プロパティフェッチの使用" -#: index.docbook:526 -msgid "Hibernate3 supports the lazy fetching of individual properties. This optimization technique is also known as fetch groups. Please note that this is mostly a marketing feature, as in practice, optimizing row reads is much more important than optimization of column reads. However, only loading some properties of a class might be useful in extreme cases, when legacy tables have hundreds of columns and the data model can not be improved." -msgstr "Hibernate3はプロパティごとの遅延フェッチをサポートしています。この最適化手法は グループのフェッチ としても知られています。これはほとんど 要望から出た機能であることに注意してください。実際には列読み込みの最適化よりも、 行読み込みの最適化が非常に重要です。 しかし、クラスのいくつかのプロパティだけを読み込むことは、既存のテーブルが何百もの列を持ち、 データモデルを改善できないなどの極端な場合には有用です。" - -#: index.docbook:535 -msgid "To enable lazy property loading, set the lazy attribute on your particular property mappings:" -msgstr "遅延プロパティ読み込みを有効にするには、対象のプロパティのマッピングで lazy 属性をセットしてください。" - -#: index.docbook:540 +#. Tag: para +#: performance.xml:526 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"Hibernate3 supports the lazy fetching of individual properties. This " +"optimization technique is also known as fetch groups. " +"Please note that this is mostly a marketing feature, as in practice, " +"optimizing row reads is much more important than optimization of column " +"reads. However, only loading some properties of a class might be useful in " +"extreme cases, when legacy tables have hundreds of columns and the data " +"model can not be improved." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"Hibernate3はプロパティごとの遅延フェッチをサポートしています。この最適化手法" +"は グループのフェッチ としても知られています。これはほと" +"んど 要望から出た機能であることに注意してください。実際には列読み込みの最適化" +"よりも、 行読み込みの最適化が非常に重要です。 しかし、クラスのいくつかのプロ" +"パティだけを読み込むことは、既存のテーブルが何百もの列を持ち、 データモデルを" +"改善できないなどの極端な場合には有用です。" -#: index.docbook:542 -msgid "Lazy property loading requires buildtime bytecode instrumentation! If your persistent classes are not enhanced, Hibernate will silently ignore lazy property settings and fall back to immediate fetching." -msgstr "遅延プロパティ読み込みはビルド時のバイトコード組み込みを必要とします!もし 永続クラスに組み込みがされていないなら、Hibernateは黙って遅延プロパティの設定を無視して、 即時フェッチに戻します。" +#. Tag: para +#: performance.xml:535 +#, no-c-format +msgid "" +"To enable lazy property loading, set the lazy attribute " +"on your particular property mappings:" +msgstr "" +"遅延プロパティ読み込みを有効にするには、対象のプロパティのマッピングで " +"lazy 属性をセットしてください。" -#: index.docbook:548 +#. Tag: programlisting +#: performance.xml:540 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: performance.xml:542 +#, no-c-format +msgid "" +"Lazy property loading requires buildtime bytecode instrumentation! If your " +"persistent classes are not enhanced, Hibernate will silently ignore lazy " +"property settings and fall back to immediate fetching." +msgstr "" +"遅延プロパティ読み込みはビルド時のバイトコード組み込みを必要とします!もし 永" +"続クラスに組み込みがされていないなら、Hibernateは黙って遅延プロパティの設定を" +"無視して、 即時フェッチに戻します。" + +#. Tag: para +#: performance.xml:548 +#, no-c-format msgid "For bytecode instrumentation, use the following Ant task:" msgstr "バイトコード組み込みは以下のAntタスクを使ってください。" -#: index.docbook:552 +#. Tag: programlisting +#: performance.xml:552 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:554 -msgid "A different (better?) way to avoid unnecessary column reads, at least for read-only transactions is to use the projection features of HQL or Criteria queries. This avoids the need for buildtime bytecode processing and is certainly a prefered solution." -msgstr "不要な列を読み込まないための、別の(よりよい?)方法は、少なくとも 読み込みのみのトランザクションにおいては、HQLやCriteriaクエリの射影 機能を使うことです。この方法はビルド時のバイトコード組み込みが不要になり、 より良い解決方法です。" +#. Tag: para +#: performance.xml:554 +#, no-c-format +msgid "" +"A different (better?) way to avoid unnecessary column reads, at least for " +"read-only transactions is to use the projection features of HQL or Criteria " +"queries. This avoids the need for buildtime bytecode processing and is " +"certainly a prefered solution." +msgstr "" +"不要な列を読み込まないための、別の(よりよい?)方法は、少なくとも 読み込みの" +"みのトランザクションにおいては、HQLやCriteriaクエリの射影 機能を使うことで" +"す。この方法はビルド時のバイトコード組み込みが不要になり、 より良い解決方法で" +"す。" -#: index.docbook:561 -msgid "You may force the usual eager fetching of properties using fetch all properties in HQL." -msgstr "HQLで fetch all properties を使うことで、普通どおりの プロパティの即時フェッチングを強制することが出来ます。" +#. Tag: para +#: performance.xml:561 +#, no-c-format +msgid "" +"You may force the usual eager fetching of properties using fetch " +"all properties in HQL." +msgstr "" +"HQLで fetch all properties を使うことで、普通どおりの プロ" +"パティの即時フェッチングを強制することが出来ます。" -#: index.docbook:571 +#. Tag: title +#: performance.xml:571 +#, no-c-format msgid "The Second Level Cache" msgstr "第2レベルキャッシュ" -#: index.docbook:573 -msgid "A Hibernate Session is a transaction-level cache of persistent data. It is possible to configure a cluster or JVM-level (SessionFactory-level) cache on a class-by-class and collection-by-collection basis. You may even plug in a clustered cache. Be careful. Caches are never aware of changes made to the persistent store by another application (though they may be configured to regularly expire cached data)." -msgstr "Hibernateの Session は永続データのトランザクションレベルのキャッシュです。 class-by-classとcollection-by-collectionごとの、クラスタレベルやJVMレベル ( SessionFactory レベル)のキャッシュを設定することが出来ます。 クラスタ化されたキャッシュにつなぐことさえ出来ます。しかし注意してください。 キャッシュは他のアプリケーションによる永続層の変更を 考慮しません(キャッシュデータを定期的に期限切れにする設定は出来ます)。" +#. Tag: para +#: performance.xml:573 +#, no-c-format +msgid "" +"A Hibernate Session is a transaction-level cache of " +"persistent data. It is possible to configure a cluster or JVM-level " +"(SessionFactory-level) cache on a class-by-class and " +"collection-by-collection basis. You may even plug in a clustered cache. Be " +"careful. Caches are never aware of changes made to the persistent store by " +"another application (though they may be configured to regularly expire " +"cached data)." +msgstr "" +"Hibernateの Session は永続データのトランザクションレベルの" +"キャッシュです。 class-by-classとcollection-by-collectionごとの、クラスタレベ" +"ルやJVMレベル ( SessionFactory レベル)のキャッシュを設定" +"することが出来ます。 クラスタ化されたキャッシュにつなぐことさえ出来ます。しか" +"し注意してください。 キャッシュは他のアプリケーションによる永続層の変更を 考" +"慮しません(キャッシュデータを定期的に期限切れにする設定は出来ます)。" -#: index.docbook:581 -msgid "You have the option to tell Hibernate which caching implementation to use by specifying the name of a class that implements org.hibernate.cache.CacheProvider using the property hibernate.cache.provider_class. Hibernate comes bundled with a number of built-in integrations with open-source cache providers (listed below); additionally, you could implement your own and plug it in as outlined above. Note that versions prior to 3.2 defaulted to use EhCache as the default cache provider; that is no longer the case as of 3.2." -msgstr "Hibernateが使用するキャッシュ実装は、hibernate.cache.provider_class プロパティに org.hibernate.cache.CacheProvider を実装したクラス名を指定することで変更できます。 Hibernateは多くのオープンソースのキャッシュプロバイダをビルトイン実装で持っています(後にリストがあります)。 加えて、前に説明したように、あなた自身が独自の実装をして、それを組み込むことも出来ます。 バージョン3.2より前ではEhCacheがデフォルトのキャッシュプロバイダであることに注意してください。 バージョン3.2ではこれは当てはまりません。" +#. Tag: para +#: performance.xml:581 +#, no-c-format +msgid "" +"You have the option to tell Hibernate which caching implementation to use by " +"specifying the name of a class that implements org.hibernate.cache." +"CacheProvider using the property hibernate.cache." +"provider_class. Hibernate comes bundled with a number of built-in " +"integrations with open-source cache providers (listed below); additionally, " +"you could implement your own and plug it in as outlined above. Note that " +"versions prior to 3.2 defaulted to use EhCache as the default cache " +"provider; that is no longer the case as of 3.2." +msgstr "" +"Hibernateが使用するキャッシュ実装は、hibernate.cache." +"provider_class プロパティに org.hibernate.cache." +"CacheProvider を実装したクラス名を指定することで変更できます。 " +"Hibernateは多くのオープンソースのキャッシュプロバイダをビルトイン実装で持って" +"います(後にリストがあります)。 加えて、前に説明したように、あなた自身が独自" +"の実装をして、それを組み込むことも出来ます。 バージョン3.2より前ではEhCacheが" +"デフォルトのキャッシュプロバイダであることに注意してください。 バージョン3.2" +"ではこれは当てはまりません。" -#: index.docbook:592 +#. Tag: title +#: performance.xml:592 +#, no-c-format msgid "Cache Providers" msgstr "キャッシュプロバイダ" -#: index.docbook:601, index.docbook:774 +#. Tag: entry +#: performance.xml:601 performance.xml:774 +#, no-c-format msgid "Cache" msgstr "キャッシュ" -#: index.docbook:602 +#. Tag: entry +#: performance.xml:602 +#, no-c-format msgid "Provider class" msgstr "プロバイダクラス" -#: index.docbook:603 +#. Tag: entry +#: performance.xml:603 +#, no-c-format msgid "Type" -msgstr "タイプ" +msgstr "タイプ" -#: index.docbook:604 +#. Tag: entry +#: performance.xml:604 +#, no-c-format msgid "Cluster Safe" msgstr "クラスタセーフ" -#: index.docbook:605 +#. Tag: entry +#: performance.xml:605 +#, no-c-format msgid "Query Cache Supported" msgstr "クエリキャッシュのサポート" -#: index.docbook:610, index.docbook:783 +#. Tag: entry +#: performance.xml:610 performance.xml:783 +#, no-c-format msgid "Hashtable (not intended for production use)" msgstr "Hashtable(製品用として意図していません)" -#: index.docbook:611 +#. Tag: literal +#: performance.xml:611 +#, no-c-format msgid "org.hibernate.cache.HashtableCacheProvider" msgstr "org.hibernate.cache.HashtableCacheProvider" -#: index.docbook:612 +#. Tag: entry +#: performance.xml:612 +#, no-c-format msgid "memory" -msgstr "メモリ" +msgstr "メモリ" -#: index.docbook:614, index.docbook:621, index.docbook:628, index.docbook:784, index.docbook:785, index.docbook:786, index.docbook:791, index.docbook:792, index.docbook:793, index.docbook:798, index.docbook:799, index.docbook:800, index.docbook:805, index.docbook:806, index.docbook:812, index.docbook:815 +#. Tag: entry +#: performance.xml:614 performance.xml:621 performance.xml:628 +#: performance.xml:784 performance.xml:785 performance.xml:786 +#: performance.xml:791 performance.xml:792 performance.xml:793 +#: performance.xml:798 performance.xml:799 performance.xml:800 +#: performance.xml:805 performance.xml:806 performance.xml:812 +#: performance.xml:815 +#, no-c-format msgid "yes" -msgstr "yes" +msgstr "" -#: index.docbook:617, index.docbook:790 +#. Tag: entry +#: performance.xml:617 performance.xml:790 +#, no-c-format msgid "EHCache" msgstr "EHCache" -#: index.docbook:618 +#. Tag: literal +#: performance.xml:618 +#, no-c-format msgid "org.hibernate.cache.EhCacheProvider" msgstr "org.hibernate.cache.EhCacheProvider" -#: index.docbook:619, index.docbook:626 +#. Tag: entry +#: performance.xml:619 performance.xml:626 +#, no-c-format msgid "memory, disk" msgstr "メモリ、ディスク" -#: index.docbook:624, index.docbook:797 +#. Tag: entry +#: performance.xml:624 performance.xml:797 +#, no-c-format msgid "OSCache" msgstr "OSCache" -#: index.docbook:625 +#. Tag: literal +#: performance.xml:625 +#, no-c-format msgid "org.hibernate.cache.OSCacheProvider" msgstr "org.hibernate.cache.OSCacheProvider" -#: index.docbook:631, index.docbook:804 +#. Tag: entry +#: performance.xml:631 performance.xml:804 +#, no-c-format msgid "SwarmCache" -msgstr "yes" - -#: index.docbook:632 -msgid "org.hibernate.cache.SwarmCacheProvider" msgstr "SwarmCache" -#: index.docbook:633 -msgid "clustered (ip multicast)" +#. Tag: literal +#: performance.xml:632 +#, no-c-format +msgid "org.hibernate.cache.SwarmCacheProvider" msgstr "org.hibernate.cache.SwarmCacheProvider" -#: index.docbook:634 -msgid "yes (clustered invalidation)" +#. Tag: entry +#: performance.xml:633 +#, no-c-format +msgid "clustered (ip multicast)" msgstr "クラスタ(ipマルチキャスト)" -#: index.docbook:638, index.docbook:811 -msgid "JBoss TreeCache" +#. Tag: entry +#: performance.xml:634 +#, no-c-format +msgid "yes (clustered invalidation)" msgstr "yes(クラスタ無効化)" -#: index.docbook:639 -msgid "org.hibernate.cache.TreeCacheProvider" +#. Tag: entry +#: performance.xml:638 performance.xml:811 +#, no-c-format +msgid "JBoss TreeCache" msgstr "JBoss TreeCache" -#: index.docbook:640 -msgid "clustered (ip multicast), transactional" +#. Tag: literal +#: performance.xml:639 +#, no-c-format +msgid "org.hibernate.cache.TreeCacheProvider" msgstr "org.hibernate.cache.TreeCacheProvider" -#: index.docbook:641 -msgid "yes (replication)" +#. Tag: entry +#: performance.xml:640 +#, no-c-format +msgid "clustered (ip multicast), transactional" msgstr "クラスタ(ipマルチキャスト)、トランザクショナル" -#: index.docbook:642 -msgid "yes (clock sync req.)" +#. Tag: entry +#: performance.xml:641 +#, no-c-format +msgid "yes (replication)" msgstr "yes(複製)" -#: index.docbook:649 -msgid "Cache mappings" +#. Tag: entry +#: performance.xml:642 +#, no-c-format +msgid "yes (clock sync req.)" msgstr "yes(時刻同期が必要)" -#: index.docbook:651 -msgid "The <cache> element of a class or collection mapping has the following form:" +#. Tag: title +#: performance.xml:649 +#, no-c-format +msgid "Cache mappings" msgstr "キャッシュのマッピング" -#: index.docbook:662 +#. Tag: para +#: performance.xml:651 +#, no-c-format msgid "" - "]]>" -msgstr "クラスやコレクションのマッピングの <cache> 要素は以下の形式です。" - -#: index.docbook:665 -msgid "usage (required) specifies the caching strategy: transactional, read-write, nonstrict-read-write or read-only" +"The <cache> element of a class or collection " +"mapping has the following form:" msgstr "" - "]]>" +"クラスやコレクションのマッピングの <cache> 要素は以" +"下の形式です。" -#: index.docbook:674 -msgid "region (optional, defaults to the class or collection role name) specifies the name of the second level cache region" -msgstr "usage (required) specifies the caching strategy: transactional, read-write, nonstrict-read-write or read-only" +#. Tag: programlisting +#: performance.xml:662 +#, no-c-format +msgid "" +"]]>" +msgstr "" -#: index.docbook:681 -msgid "include (optional, defaults to all) non-lazy specifies that properties of the entity mapped with lazy=\"true\" may not be cached when attribute-level lazy fetching is enabled" -msgstr "region (optional, defaults to the class or collection role name) specifies the name of the second level cache region" +#. Tag: para +#: performance.xml:665 +#, no-c-format +msgid "" +"usage (required) specifies the caching strategy: " +"transactional, read-write, " +"nonstrict-read-write or read-only" +msgstr "" +"usage (required) specifies the caching strategy: " +"transactional, read-write, " +"nonstrict-read-write or read-only" -#: index.docbook:691 -msgid "Alternatively (preferrably?), you may specify <class-cache> and <collection-cache> elements in hibernate.cfg.xml." -msgstr "include (optional, defaults to all) non-lazy specifies that properties of the entity mapped with lazy=\"true\" may not be cached when attribute-level lazy fetching is enabled" +#. Tag: para +#: performance.xml:674 +#, no-c-format +msgid "" +"region (optional, defaults to the class or collection " +"role name) specifies the name of the second level cache region" +msgstr "" +"region (optional, defaults to the class or collection " +"role name) specifies the name of the second level cache region" -#: index.docbook:696 -msgid "The usage attribute specifies a cache concurrency strategy." -msgstr "または(よりよい方法として?)、 hibernate.cfg.xml<class-cache><collection-cache> 要素を指定することも出来ます。" +#. Tag: para +#: performance.xml:681 +#, no-c-format +msgid "" +"include (optional, defaults to all) " +"non-lazy specifies that properties of the entity mapped " +"with lazy=\"true\" may not be cached when attribute-level " +"lazy fetching is enabled" +msgstr "" +"include (optional, defaults to all) " +"non-lazy specifies that properties of the entity mapped " +"with lazy=\"true\" may not be cached when attribute-level " +"lazy fetching is enabled" -#: index.docbook:703 +#. Tag: para +#: performance.xml:691 +#, no-c-format +msgid "" +"Alternatively (preferrably?), you may specify <class-cache> and <collection-cache> elements in " +"hibernate.cfg.xml." +msgstr "" +"または(よりよい方法として?)、 hibernate.cfg.xml に " +"<class-cache><collection-cache> 要素を指定することも出来ます。" + +#. Tag: para +#: performance.xml:696 +#, no-c-format +msgid "" +"The usage attribute specifies a cache " +"concurrency strategy." +msgstr "" +"usage 属性は キャッシュの並列性戦略 " +"を指定します。" + +#. Tag: title +#: performance.xml:703 +#, no-c-format msgid "Strategy: read only" -msgstr "usage 属性は キャッシュの並列性戦略 を指定します。" - -#: index.docbook:705 -msgid "If your application needs to read but never modify instances of a persistent class, a read-only cache may be used. This is the simplest and best performing strategy. It's even perfectly safe for use in a cluster." msgstr "read only戦略" -#: index.docbook:711 +#. Tag: para +#: performance.xml:705 +#, no-c-format msgid "" - "\n" - " \n" - " ....\n" - "]]>" -msgstr "もしアプリケーションが読み込みのみ必要で、永続クラスのインスタンスを変更しないなら、 read-only キャッシュを使うことが出来ます。これはもっとも単純で もっともパフォーマンスの良い戦略です。クラスタでの使用も完全に安全です。" - -#: index.docbook:717 -msgid "Strategy: read/write" +"If your application needs to read but never modify instances of a persistent " +"class, a read-only cache may be used. This is the " +"simplest and best performing strategy. It's even perfectly safe for use in a " +"cluster." msgstr "" - " \n" - " \n" - " .... \n" - "]]>" +"もしアプリケーションが読み込みのみ必要で、永続クラスのインスタンスを変更しな" +"いなら、 read-only キャッシュを使うことが出来ます。これは" +"もっとも単純で もっともパフォーマンスの良い戦略です。クラスタでの使用も完全に" +"安全です。" -#: index.docbook:719 -msgid "If the application needs to update data, a read-write cache might be appropriate. This cache strategy should never be used if serializable transaction isolation level is required. If the cache is used in a JTA environment, you must specify the property hibernate.transaction.manager_lookup_class, naming a strategy for obtaining the JTA TransactionManager. In other environments, you should ensure that the transaction is completed when Session.close() or Session.disconnect() is called. If you wish to use this strategy in a cluster, you should ensure that the underlying cache implementation supports locking. The built-in cache providers do not." +#. Tag: programlisting +#: performance.xml:711 +#, no-c-format +msgid "" +"\n" +" \n" +" ....\n" +"]]>" +msgstr "" + +#. Tag: title +#: performance.xml:717 +#, no-c-format +msgid "Strategy: read/write" msgstr "read/write戦略" -#: index.docbook:730 +#. Tag: para +#: performance.xml:719 +#, no-c-format msgid "" - "\n" - " \n" - " ....\n" - " \n" - " \n" - " ....\n" - " \n" - "]]>" -msgstr "アプリケーションがデータを更新する必要があるなら、 read-write キャッシュが適当かも しれません。このキャッシュ戦略は、シリアライザブルなトランザクション分離レベルが要求されるなら、 決して使うべきではありません。もしキャッシュがJTA環境で使われるなら、JTA TransactionManager を取得するための方法を示す hibernate.transaction.manager_lookup_class プロパティを指定しなければなりません。他の環境では、 Session.close()Session.disconnect() が呼ばれたときに、確実にトランザクションが完了 していなければなりません。 もしクラスタでこの戦略を使いたいなら、基となるキャッシュの実装がロックをサポート していることを保証しなければなりません。 組み込みのキャッシュプロバイダは サポートしていません 。" - -#: index.docbook:735 -msgid "Strategy: nonstrict read/write" +"If the application needs to update data, a read-write " +"cache might be appropriate. This cache strategy should never be used if " +"serializable transaction isolation level is required. If the cache is used " +"in a JTA environment, you must specify the property hibernate." +"transaction.manager_lookup_class, naming a strategy for obtaining " +"the JTA TransactionManager. In other environments, you " +"should ensure that the transaction is completed when Session.close()" +" or Session.disconnect() is called. If you wish " +"to use this strategy in a cluster, you should ensure that the underlying " +"cache implementation supports locking. The built-in cache providers do " +"not." msgstr "" - " \n" - " \n" - " .... \n" - " \n" - " \n" - " .... \n" - " \n" - "]]>" +"アプリケーションがデータを更新する必要があるなら、 read-write キャッシュが適当かも しれません。このキャッシュ戦略は、シリアライザ" +"ブルなトランザクション分離レベルが要求されるなら、 決して使うべきではありませ" +"ん。もしキャッシュがJTA環境で使われるなら、JTA TransactionManager を取得するための方法を示す hibernate.transaction." +"manager_lookup_class プロパティを指定しなければなりません。他の環境" +"では、 Session.close()Session.disconnect() が呼ばれたときに、確実にトランザクションが完了 していなければなりま" +"せん。 もしクラスタでこの戦略を使いたいなら、基となるキャッシュの実装がロック" +"をサポート していることを保証しなければなりません。 組み込みのキャッシュプロ" +"バイダは サポートしていません 。" -#: index.docbook:737 -msgid "If the application only occasionally needs to update data (ie. if it is extremely unlikely that two transactions would try to update the same item simultaneously) and strict transaction isolation is not required, a nonstrict-read-write cache might be appropriate. If the cache is used in a JTA environment, you must specify hibernate.transaction.manager_lookup_class. In other environments, you should ensure that the transaction is completed when Session.close() or Session.disconnect() is called." +#. Tag: programlisting +#: performance.xml:730 +#, no-c-format +msgid "" +"\n" +" \n" +" ....\n" +" \n" +" \n" +" ....\n" +" \n" +"]]>" +msgstr "" + +#. Tag: title +#: performance.xml:735 +#, no-c-format +msgid "Strategy: nonstrict read/write" msgstr "厳密ではないread/write戦略" -#: index.docbook:749 -msgid "Strategy: transactional" -msgstr "アプリケーションがたまにしかデータを更新する必要はなく(すなわち二つのトランザクションが 同時に同じアイテムを更新しようとすることはほとんど起こらない)、厳密なトランザクション分離が 要求されないなら、 nonstrict-read-write キャッシュが適当かもしれません。 もしキャッシュがJTA環境で使われるなら、 hibernate.transaction.manager_lookup_class を指定しなければなりません。他の環境では、 Session.close()Session.disconnect() が呼ばれたときに、確実にトランザクションが完了 していなければなりません。" +#. Tag: para +#: performance.xml:737 +#, no-c-format +msgid "" +"If the application only occasionally needs to update data (ie. if it is " +"extremely unlikely that two transactions would try to update the same item " +"simultaneously) and strict transaction isolation is not required, a " +"nonstrict-read-write cache might be appropriate. If the " +"cache is used in a JTA environment, you must specify hibernate." +"transaction.manager_lookup_class. In other environments, you " +"should ensure that the transaction is completed when Session.close()" +" or Session.disconnect() is called." +msgstr "" +"アプリケーションがたまにしかデータを更新する必要はなく(すなわち二つのトラン" +"ザクションが 同時に同じアイテムを更新しようとすることはほとんど起こらない)、" +"厳密なトランザクション分離が 要求されないなら、 nonstrict-read-" +"write キャッシュが適当かもしれません。 もしキャッシュがJTA環境で使" +"われるなら、 hibernate.transaction.manager_lookup_class を" +"指定しなければなりません。他の環境では、 Session.close() " +"や Session.disconnect() が呼ばれたときに、確実にトランザク" +"ションが完了 していなければなりません。" -#: index.docbook:751 -msgid "The transactional cache strategy provides support for fully transactional cache providers such as JBoss TreeCache. Such a cache may only be used in a JTA environment and you must specify hibernate.transaction.manager_lookup_class." +#. Tag: title +#: performance.xml:749 +#, no-c-format +msgid "Strategy: transactional" msgstr "transactional戦略" -#: index.docbook:759 -msgid "None of the cache providers support all of the cache concurrency strategies. The following table shows which providers are compatible with which concurrency strategies." -msgstr "transactional キャッシュ戦略はJBoss TreeCacheのような完全なトランザクショナル キャッシュプロバイダのサポートを提供します。 このようなキャッシュはJTA環境でのみ使用可能で、 hibernate.transaction.manager_lookup_class を指定しなければなりません。" +#. Tag: para +#: performance.xml:751 +#, no-c-format +msgid "" +"The transactional cache strategy provides support for " +"fully transactional cache providers such as JBoss TreeCache. Such a cache " +"may only be used in a JTA environment and you must specify " +"hibernate.transaction.manager_lookup_class." +msgstr "" +"transactional キャッシュ戦略はJBoss TreeCacheのような完全" +"なトランザクショナル キャッシュプロバイダのサポートを提供します。 このような" +"キャッシュはJTA環境でのみ使用可能で、 hibernate.transaction." +"manager_lookup_class を指定しなければなりません。" -#: index.docbook:765 +#. Tag: para +#: performance.xml:759 +#, no-c-format +msgid "" +"None of the cache providers support all of the cache concurrency strategies. " +"The following table shows which providers are compatible with which " +"concurrency strategies." +msgstr "" +"すべての同時並行性キャッシュ戦略をサポートしているキャッシュプロバイダはあり" +"ません。 以下の表はどのプロバイダがどの同時並列性戦略に対応するかを表していま" +"す。" + +#. Tag: title +#: performance.xml:765 +#, no-c-format msgid "Cache Concurrency Strategy Support" -msgstr "すべての同時並行性キャッシュ戦略をサポートしているキャッシュプロバイダはありません。 以下の表はどのプロバイダがどの同時並列性戦略に対応するかを表しています。" +msgstr "同時並行性キャッシュ戦略のサポート" -#: index.docbook:775 +#. Tag: entry +#: performance.xml:775 +#, no-c-format msgid "read-only" -msgstr "キャッシュ" - -#: index.docbook:776 -msgid "nonstrict-read-write" msgstr "read-only" -#: index.docbook:777 -msgid "read-write" +#. Tag: entry +#: performance.xml:776 +#, no-c-format +msgid "nonstrict-read-write" msgstr "厳密ではないread-write" -#: index.docbook:778 -msgid "transactional" +#. Tag: entry +#: performance.xml:777 +#, no-c-format +msgid "read-write" msgstr "read-write" -#: index.docbook:824 -msgid "Managing the caches" -msgstr "yes" +#. Tag: entry +#: performance.xml:778 +#, no-c-format +msgid "transactional" +msgstr "transactional" -#: index.docbook:826 -msgid "Whenever you pass an object to save(), update() or saveOrUpdate() and whenever you retrieve an object using load(), get(), list(), iterate() or scroll(), that object is added to the internal cache of the Session." +#. Tag: title +#: performance.xml:824 +#, no-c-format +msgid "Managing the caches" msgstr "キャッシュの管理" -#: index.docbook:833 -msgid "When flush() is subsequently called, the state of that object will be synchronized with the database. If you do not want this synchronization to occur or if you are processing a huge number of objects and need to manage memory efficiently, the evict() method may be used to remove the object and its collections from the first-level cache." -msgstr "オブジェクトを save()update()saveOrUpdate() に渡すとき、そして load()get()list()iterate()scroll() を使ってオブジェクトを復元するときには常に、 そのオブジェクトは Session の内部キャッシュに追加されます。" - -#: index.docbook:841 +#. Tag: para +#: performance.xml:826 +#, no-c-format msgid "" - "" -msgstr "次に flush() が呼ばれると、オブジェクトの状態はデータベースと同期化されます。 もしこの同期が起こることを望まないときや、膨大な数のオブジェクトを処理していてメモリを効率的に 扱う必要があるときは、 evict() メソッドを使って一次キャッシュから オブジェクトやコレクションを削除することが出来ます。" - -#: index.docbook:843 -msgid "The Session also provides a contains() method to determine if an instance belongs to the session cache." +"Whenever you pass an object to save(), update() or saveOrUpdate() and whenever you retrieve an " +"object using load(), get(), " +"list(), iterate() or scroll()" +", that object is added to the internal cache of the " +"Session." msgstr "" - "" +"オブジェクトを save()update() 、 " +"saveOrUpdate() に渡すとき、そして load()get()list() 、 " +"iterate()scroll() を使ってオブジェ" +"クトを復元するときには常に、 そのオブジェクトは Session の" +"内部キャッシュに追加されます。" -#: index.docbook:848 -msgid "To completely evict all objects from the session cache, call Session.clear()" -msgstr "Session はインスタンスがセッションキャッシュに含まれるかどうかを判断するための contains() メソッドも提供します。" - -#: index.docbook:852 -msgid "For the second-level cache, there are methods defined on SessionFactory for evicting the cached state of an instance, entire class, collection instance or entire collection role." -msgstr "すべてのオブジェクトをセッションキャッシュから完全に取り除くには、Session.clear() を呼び出してください。" - -#: index.docbook:858 +#. Tag: para +#: performance.xml:833 +#, no-c-format msgid "" - "" -msgstr "二次キャッシュのために、 SessionFactory には インスタンス、クラス全体、コレクションのインスタンス、コレクション全体をキャッシュから 削除するためのメソッドがそれぞれ定義されています。" - -#: index.docbook:860 -msgid "The CacheMode controls how a particular session interacts with the second-level cache." +"When flush() is subsequently called, the state of that " +"object will be synchronized with the database. If you do not want this " +"synchronization to occur or if you are processing a huge number of objects " +"and need to manage memory efficiently, the evict() method " +"may be used to remove the object and its collections from the first-level " +"cache." msgstr "" - "" +"次に flush() が呼ばれると、オブジェクトの状態はデータベー" +"スと同期化されます。 もしこの同期が起こることを望まないときや、膨大な数のオブ" +"ジェクトを処理していてメモリを効率的に 扱う必要があるときは、 evict" +"() メソッドを使って一次キャッシュから オブジェクトやコレクションを" +"削除することが出来ます。" -#: index.docbook:867 -msgid "CacheMode.NORMAL - read items from and write items to the second-level cache" -msgstr "CacheMode は特定のセッションが二次キャッシュとどのように相互作用するかを 指定します。" - -#: index.docbook:872 -msgid "CacheMode.GET - read items from the second-level cache, but don't write to the second-level cache except when updating data" -msgstr "CacheMode.NORMAL - アイテムの読み込みと書き込みで二次キャッシュを使います" - -#: index.docbook:878 -msgid "CacheMode.PUT - write items to the second-level cache, but don't read from the second-level cache" -msgstr "CacheMode.GET - 読み込みは二次キャッシュから行いますが、データを 更新した場合を除いて二次キャッシュに書き込みをしません。" - -#: index.docbook:884 -msgid "CacheMode.REFRESH - write items to the second-level cache, but don't read from the second-level cache, bypass the effect of hibernate.cache.use_minimal_puts, forcing a refresh of the second-level cache for all items read from the database" -msgstr "CacheMode.PUT - 二次キャッシュにアイテムを書き込みますが、読み込みには 二次キャッシュを使いません。" - -#: index.docbook:892 -msgid "To browse the contents of a second-level or query cache region, use the Statistics API:" -msgstr "CacheMode.REFRESH - 二次キャッシュにアイテムを書き込みますが、読み込みには 二次キャッシュを使わず、 hibernate.cache.use_minimal_puts の影響を受けずに、データベースから読み込むすべてのアイテムの二次キャッシュを強制的にリフレッシュします。" - -#: index.docbook:897 +#. Tag: programlisting +#: performance.xml:841 +#, no-c-format msgid "" - "" -msgstr "二次キャッシュの内容やクエリキャッシュ領域を見るために、 Statistics APIを 使ってください。" - -#: index.docbook:899 -msgid "You'll need to enable statistics, and, optionally, force Hibernate to keep the cache entries in a more human-understandable format:" +"" msgstr "" - "" -#: index.docbook:904 +#. Tag: para +#: performance.xml:843 +#, no-c-format msgid "" - "" -msgstr "統計情報を有効にして、さらにオプションとして、キャッシュエントリを 人がより理解可能な形式で保持することをHibernateに強制します。" +"The Session also provides a contains() " +"method to determine if an instance belongs to the session cache." +msgstr "" +"Session はインスタンスがセッションキャッシュに含まれるかど" +"うかを判断するための contains() メソッドも提供します。" -#: index.docbook:909 +#. Tag: para +#: performance.xml:848 +#, no-c-format +msgid "" +"To completely evict all objects from the session cache, call " +"Session.clear()" +msgstr "" +"すべてのオブジェクトをセッションキャッシュから完全に取り除くには、" +"Session.clear() を呼び出してください。" + +#. Tag: para +#: performance.xml:852 +#, no-c-format +msgid "" +"For the second-level cache, there are methods defined on " +"SessionFactory for evicting the cached state of an " +"instance, entire class, collection instance or entire collection role." +msgstr "" +"二次キャッシュのために、 SessionFactory には インスタン" +"ス、クラス全体、コレクションのインスタンス、コレクション全体をキャッシュから " +"削除するためのメソッドがそれぞれ定義されています。" + +#. Tag: programlisting +#: performance.xml:858 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: performance.xml:860 +#, no-c-format +msgid "" +"The CacheMode controls how a particular session interacts " +"with the second-level cache." +msgstr "" +"CacheMode は特定のセッションが二次キャッシュとどのように相" +"互作用するかを 指定します。" + +#. Tag: para +#: performance.xml:867 +#, no-c-format +msgid "" +"CacheMode.NORMAL - read items from and write items to the " +"second-level cache" +msgstr "" +"CacheMode.NORMAL - アイテムの読み込みと書き込みで二次" +"キャッシュを使います" + +#. Tag: para +#: performance.xml:872 +#, no-c-format +msgid "" +"CacheMode.GET - read items from the second-level cache, " +"but don't write to the second-level cache except when updating data" +msgstr "" +"CacheMode.GET - 読み込みは二次キャッシュから行いますが、" +"データを 更新した場合を除いて二次キャッシュに書き込みをしません。" + +#. Tag: para +#: performance.xml:878 +#, no-c-format +msgid "" +"CacheMode.PUT - write items to the second-level cache, " +"but don't read from the second-level cache" +msgstr "" +"CacheMode.PUT - 二次キャッシュにアイテムを書き込みますが、" +"読み込みには 二次キャッシュを使いません。" + +#. Tag: para +#: performance.xml:884 +#, no-c-format +msgid "" +"CacheMode.REFRESH - write items to the second-level " +"cache, but don't read from the second-level cache, bypass the effect of " +"hibernate.cache.use_minimal_puts, forcing a refresh of " +"the second-level cache for all items read from the database" +msgstr "" +"CacheMode.REFRESH - 二次キャッシュにアイテムを書き込みます" +"が、読み込みには 二次キャッシュを使わず、 hibernate.cache." +"use_minimal_puts の影響を受けずに、データベースから読み込むすべての" +"アイテムの二次キャッシュを強制的にリフレッシュします。" + +#. Tag: para +#: performance.xml:892 +#, no-c-format +msgid "" +"To browse the contents of a second-level or query cache region, use the " +"Statistics API:" +msgstr "" +"二次キャッシュの内容やクエリキャッシュ領域を見るために、 " +"Statistics APIを 使ってください。" + +#. Tag: programlisting +#: performance.xml:897 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: performance.xml:899 +#, no-c-format +msgid "" +"You'll need to enable statistics, and, optionally, force Hibernate to keep " +"the cache entries in a more human-understandable format:" +msgstr "" +"統計情報を有効にして、さらにオプションとして、キャッシュエントリを 人がより理" +"解可能な形式で保持することをHibernateに強制します。" + +#. Tag: programlisting +#: performance.xml:904 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: performance.xml:909 +#, no-c-format msgid "The Query Cache" -msgstr "" - "" - -#: index.docbook:911 -msgid "Query result sets may also be cached. This is only useful for queries that are run frequently with the same parameters. To use the query cache you must first enable it:" msgstr "クエリキャッシュ" -#: index.docbook:916 -msgid "" -msgstr "クエリのリザルトセットもキャッシュ出来ます。これは同じパラメータで何度も実行される クエリに対してのみ有用です。クエリキャッシュを使うには、まず設定で有効にしなくてはなりません。" - -#: index.docbook:918 -msgid "This setting causes the creation of two new cache regions - one holding cached query result sets (org.hibernate.cache.StandardQueryCache), the other holding timestamps of the most recent updates to queryable tables (org.hibernate.cache.UpdateTimestampsCache). Note that the query cache does not cache the state of the actual entities in the result set; it caches only identifier values and results of value type. So the query cache should always be used in conjunction with the second-level cache." -msgstr "" - -#: index.docbook:928 -msgid "Most queries do not benefit from caching, so by default queries are not cached. To enable caching, call Query.setCacheable(true). This call allows the query to look for existing cache results or add its results to the cache when it is executed." -msgstr "この設定は新たに二つのキャッシュ領域の作成を行います。一つはクエリのリザルトセットの キャッシュ( org.hibernate.cache.StandardQueryCache )を保持し、 もう1つはクエリ可能なテーブルへの最新の更新タイムスタンプ ( org.hibernate.cache.UpdateTimestampsCache )を保持します。 クエリキャッシュはリザルトセットの実際の要素の状態はキャッシュしないことに 注意してください。キャッシュするのは識別子の値と、値型の結果のみです。 そのため、クエリキャッシュは常に二次キャッシュと一緒に使うべきです。" - -#: index.docbook:935 -msgid "If you require fine-grained control over query cache expiration policies, you may specify a named cache region for a particular query by calling Query.setCacheRegion()." -msgstr "ほとんどのクエリはキャッシュの恩恵を受けないので、デフォルトではクエリはキャッシュされません。 キャッシュを有効にするには、 Query.setCacheable(true) を呼び出してください。 そうすればクエリが既存のキャッシュ結果を探し、クエリ実行時にその結果をキャッシュに追加する ようになります。" - -#: index.docbook:941 +#. Tag: para +#: performance.xml:911 +#, no-c-format msgid "" - "" -msgstr "クエリキャッシュの破棄ポリシーを細かく制御したいときは、 Query.setCacheRegion() を呼び出して特定のクエリに対するキャッシュ領域を指定することが出来ます。" - -#: index.docbook:943 -msgid "If the query should force a refresh of its query cache region, you should call Query.setCacheMode(CacheMode.REFRESH). This is particularly useful in cases where underlying data may have been updated via a separate process (i.e., not modified through Hibernate) and allows the application to selectively refresh particular query result sets. This is a more efficient alternative to eviction of a query cache region via SessionFactory.evictQueries()." +"Query result sets may also be cached. This is only useful for queries that " +"are run frequently with the same parameters. To use the query cache you must " +"first enable it:" msgstr "" - "" +"クエリのリザルトセットもキャッシュ出来ます。これは同じパラメータで何度も実行" +"される クエリに対してのみ有用です。クエリキャッシュを使うには、まず設定で有効" +"にしなくてはなりません。" -#: index.docbook:955 +#. Tag: programlisting +#: performance.xml:916 +#, no-c-format +msgid "" +msgstr "" + +#. Tag: para +#: performance.xml:918 +#, no-c-format +msgid "" +"This setting causes the creation of two new cache regions - one holding " +"cached query result sets (org.hibernate.cache.StandardQueryCache), the other holding timestamps of the most recent updates to " +"queryable tables (org.hibernate.cache.UpdateTimestampsCache). Note that the query cache does not cache the state of the actual " +"entities in the result set; it caches only identifier values and results of " +"value type. So the query cache should always be used in conjunction with the " +"second-level cache." +msgstr "" +"この設定は新たに二つのキャッシュ領域の作成を行います。一つはクエリのリザルト" +"セットの キャッシュ( org.hibernate.cache.StandardQueryCache )を保持し、 もう1つはクエリ可能なテーブルへの最新の更新タイムスタン" +"プ ( org.hibernate.cache.UpdateTimestampsCache )を保持し" +"ます。 クエリキャッシュはリザルトセットの実際の要素の状態はキャッシュしないこ" +"とに 注意してください。キャッシュするのは識別子の値と、値型の結果のみです。 " +"そのため、クエリキャッシュは常に二次キャッシュと一緒に使うべきです。" + +#. Tag: para +#: performance.xml:928 +#, no-c-format +msgid "" +"Most queries do not benefit from caching, so by default queries are not " +"cached. To enable caching, call Query.setCacheable(true). " +"This call allows the query to look for existing cache results or add its " +"results to the cache when it is executed." +msgstr "" +"ほとんどのクエリはキャッシュの恩恵を受けないので、デフォルトではクエリは" +"キャッシュされません。 キャッシュを有効にするには、 Query." +"setCacheable(true) を呼び出してください。 そうすればクエリが既存の" +"キャッシュ結果を探し、クエリ実行時にその結果をキャッシュに追加する ようになり" +"ます。" + +#. Tag: para +#: performance.xml:935 +#, no-c-format +msgid "" +"If you require fine-grained control over query cache expiration policies, " +"you may specify a named cache region for a particular query by calling " +"Query.setCacheRegion()." +msgstr "" +"クエリキャッシュの破棄ポリシーを細かく制御したいときは、 Query." +"setCacheRegion() を呼び出して特定のクエリに対するキャッシュ領域を指" +"定することが出来ます。" + +#. Tag: programlisting +#: performance.xml:941 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: performance.xml:943 +#, no-c-format +msgid "" +"If the query should force a refresh of its query cache region, you should " +"call Query.setCacheMode(CacheMode.REFRESH). This is " +"particularly useful in cases where underlying data may have been updated via " +"a separate process (i.e., not modified through Hibernate) and allows the " +"application to selectively refresh particular query result sets. This is a " +"more efficient alternative to eviction of a query cache region via " +"SessionFactory.evictQueries()." +msgstr "" +"クエリが自身のクエリキャッシュ領域のリフレッシュを強制しなければならないな" +"ら、 Query.setCacheMode(CacheMode.REFRESH) を呼び出すべき" +"です。これは 元となるデータが別のプロセスによって更新されたり(すなわち" +"Hibernateを通じて更新されない)、 アプリケーションに特定のクエリリザルトセッ" +"トを選択してリフレッシュさせる場合に特に有用です。 さらに有用なもう一つの方法" +"は、 SessionFactory.evictQueries() によってクエリキャッ" +"シュ領域を消去することです。" + +#. Tag: title +#: performance.xml:955 +#, no-c-format msgid "Understanding Collection performance" -msgstr "クエリが自身のクエリキャッシュ領域のリフレッシュを強制しなければならないなら、 Query.setCacheMode(CacheMode.REFRESH) を呼び出すべきです。これは 元となるデータが別のプロセスによって更新されたり(すなわちHibernateを通じて更新されない)、 アプリケーションに特定のクエリリザルトセットを選択してリフレッシュさせる場合に特に有用です。 さらに有用なもう一つの方法は、 SessionFactory.evictQueries() によってクエリキャッシュ領域を消去することです。" - -#: index.docbook:957 -msgid "We've already spent quite some time talking about collections. In this section we will highlight a couple more issues about how collections behave at runtime." -msgstr "☆14.1" - -#: index.docbook:964 -msgid "Taxonomy" msgstr "コレクションのパフォーマンスの理解" -#: index.docbook:966 +#. Tag: para +#: performance.xml:957 +#, no-c-format +msgid "" +"We've already spent quite some time talking about collections. In this " +"section we will highlight a couple more issues about how collections behave " +"at runtime." +msgstr "" +"コレクションの話題にはすでに多くの時間を使いました。この節では コレクションが" +"実行時にどのように振舞うかについての話題を2、3取り上げます。" + +#. Tag: title +#: performance.xml:964 +#, no-c-format +msgid "Taxonomy" +msgstr "分類" + +#. Tag: para +#: performance.xml:966 +#, no-c-format msgid "Hibernate defines three basic kinds of collections:" -msgstr "コレクションの話題にはすでに多くの時間を使いました。この節では コレクションが実行時にどのように振舞うかについての話題を2、3取り上げます。" - -#: index.docbook:970 -msgid "collections of values" -msgstr "分類" - -#: index.docbook:973 -msgid "one to many associations" msgstr "Hibernateは3つの基本的なコレクションの種類を定義しています。" -#: index.docbook:976 -msgid "many to many associations" +#. Tag: para +#: performance.xml:970 +#, no-c-format +msgid "collections of values" msgstr "値のコレクション" -#: index.docbook:980 -msgid "This classification distinguishes the various table and foreign key relationships but does not tell us quite everything we need to know about the relational model. To fully understand the relational structure and performance characteristics, we must also consider the structure of the primary key that is used by Hibernate to update or delete collection rows. This suggests the following classification:" +#. Tag: para +#: performance.xml:973 +#, no-c-format +msgid "one to many associations" msgstr "一対多関連" -#: index.docbook:991 -msgid "indexed collections" +#. Tag: para +#: performance.xml:976 +#, no-c-format +msgid "many to many associations" msgstr "多対多関連" -#: index.docbook:994 -msgid "sets" -msgstr "この分類はさまざまなテーブルや外部キー関連を区別しますが、私たちが知る必要のある 関連モデルについてほとんどなにも教えてくれません。関連構造やパフォーマンスの特徴を 完全に理解するには、Hibernateがコレクションの行を更新、削除するために使う主キーの 構造もまた考えなければなりません。これは以下の分類を提示します。" +#. Tag: para +#: performance.xml:980 +#, no-c-format +msgid "" +"This classification distinguishes the various table and foreign key " +"relationships but does not tell us quite everything we need to know about " +"the relational model. To fully understand the relational structure and " +"performance characteristics, we must also consider the structure of the " +"primary key that is used by Hibernate to update or delete collection rows. " +"This suggests the following classification:" +msgstr "" +"この分類はさまざまなテーブルや外部キー関連を区別しますが、私たちが知る必要の" +"ある 関連モデルについてほとんどなにも教えてくれません。関連構造やパフォーマン" +"スの特徴を 完全に理解するには、Hibernateがコレクションの行を更新、削除するた" +"めに使う主キーの 構造もまた考えなければなりません。これは以下の分類を提示しま" +"す。" -#: index.docbook:997 -msgid "bags" +#. Tag: para +#: performance.xml:991 +#, no-c-format +msgid "indexed collections" msgstr "インデックス付きコレクション" -#: index.docbook:1001 -msgid "All indexed collections (maps, lists, arrays) have a primary key consisting of the <key> and <index> columns. In this case collection updates are usually extremely efficient - the primary key may be efficiently indexed and a particular row may be efficiently located when Hibernate tries to update or delete it." -msgstr "set" +#. Tag: para +#: performance.xml:994 +#, no-c-format +msgid "sets" +msgstr "set" -#: index.docbook:1009 -msgid "Sets have a primary key consisting of <key> and element columns. This may be less efficient for some types of collection element, particularly composite elements or large text or binary fields; the database may not be able to index a complex primary key as efficently. On the other hand, for one to many or many to many associations, particularly in the case of synthetic identifiers, it is likely to be just as efficient. (Side-note: if you want SchemaExport to actually create the primary key of a <set> for you, you must declare all columns as not-null=\"true\".)" -msgstr "bag" +#. Tag: para +#: performance.xml:997 +#, no-c-format +msgid "bags" +msgstr "bag" -#: index.docbook:1020 -msgid "<idbag> mappings define a surrogate key, so they are always very efficient to update. In fact, they are the best case." -msgstr "すべてのインデックス付きコレクション(map、list、配列)は <key><index> カラムからなる主キーを持っています。この場合は コレクションの更新は非常に効率的です。主キーは有用なインデックスになり、Hibernateが 特定の行を更新または削除するときに、その行を効率的に見つけることができます。" +#. Tag: para +#: performance.xml:1001 +#, no-c-format +msgid "" +"All indexed collections (maps, lists, arrays) have a primary key consisting " +"of the <key> and <index> " +"columns. In this case collection updates are usually extremely efficient - " +"the primary key may be efficiently indexed and a particular row may be " +"efficiently located when Hibernate tries to update or delete it." +msgstr "" +"すべてのインデックス付きコレクション(map、list、配列)は <" +"key><index> カラムからなる主キーを" +"持っています。この場合は コレクションの更新は非常に効率的です。主キーは有用な" +"インデックスになり、Hibernateが 特定の行を更新または削除するときに、その行を" +"効率的に見つけることができます。" -#: index.docbook:1025 -msgid "Bags are the worst case. Since a bag permits duplicate element values and has no index column, no primary key may be defined. Hibernate has no way of distinguishing between duplicate rows. Hibernate resolves this problem by completely removing (in a single DELETE) and recreating the collection whenever it changes. This might be very inefficient." -msgstr "setは <key> からなる主キーと要素のカラムを持っています。 これはコレクション要素のいくつかの型については効率的ではないかもしれません。 特に複合要素、大きなテキスト、バイナリフィールドでは非効率です。データベースは 複合主キーに効率的にインデックスを付けることができないからです。一方、1対多や多対多関連において、 特に人工識別子の場合は同じぐらい効率的です。(余談: SchemaExport で実際に <set> の主キーを作りたいなら、すべてのカラムで not-null=\"true\" を宣言しなければなりません。)" +#. Tag: para +#: performance.xml:1009 +#, no-c-format +msgid "" +"Sets have a primary key consisting of <key> and " +"element columns. This may be less efficient for some types of collection " +"element, particularly composite elements or large text or binary fields; the " +"database may not be able to index a complex primary key as efficently. On " +"the other hand, for one to many or many to many associations, particularly " +"in the case of synthetic identifiers, it is likely to be just as efficient. " +"(Side-note: if you want SchemaExport to actually create " +"the primary key of a <set> for you, you must " +"declare all columns as not-null=\"true\".)" +msgstr "" +"setは <key> からなる主キーと要素のカラムを持っていま" +"す。 これはコレクション要素のいくつかの型については効率的ではないかもしれませ" +"ん。 特に複合要素、大きなテキスト、バイナリフィールドでは非効率です。データ" +"ベースは 複合主キーに効率的にインデックスを付けることができないからです。一" +"方、1対多や多対多関連において、 特に人工識別子の場合は同じぐらい効率的です。" +"(余談: SchemaExport で実際に <set> の主キーを作りたいなら、すべてのカラムで not-null=\"true" +"\" を宣言しなければなりません。)" -#: index.docbook:1033 -msgid "Note that for a one-to-many association, the \"primary key\" may not be the physical primary key of the database table - but even in this case, the above classification is still useful. (It still reflects how Hibernate \"locates\" individual rows of the collection.)" -msgstr "<idbag> マッピングは代理キーを定義します。そのため 更新は常に非常に効率的です。事実上、これは最善のケースです。" +#. Tag: para +#: performance.xml:1020 +#, no-c-format +msgid "" +"<idbag> mappings define a surrogate key, so they " +"are always very efficient to update. In fact, they are the best case." +msgstr "" +"<idbag> マッピングは代理キーを定義します。そのため " +"更新は常に非常に効率的です。事実上、これは最善のケースです。" -#: index.docbook:1043 -msgid "Lists, maps, idbags and sets are the most efficient collections to update" -msgstr "bagは最悪のケースです。bagは要素の値の重複が可能で、インデックスカラムを持たないため、 主キーは定義されないかもしれません。Hibernateには重複した行を区別する方法がありません。 Hibernateはこの問題の解決のために、変更があったときには常に完全な削除 (一つの DELETE による)を行い、コレクションの再作成を行います。 これは非常に非効率的かもしれません。" +#. Tag: para +#: performance.xml:1025 +#, no-c-format +msgid "" +"Bags are the worst case. Since a bag permits duplicate element values and " +"has no index column, no primary key may be defined. Hibernate has no way of " +"distinguishing between duplicate rows. Hibernate resolves this problem by " +"completely removing (in a single DELETE) and recreating " +"the collection whenever it changes. This might be very inefficient." +msgstr "" +"bagは最悪のケースです。bagは要素の値の重複が可能で、インデックスカラムを持た" +"ないため、 主キーは定義されないかもしれません。Hibernateには重複した行を区別" +"する方法がありません。 Hibernateはこの問題の解決のために、変更があったときに" +"は常に完全な削除 (一つの DELETE による)を行い、コレク" +"ションの再作成を行います。 これは非常に非効率的かもしれません。" -#: index.docbook:1045 -msgid "From the discussion above, it should be clear that indexed collections and (usually) sets allow the most efficient operation in terms of adding, removing and updating elements." -msgstr "1対多関連では、「主キー」はデータベースのテーブルの物理的な 主キーではないかもしれないことに注意してください。しかしこの場合でさえ、上記の分類はまだ有用です。 (Hibernateがコレクションの個々の行をどうやって「見つけるか」を表しています。)" +#. Tag: para +#: performance.xml:1033 +#, no-c-format +msgid "" +"Note that for a one-to-many association, the \"primary key\" may not be the " +"physical primary key of the database table - but even in this case, the " +"above classification is still useful. (It still reflects how Hibernate " +"\"locates\" individual rows of the collection.)" +msgstr "" +"1対多関連では、「主キー」はデータベースのテーブルの物理的な 主キーではないか" +"もしれないことに注意してください。しかしこの場合でさえ、上記の分類はまだ有用" +"です。 (Hibernateがコレクションの個々の行をどうやって「見つけるか」を表して" +"います。)" -#: index.docbook:1051 -msgid "There is, arguably, one more advantage that indexed collections have over sets for many to many associations or collections of values. Because of the structure of a Set, Hibernate doesn't ever UPDATE a row when an element is \"changed\". Changes to a Set always work via INSERT and DELETE (of individual rows). Once again, this consideration does not apply to one to many associations." +#. Tag: title +#: performance.xml:1043 +#, no-c-format +msgid "" +"Lists, maps, idbags and sets are the most efficient collections to update" msgstr "更新にもっとも効率的なコレクション list、map、idbag、set" -#: index.docbook:1060 -msgid "After observing that arrays cannot be lazy, we would conclude that lists, maps and idbags are the most performant (non-inverse) collection types, with sets not far behind. Sets are expected to be the most common kind of collection in Hibernate applications. This is because the \"set\" semantics are most natural in the relational model." -msgstr "上での議論から、インデックス付きコレクションと(普通の)setは要素の追加、削除、 更新でもっとも効率的な操作が出来ることは明らかです。" - -#: index.docbook:1068 -msgid "However, in well-designed Hibernate domain models, we usually see that most collections are in fact one-to-many associations with inverse=\"true\". For these associations, the update is handled by the many-to-one end of the association, and so considerations of collection update performance simply do not apply." -msgstr "ほぼ間違いなく、多対多関連や値のコレクションにおいて、インデックス付きコレクションが setよりも優れている点が一つ以上あります。 Set はその 構造のために、Hibernateは要素が「変更」されたときに行を決して UPDATE しません。 Set への変更は常に(個々の行の)INSERTDELETE によって行います。繰り返しますが、これは一対多関連には 当てはまりません。" - -#: index.docbook:1078 -msgid "Bags and lists are the most efficient inverse collections" -msgstr "配列は遅延処理ができないという決まりなので、結論として、list、map、idbagがもっとも パフォーマンスの良い(inverseではない)コレクションタイプとなります。setも それほど違いはありません。Hibernateのアプリケーションでは、setはコレクションのもっとも 共通の種類として期待されます。setの表現は関連モデルではもっとも自然だからです。" - -#: index.docbook:1080 -msgid "Just before you ditch bags forever, there is a particular case in which bags (and also lists) are much more performant than sets. For a collection with inverse=\"true\" (the standard bidirectional one-to-many relationship idiom, for example) we can add elements to a bag or list without needing to initialize (fetch) the bag elements! This is because Collection.add() or Collection.addAll() must always return true for a bag or List (unlike a Set). This can make the following common code much faster." -msgstr "しかし、よくデザインされたHibernateのドメインモデルでは、通常もっとも多いコレクションは 事実上 inverse=\"true\" を指定した1対多関連です。これらの関連では、 更新は多対一の関連端で扱われ、コレクションの更新パフォーマンスの問題は当てはまりません。" - -#: index.docbook:1090 +#. Tag: para +#: performance.xml:1045 +#, no-c-format msgid "" - "" +"From the discussion above, it should be clear that indexed collections and " +"(usually) sets allow the most efficient operation in terms of adding, " +"removing and updating elements." +msgstr "" +"上での議論から、インデックス付きコレクションと(普通の)setは要素の追加、削" +"除、 更新でもっとも効率的な操作が出来ることは明らかです。" + +#. Tag: para +#: performance.xml:1051 +#, no-c-format +msgid "" +"There is, arguably, one more advantage that indexed collections have over " +"sets for many to many associations or collections of values. Because of the " +"structure of a Set, Hibernate doesn't ever " +"UPDATE a row when an element is \"changed\". Changes to a " +"Set always work via INSERT and " +"DELETE (of individual rows). Once again, this " +"consideration does not apply to one to many associations." +msgstr "" +"ほぼ間違いなく、多対多関連や値のコレクションにおいて、インデックス付きコレク" +"ションが setよりも優れている点が一つ以上あります。 Set は" +"その 構造のために、Hibernateは要素が「変更」されたときに行を決して " +"UPDATE しません。 Set への変更は常に" +"(個々の行の)INSERTDELETE によって" +"行います。繰り返しますが、これは一対多関連には 当てはまりません。" + +#. Tag: para +#: performance.xml:1060 +#, no-c-format +msgid "" +"After observing that arrays cannot be lazy, we would conclude that lists, " +"maps and idbags are the most performant (non-inverse) collection types, with " +"sets not far behind. Sets are expected to be the most common kind of " +"collection in Hibernate applications. This is because the \"set\" semantics " +"are most natural in the relational model." +msgstr "" +"配列は遅延処理ができないという決まりなので、結論として、list、map、idbagが" +"もっとも パフォーマンスの良い(inverseではない)コレクションタイプとなりま" +"す。setも それほど違いはありません。Hibernateのアプリケーションでは、setはコ" +"レクションのもっとも 共通の種類として期待されます。setの表現は関連モデルでは" +"もっとも自然だからです。" + +#. Tag: para +#: performance.xml:1068 +#, no-c-format +msgid "" +"However, in well-designed Hibernate domain models, we usually see that most " +"collections are in fact one-to-many associations with inverse=\"true" +"\". For these associations, the update is handled by the many-to-" +"one end of the association, and so considerations of collection update " +"performance simply do not apply." +msgstr "" +"しかし、よくデザインされたHibernateのドメインモデルでは、通常もっとも多いコレ" +"クションは 事実上 inverse=\"true\" を指定した1対多関連で" +"す。これらの関連では、 更新は多対一の関連端で扱われ、コレクションの更新パ" +"フォーマンスの問題は当てはまりません。" + +#. Tag: title +#: performance.xml:1078 +#, no-c-format +msgid "Bags and lists are the most efficient inverse collections" msgstr "inverseコレクションにもっとも最適なbagとlist" -#: index.docbook:1095 -msgid "One shot delete" -msgstr "bagを見放してしまう前に、bag(そしてlistも)がsetよりもずっとパフォーマンスが良い特別なケースを 紹介します。 inverse=\"true\" のコレクション(一般的な1対多関連の使い方など)で、 bagの要素を初期化(フェッチ)する必要なくbagやlistに要素を追加できます! これは Collection.add()Collection.addAll() はbagや List では常にtrueを返さなければならないからです ( Set とは異なります)。 これは以下の共通処理をより速くすることができます。" - -#: index.docbook:1097 -msgid "Occasionally, deleting collection elements one by one can be extremely inefficient. Hibernate isn't completely stupid, so it knows not to do that in the case of an newly-empty collection (if you called list.clear(), for example). In this case, Hibernate will issue a single DELETE and we are done!" +#. Tag: para +#: performance.xml:1080 +#, no-c-format +msgid "" +"Just before you ditch bags forever, there is a particular case in which bags " +"(and also lists) are much more performant than sets. For a collection with " +"inverse=\"true\" (the standard bidirectional one-to-many " +"relationship idiom, for example) we can add elements to a bag or list " +"without needing to initialize (fetch) the bag elements! This is because " +"Collection.add() or Collection.addAll() must always return true for a bag or List " +"(unlike a Set). This can make the following common code " +"much faster." msgstr "" - "" +"bagを見放してしまう前に、bag(そしてlistも)がsetよりもずっとパフォーマンスが" +"良い特別なケースを 紹介します。 inverse=\"true\" のコレク" +"ション(一般的な1対多関連の使い方など)で、 bagの要素を初期化(フェッチ)する" +"必要なくbagやlistに要素を追加できます! これは Collection.add()Collection.addAll() はbagや List では常にtrueを返さなければならないからです ( Set とは異なります)。 これは以下の共通処理をより速くすることができま" +"す。" -#: index.docbook:1104 -msgid "Suppose we add a single element to a collection of size twenty and then remove two elements. Hibernate will issue one INSERT statement and two DELETE statements (unless the collection is a bag). This is certainly desirable." +#. Tag: programlisting +#: performance.xml:1090 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: performance.xml:1095 +#, no-c-format +msgid "One shot delete" msgstr "一括削除" -#: index.docbook:1110 -msgid "However, suppose that we remove eighteen elements, leaving two and then add thee new elements. There are two possible ways to proceed" -msgstr "時々、コレクションの要素を一つ一つ削除することは極めて非効率的になることがあります。 Hibernateは愚かではないので、新しい空のコレクションの場合( list.clear() を呼び出した場合など)ではこれをすべきでないことを知っています。この場合は、Hibernateは DELETE を一回発行して、それですべて終わります!" +#. Tag: para +#: performance.xml:1097 +#, no-c-format +msgid "" +"Occasionally, deleting collection elements one by one can be extremely " +"inefficient. Hibernate isn't completely stupid, so it knows not to do that " +"in the case of an newly-empty collection (if you called list.clear()" +", for example). In this case, Hibernate will issue a single " +"DELETE and we are done!" +msgstr "" +"時々、コレクションの要素を一つ一つ削除することは極めて非効率的になることがあ" +"ります。 Hibernateは愚かではないので、新しい空のコレクションの場合" +"( list.clear() を呼び出した場合など)ではこれをすべきでな" +"いことを知っています。この場合は、Hibernateは DELETE を一" +"回発行して、それですべて終わります!" -#: index.docbook:1117 +#. Tag: para +#: performance.xml:1104 +#, no-c-format +msgid "" +"Suppose we add a single element to a collection of size twenty and then " +"remove two elements. Hibernate will issue one INSERT " +"statement and two DELETE statements (unless the " +"collection is a bag). This is certainly desirable." +msgstr "" +"サイズ20のコレクションに一つの要素を追加し、それから二つの要素を削除するとし" +"ます。 Hibernateは一つの INSERT 文と二つの " +"DELETE 文を発行します (コレクションがbagでなければ)。こ" +"れは確かに望ましい動作です。" + +#. Tag: para +#: performance.xml:1110 +#, no-c-format +msgid "" +"However, suppose that we remove eighteen elements, leaving two and then add " +"thee new elements. There are two possible ways to proceed" +msgstr "" +"しかし、18個の要素を削除して2つを残し、それから3つ新しい要素を追加するとしま" +"す。 このとき二つの方法があります。" + +#. Tag: para +#: performance.xml:1117 +#, no-c-format msgid "delete eighteen rows one by one and then insert three rows" -msgstr "サイズ20のコレクションに一つの要素を追加し、それから二つの要素を削除するとします。 Hibernateは一つの INSERT 文と二つの DELETE 文を発行します (コレクションがbagでなければ)。これは確かに望ましい動作です。" - -#: index.docbook:1120 -msgid "remove the whole collection (in one SQL DELETE) and insert all five current elements (one by one)" -msgstr "しかし、18個の要素を削除して2つを残し、それから3つ新しい要素を追加するとします。 このとき二つの方法があります。" - -#: index.docbook:1125 -msgid "Hibernate isn't smart enough to know that the second option is probably quicker in this case. (And it would probably be undesirable for Hibernate to be that smart; such behaviour might confuse database triggers, etc.)" msgstr "18行を一つ一つ削除して、3行を追加する" -#: index.docbook:1131 -msgid "Fortunately, you can force this behaviour (ie. the second strategy) at any time by discarding (ie. dereferencing) the original collection and returning a newly instantiated collection with all the current elements. This can be very useful and powerful from time to time." -msgstr "コレクション全体を削除( DELETE のSQLを一回)し、そして5つの要素すべてを (一つずつ)追加する" +#. Tag: para +#: performance.xml:1120 +#, no-c-format +msgid "" +"remove the whole collection (in one SQL DELETE) and " +"insert all five current elements (one by one)" +msgstr "" +"コレクション全体を削除( DELETE のSQLを一回)し、そして5つ" +"の要素すべてを (一つずつ)追加する" -#: index.docbook:1137 -msgid "Of course, one-shot-delete does not apply to collections mapped inverse=\"true\"." -msgstr "Hibernateはこの場合に2番目の方法がより速いだろうとわかるほど賢くはありません。 (そしてHibernateがこのように賢いことも望ましくないでしょう。このような振る舞いは データベースのトリガなどを混乱させるかもしれません。)" +#. Tag: para +#: performance.xml:1125 +#, no-c-format +msgid "" +"Hibernate isn't smart enough to know that the second option is probably " +"quicker in this case. (And it would probably be undesirable for Hibernate to " +"be that smart; such behaviour might confuse database triggers, etc.)" +msgstr "" +"Hibernateはこの場合に2番目の方法がより速いだろうとわかるほど賢くはありませ" +"ん。 (そしてHibernateがこのように賢いことも望ましくないでしょう。このような" +"振る舞いは データベースのトリガなどを混乱させるかもしれません。)" -#: index.docbook:1146 +#. Tag: para +#: performance.xml:1131 +#, no-c-format +msgid "" +"Fortunately, you can force this behaviour (ie. the second strategy) at any " +"time by discarding (ie. dereferencing) the original collection and returning " +"a newly instantiated collection with all the current elements. This can be " +"very useful and powerful from time to time." +msgstr "" +"幸いにも、元のコレクションを捨て(つまり参照をやめて)、現在の要素をすべて持" +"つ新しいコレクションの インスタンスを返すことで、いつでもこの振る舞い(2番目" +"の戦略)を強制することが出来ます。 時にこれはとても便利で強力です。" + +#. Tag: para +#: performance.xml:1137 +#, no-c-format +msgid "" +"Of course, one-shot-delete does not apply to collections mapped " +"inverse=\"true\"." +msgstr "" +"もちろん、一括削除は inverse=\"true\" を指定したコレクショ" +"ンには行いません。" + +#. Tag: title +#: performance.xml:1146 +#, no-c-format msgid "Monitoring performance" -msgstr "幸いにも、元のコレクションを捨て(つまり参照をやめて)、現在の要素をすべて持つ新しいコレクションの インスタンスを返すことで、いつでもこの振る舞い(2番目の戦略)を強制することが出来ます。 時にこれはとても便利で強力です。" - -#: index.docbook:1148 -msgid "Optimization is not much use without monitoring and access to performance numbers. Hibernate provides a full range of figures about its internal operations. Statistics in Hibernate are available per SessionFactory." -msgstr "もちろん、一括削除は inverse=\"true\" を指定したコレクションには行いません。" - -#: index.docbook:1155 -msgid "Monitoring a SessionFactory" msgstr "パフォーマンスのモニタリング" -#: index.docbook:1157 -msgid "You can access SessionFactory metrics in two ways. Your first option is to call sessionFactory.getStatistics() and read or display the Statistics yourself." -msgstr "最適化はモニタリングやパフォーマンスを示す数値がなければ十分に行えません。 Hibernateは内部処理のすべての範囲の数値を提供します。 Hibernateの統計情報は SessionFactory 単位で取得可能です。" +#. Tag: para +#: performance.xml:1148 +#, no-c-format +msgid "" +"Optimization is not much use without monitoring and access to performance " +"numbers. Hibernate provides a full range of figures about its internal " +"operations. Statistics in Hibernate are available per " +"SessionFactory." +msgstr "" +"最適化はモニタリングやパフォーマンスを示す数値がなければ十分に行えません。 " +"Hibernateは内部処理のすべての範囲の数値を提供します。 Hibernateの統計情報は " +"SessionFactory 単位で取得可能です。" -#: index.docbook:1163 -msgid "Hibernate can also use JMX to publish metrics if you enable the StatisticsService MBean. You may enable a single MBean for all your SessionFactory or one per factory. See the following code for minimalistic configuration examples:" +#. Tag: title +#: performance.xml:1155 +#, no-c-format +msgid "Monitoring a SessionFactory" msgstr "SessionFactoryのモニタリング" -#: index.docbook:1170 +#. Tag: para +#: performance.xml:1157 +#, no-c-format msgid "" - "" -msgstr "SessionFactory のメトリクスにアクセスするには2つの方法があります。 最初の方法は、 sessionFactory.getStatistics() を呼び出し、 自分で Statistics の読み込みや表示を行います。" +"You can access SessionFactory metrics in two ways. Your " +"first option is to call sessionFactory.getStatistics() " +"and read or display the Statistics yourself." +msgstr "" +"SessionFactory のメトリクスにアクセスするには2つの方法があ" +"ります。 最初の方法は、 sessionFactory.getStatistics() を" +"呼び出し、 自分で Statistics の読み込みや表示を行います。" -#: index.docbook:1173 +#. Tag: para +#: performance.xml:1163 +#, no-c-format msgid "" - "" -msgstr "StatisticsService MBeanを有効にしていれば、HibernateはJMXを使って メトリクスを発行することもできます。1つのMBeanをすべての SessionFactory に対して有効にするか、SessionFactoryごとに一つのMBeanを有効にすることが出来ます。 最小限の設定例である以下のコードを見てください。" - -#: index.docbook:1175 -msgid "TODO: This doesn't make sense: In the first case, we retrieve and use the MBean directly. In the second one, we must give the JNDI name in which the session factory is held before using it. Use hibernateStatsBean.setSessionFactoryJNDIName(\"my/JNDI/Name\")" +"Hibernate can also use JMX to publish metrics if you enable the " +"StatisticsService MBean. You may enable a single MBean " +"for all your SessionFactory or one per factory. See the " +"following code for minimalistic configuration examples:" msgstr "" - "" +"StatisticsService MBeanを有効にしていれば、HibernateはJMX" +"を使って メトリクスを発行することもできます。1つのMBeanをすべての " +"SessionFactory に対して有効にするか、SessionFactoryごとに" +"一つのMBeanを有効にすることが出来ます。 最小限の設定例である以下のコードを見" +"てください。" -#: index.docbook:1180 -msgid "You can (de)activate the monitoring for a SessionFactory" +#. Tag: programlisting +#: performance.xml:1170 +#, no-c-format +msgid "" +"" msgstr "" - "" -#: index.docbook:1185 -msgid "at configuration time, set hibernate.generate_statistics to false" -msgstr "TODO: これは意味がありません。最初のケースは、MBeanを直接復元して使用します。2番目のケースは、 使う前にsession factoryが持っているJNDI名を渡さなければなりません。 hibernateStatsBean.setSessionFactoryJNDIName(\"my/JNDI/Name\") を使ってください。" +#. Tag: programlisting +#: performance.xml:1173 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:1192 -msgid "at runtime: sf.getStatistics().setStatisticsEnabled(true) or hibernateStatsBean.setStatisticsEnabled(true)" -msgstr "SessionFactory に対してモニタリングの開始(終了)を行うことが出来ます。" +#. Tag: para +#: performance.xml:1175 +#, no-c-format +msgid "" +"TODO: This doesn't make sense: In the first case, we retrieve and use the " +"MBean directly. In the second one, we must give the JNDI name in which the " +"session factory is held before using it. Use hibernateStatsBean." +"setSessionFactoryJNDIName(\"my/JNDI/Name\")" +msgstr "" +"TODO: これは意味がありません。最初のケースは、MBeanを直接復元して使用します。" +"2番目のケースは、 使う前にsession factoryが持っているJNDI名を渡さなければなり" +"ません。 hibernateStatsBean.setSessionFactoryJNDIName(\"my/JNDI/Name" +"\") を使ってください。" -#: index.docbook:1199 -msgid "Statistics can be reset programatically using the clear() method. A summary can be sent to a logger (info level) using the logSummary() method." -msgstr "設定時には、 hibernate.generate_statisticsfalse にします" +#. Tag: para +#: performance.xml:1180 +#, no-c-format +msgid "" +"You can (de)activate the monitoring for a SessionFactory" +msgstr "" +"SessionFactory に対してモニタリングの開始(終了)を行うこ" +"とが出来ます。" -#: index.docbook:1208 +#. Tag: para +#: performance.xml:1185 +#, no-c-format +msgid "" +"at configuration time, set hibernate.generate_statistics " +"to false" +msgstr "" +"設定時には、 hibernate.generate_statistics を " +"false にします" + +#. Tag: para +#: performance.xml:1192 +#, no-c-format +msgid "" +"at runtime: sf.getStatistics().setStatisticsEnabled(true) " +"or hibernateStatsBean.setStatisticsEnabled(true)" +msgstr "" +"実行時に、 sf.getStatistics().setStatisticsEnabled(true) " +"または hibernateStatsBean.setStatisticsEnabled(true) を呼" +"び出します" + +#. Tag: para +#: performance.xml:1199 +#, no-c-format +msgid "" +"Statistics can be reset programatically using the clear() " +"method. A summary can be sent to a logger (info level) using the " +"logSummary() method." +msgstr "" +"統計は clear() メソッドを使って手動でリセットすることが出" +"来ます。 サマリは logSummary() メソッドを使ってloggerに送" +"ることが出来ます (infoレベルです)。" + +#. Tag: title +#: performance.xml:1208 +#, no-c-format msgid "Metrics" -msgstr "実行時に、 sf.getStatistics().setStatisticsEnabled(true) または hibernateStatsBean.setStatisticsEnabled(true) を呼び出します" - -#: index.docbook:1210 -msgid "Hibernate provides a number of metrics, from very basic to the specialized information only relevant in certain scenarios. All available counters are described in the Statistics interface API, in three categories:" -msgstr "統計は clear() メソッドを使って手動でリセットすることが出来ます。 サマリは logSummary() メソッドを使ってloggerに送ることが出来ます (infoレベルです)。" - -#: index.docbook:1217 -msgid "Metrics related to the general Session usage, such as number of open sessions, retrieved JDBC connections, etc." msgstr "メトリクス" -#: index.docbook:1223 -msgid "Metrics related to he entities, collections, queries, and caches as a whole (aka global metrics)," -msgstr "多くのものがあります。すべての使用可能なカウンタは Statistics インターフェイスのAPIに書かれており、3つの分類があります。" - -#: index.docbook:1229 -msgid "Detailed metrics related to a particular entity, collection, query or cache region." -msgstr "メトリクスは一般的な Session の使い方と関係しています。 オープンしたセッションの数がJDBCコネクションと関連しているのと同じです。" - -#: index.docbook:1236 -msgid "For exampl,e you can check the cache hit, miss, and put ratio of entities, collections and queries, and the average time a query needs. Beware that the number of milliseconds is subject to approximation in Java. Hibernate is tied to the JVM precision, on some platforms this might even only be accurate to 10 seconds." -msgstr "メトリクスは要素、コレクション、クエリやキャッシュなど全体に 関係しています(別名はグローバルメトリクスです)。" - -#: index.docbook:1243 -msgid "Simple getters are used to access the global metrics (i.e. not tied to a particular entity, collection, cache region, etc.). You can access the metrics of a particular entity, collection or cache region through its name, and through its HQL or SQL representation for queries. Please refer to the Statistics, EntityStatistics, CollectionStatistics, SecondLevelCacheStatistics, and QueryStatistics API Javadoc for more information. The following code shows a simple example:" -msgstr "メトリクスの詳細は特定のエンティティ、コレクション、クエリ、キャッシュ領域に関係しています。" - -#: index.docbook:1253 +#. Tag: para +#: performance.xml:1210 +#, no-c-format msgid "" - "" -msgstr "例として、キャッシュのヒット、ヒットミスや、要素、コレクション、クエリの割合、クエリの実行に 必要な平均時間を確認できます。ミリ秒の数値はJavaの近似を受けることに注意してください。 HibernateはJVMの精度に制限され、プラットフォームによっては10秒単位でしか正確でないかもしれません。" - -#: index.docbook:1255 -msgid "To work on all entities, collections, queries and region caches, you can retrieve the list of names of entities, collections, queries and region caches with the following methods: getQueries(), getEntityNames(), getCollectionRoleNames(), and getSecondLevelCacheRegionNames()." -msgstr "単純なgetterはグローバルメトリクス(すなわち特定のエンティティ、コレクション、キャッシュ領域などに縛られない) にアクセスするために使います。特定のエンティティ、コレクション、キャッシュ領域のメトリクスは、 それらの名前や、クエリのHQL、SQL表現によってアクセスすることが出来ます。さらに詳しい情報は、 StatisticsEntityStatisticsCollectionStatisticsSecondLevelCacheStatisticsQueryStatistics APIのjavadocを 参照してください。以下のコードは簡単な例です。" - -#: index.docbook:1352 -msgid "appended paragraph 1" +"Hibernate provides a number of metrics, from very basic to the specialized " +"information only relevant in certain scenarios. All available counters are " +"described in the Statistics interface API, in three " +"categories:" msgstr "" - "" +"多くのものがあります。すべての使用可能なカウンタは Statistics インターフェイスのAPIに書かれており、3つの分類があります。" -#: index.docbook:1369 -msgid "appended paragraph 2" -msgstr "すべてのエンティティ、コレクション、クエリ、キャッシュ領域に対して行う場合は、 getQueries()getEntityNames()getCollectionRoleNames()getSecondLevelCacheRegionNames() メソッドで それぞれの名前のリストを取得することが出来ます。" +#. Tag: para +#: performance.xml:1217 +#, no-c-format +msgid "" +"Metrics related to the general Session usage, such as " +"number of open sessions, retrieved JDBC connections, etc." +msgstr "" +"メトリクスは一般的な Session の使い方と関係しています。 " +"オープンしたセッションの数がJDBCコネクションと関連しているのと同じです。" -msgid "ROLES_OF_TRANSLATORS" -msgstr "" +#. Tag: para +#: performance.xml:1223 +#, no-c-format +msgid "" +"Metrics related to he entities, collections, queries, and caches as a whole " +"(aka global metrics)," +msgstr "" +"メトリクスは要素、コレクション、クエリやキャッシュなど全体に 関係しています" +"(別名はグローバルメトリクスです)。" -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#. Tag: para +#: performance.xml:1229 +#, no-c-format +msgid "" +"Detailed metrics related to a particular entity, collection, query or cache " +"region." +msgstr "" +"メトリクスの詳細は特定のエンティティ、コレクション、クエリ、キャッシュ領域に" +"関係しています。" +#. Tag: para +#: performance.xml:1236 +#, no-c-format +msgid "" +"For exampl,e you can check the cache hit, miss, and put ratio of entities, " +"collections and queries, and the average time a query needs. Beware that the " +"number of milliseconds is subject to approximation in Java. Hibernate is " +"tied to the JVM precision, on some platforms this might even only be " +"accurate to 10 seconds." +msgstr "" +"例として、キャッシュのヒット、ヒットミスや、要素、コレクション、クエリの割" +"合、クエリの実行に 必要な平均時間を確認できます。ミリ秒の数値はJavaの近似を受" +"けることに注意してください。 HibernateはJVMの精度に制限され、プラットフォーム" +"によっては10秒単位でしか正確でないかもしれません。" + +#. Tag: para +#: performance.xml:1243 +#, no-c-format +msgid "" +"Simple getters are used to access the global metrics (i.e. not tied to a " +"particular entity, collection, cache region, etc.). You can access the " +"metrics of a particular entity, collection or cache region through its name, " +"and through its HQL or SQL representation for queries. Please refer to the " +"Statistics, EntityStatistics, " +"CollectionStatistics, " +"SecondLevelCacheStatistics, and QueryStatistics API Javadoc for more information. The following code shows a simple " +"example:" +msgstr "" +"単純なgetterはグローバルメトリクス(すなわち特定のエンティティ、コレクショ" +"ン、キャッシュ領域などに縛られない) にアクセスするために使います。特定のエン" +"ティティ、コレクション、キャッシュ領域のメトリクスは、 それらの名前や、クエリ" +"のHQL、SQL表現によってアクセスすることが出来ます。さらに詳しい情報は、 " +"StatisticsEntityStatistics 、 " +"CollectionStatistics 、 " +"SecondLevelCacheStatisticsQueryStatistics APIのjavadocを 参照してください。以下のコードは簡単な例です。" + +#. Tag: programlisting +#: performance.xml:1253 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: performance.xml:1255 +#, no-c-format +msgid "" +"To work on all entities, collections, queries and region caches, you can " +"retrieve the list of names of entities, collections, queries and region " +"caches with the following methods: getQueries(), " +"getEntityNames(), getCollectionRoleNames(), and getSecondLevelCacheRegionNames()." +msgstr "" +"すべてのエンティティ、コレクション、クエリ、キャッシュ領域に対して行う場合" +"は、 getQueries()getEntityNames()getCollectionRoleNames() 、 " +"getSecondLevelCacheRegionNames() メソッドで それぞれの名前" +"のリストを取得することが出来ます。" + +#~ msgid "yes" +#~ msgstr "yes" diff --git a/documentation/manual/translations/ja-JP/content/persistent_classes.po b/documentation/manual/translations/ja-JP/content/persistent_classes.po index 4c02bf91ad..ab6ccca7f5 100644 --- a/documentation/manual/translations/ja-JP/content/persistent_classes.po +++ b/documentation/manual/translations/ja-JP/content/persistent_classes.po @@ -1,660 +1,856 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: persistent_classes.xml:5 +#, no-c-format msgid "Persistent Classes" msgstr "永続クラス" -#: index.docbook:7 -msgid "Persistent classes are classes in an application that implement the entities of the business problem (e.g. Customer and Order in an E-commerce application). Not all instances of a persistent class are considered to be in the persistent state - an instance may instead be transient or detached." -msgstr "永続クラスはビジネス上の問題のエンティティ(例えば、Eコマースアプリケーションの顧客や注文) を実装するアプリケーションのクラスです。 永続クラスのすべてのインスタンスが永続状態であると見なされるわけではありません。 インスタンスは逆に一時的(transient)であったり、分離状態(detached)であったりするかもしれません。" +#. Tag: para +#: persistent_classes.xml:7 +#, no-c-format +msgid "" +"Persistent classes are classes in an application that implement the entities " +"of the business problem (e.g. Customer and Order in an E-commerce " +"application). Not all instances of a persistent class are considered to be " +"in the persistent state - an instance may instead be transient or detached." +msgstr "" +"永続クラスはビジネス上の問題のエンティティ(例えば、Eコマースアプリケーション" +"の顧客や注文) を実装するアプリケーションのクラスです。 永続クラスのすべての" +"インスタンスが永続状態であると見なされるわけではありません。 インスタンスは逆" +"に一時的(transient)であったり、分離状態(detached)であったりするかもしれま" +"せん。" -#: index.docbook:14 -msgid "Hibernate works best if these classes follow some simple rules, also known as the Plain Old Java Object (POJO) programming model. However, none of these rules are hard requirements. Indeed, Hibernate3 assumes very little about the nature of your persistent objects. You may express a domain model in other ways: using trees of Map instances, for example." -msgstr "Plain Old Java Object (POJO)プログラミングモデルとしても知られる いくつかの単純なルールに従うなら、Hibernateは最もよく働きます。 しかしこれらのルールは難しいものではありません。 実際Hibernate3は永続オブジェクトの性質にほとんど何の前提も置いていません。 ドメインモデルは他の方法で表現することもできます。 例えば Map インスタンスのツリーを使う方法があります。" +#. Tag: para +#: persistent_classes.xml:14 +#, no-c-format +msgid "" +"Hibernate works best if these classes follow some simple rules, also known " +"as the Plain Old Java Object (POJO) programming model. However, none of " +"these rules are hard requirements. Indeed, Hibernate3 assumes very little " +"about the nature of your persistent objects. You may express a domain model " +"in other ways: using trees of Map instances, for example." +msgstr "" +"Plain Old Java Object (POJO)プログラミングモデルとしても知られる いくつかの単" +"純なルールに従うなら、Hibernateは最もよく働きます。 しかしこれらのルールは難" +"しいものではありません。 実際Hibernate3は永続オブジェクトの性質にほとんど何の" +"前提も置いていません。 ドメインモデルは他の方法で表現することもできます。 例" +"えば Map インスタンスのツリーを使う方法があります。" -#: index.docbook:23 +#. Tag: title +#: persistent_classes.xml:23 +#, no-c-format msgid "A simple POJO example" msgstr "単純なPOJOの例" -#: index.docbook:25 +#. Tag: para +#: persistent_classes.xml:25 +#, no-c-format msgid "Most Java applications require a persistent class representing felines." -msgstr "ほとんどのJavaアプリケーションにはネコ科の動物を表現する永続クラスが必要です。" - -#: index.docbook:29 -msgid "" - "" msgstr "" - "" +"ほとんどのJavaアプリケーションにはネコ科の動物を表現する永続クラスが必要で" +"す。" -#: index.docbook:31 +#. Tag: programlisting +#: persistent_classes.xml:29 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: persistent_classes.xml:31 +#, no-c-format msgid "There are four main rules to follow here:" msgstr "従うべき4つのルールがあります:" -#: index.docbook:37 +#. Tag: title +#: persistent_classes.xml:37 +#, no-c-format msgid "Implement a no-argument constructor" msgstr "引数のないコンストラクタを実装する" -#: index.docbook:39 -msgid "Cat has a no-argument constructor. All persistent classes must have a default constructor (which may be non-public) so that Hibernate can instantiate them using Constructor.newInstance(). We strongly recommend having a default constructor with at least package visibility for runtime proxy generation in Hibernate." -msgstr "Cat には引数のないコンストラクタがあります。 Hibernateが Constructor.newInstance() を使って永続クラスの インスタンス化を行えるように、すべての永続クラスにはデフォルトコンストラクタ (publicでなくても構いません)がなければなりません。 Hibernateの実行時プロキシ生成のために、少なくとも package の可視性を持つデフォルトコンストラクタを強くお勧めします。" +#. Tag: para +#: persistent_classes.xml:39 +#, no-c-format +msgid "" +"Cat has a no-argument constructor. All persistent classes " +"must have a default constructor (which may be non-public) so that Hibernate " +"can instantiate them using Constructor.newInstance(). We " +"strongly recommend having a default constructor with at least " +"package visibility for runtime proxy generation in " +"Hibernate." +msgstr "" +"Cat には引数のないコンストラクタがあります。 Hibernateが " +"Constructor.newInstance() を使って永続クラスの インスタン" +"ス化を行えるように、すべての永続クラスにはデフォルトコンストラクタ (publicで" +"なくても構いません)がなければなりません。 Hibernateの実行時プロキシ生成のた" +"めに、少なくとも package の可視性を持つデフォルトコンス" +"トラクタを強くお勧めします。" -#: index.docbook:49 +#. Tag: title +#: persistent_classes.xml:49 +#, no-c-format msgid "Provide an identifier property (optional)" msgstr "識別子プロパティを用意する(オプション)" -#: index.docbook:51 -msgid "Cat has a property called id. This property maps to the primary key column of a database table. The property might have been called anything, and its type might have been any primitive type, any primitive \"wrapper\" type, java.lang.String or java.util.Date. (If your legacy database table has composite keys, you can even use a user-defined class with properties of these types - see the section on composite identifiers later.)" -msgstr "Cat には id というプロパティがあります。 このプロパティはデータベーステーブルの主キーカラムへマッピングされます。 このプロパティの名前は何でも構いませんし、型はどのようなプリミティブ型でも、 プリミティブの「ラッパー」型でも、java.lang.Stringjava.util.Date でも構いません。 (もしレガシーデータベーステーブルが複合キーを持つならば、 今述べたような型のプロパティを持つユーザ定義のクラスを使うことさえ可能です。 後で複合識別子の節を見てください。)" +#. Tag: para +#: persistent_classes.xml:51 +#, no-c-format +msgid "" +"Cat has a property called id. This " +"property maps to the primary key column of a database table. The property " +"might have been called anything, and its type might have been any primitive " +"type, any primitive \"wrapper\" type, java.lang.String or " +"java.util.Date. (If your legacy database table has " +"composite keys, you can even use a user-defined class with properties of " +"these types - see the section on composite identifiers later.)" +msgstr "" +"Cat には id というプロパティがありま" +"す。 このプロパティはデータベーステーブルの主キーカラムへマッピングされま" +"す。 このプロパティの名前は何でも構いませんし、型はどのようなプリミティブ型で" +"も、 プリミティブの「ラッパー」型でも、java.lang.String " +"や java.util.Date でも構いません。 (もしレガシーデータ" +"ベーステーブルが複合キーを持つならば、 今述べたような型のプロパティを持つユー" +"ザ定義のクラスを使うことさえ可能です。 後で複合識別子の節を見てください。)" -#: index.docbook:60 -msgid "The identifier property is strictly optional. You can leave them off and let Hibernate keep track of object identifiers internally. We do not recommend this, however." -msgstr "識別子プロパティは厳密にはオプションです。 これを省略して、Hibernateに内部的にオブジェクトの識別子を追跡させることは可能です。 しかしおすすめはしません。" +#. Tag: para +#: persistent_classes.xml:60 +#, no-c-format +msgid "" +"The identifier property is strictly optional. You can leave them off and let " +"Hibernate keep track of object identifiers internally. We do not recommend " +"this, however." +msgstr "" +"識別子プロパティは厳密にはオプションです。 これを省略して、Hibernateに内部的" +"にオブジェクトの識別子を追跡させることは可能です。 しかしおすすめはしません。" -#: index.docbook:65 -msgid "In fact, some functionality is available only to classes which declare an identifier property:" -msgstr "実際に、識別子プロパティを宣言するクラスだけが利用可能な機能がいくつかあります:" +#. Tag: para +#: persistent_classes.xml:65 +#, no-c-format +msgid "" +"In fact, some functionality is available only to classes which declare an " +"identifier property:" +msgstr "" +"実際に、識別子プロパティを宣言するクラスだけが利用可能な機能がいくつかありま" +"す:" -#: index.docbook:72 -msgid "Transitive reattachment for detached objects (cascade update or cascade merge) - see" -msgstr "分離オブジェクトの連鎖的な再追加(カスケード更新やカスケードマージ)。 を参照してください。" +#. Tag: para +#: persistent_classes.xml:72 +#, fuzzy, no-c-format +msgid "" +"Transitive reattachment for detached objects (cascade update or cascade " +"merge) - see" +msgstr "" +"分離オブジェクトの連鎖的な再追加(カスケード更新やカスケードマージ)。 を参照してください。" -#: index.docbook:79 +#. Tag: literal +#: persistent_classes.xml:79 +#, no-c-format msgid "Session.saveOrUpdate()" msgstr "Session.saveOrUpdate()" -#: index.docbook:84 +#. Tag: literal +#: persistent_classes.xml:84 +#, no-c-format msgid "Session.merge()" msgstr "Session.merge()" -#: index.docbook:89 -msgid "We recommend you declare consistently-named identifier properties on persistent classes. We further recommend that you use a nullable (ie. non-primitive) type." -msgstr "永続クラスには、一貫した名前の識別子プロパティを定義することをお勧めします。 さらにnull値を取れる(つまりプリミティブではない)型を使った方がよいでしょう。" +#. Tag: para +#: persistent_classes.xml:89 +#, no-c-format +msgid "" +"We recommend you declare consistently-named identifier properties on " +"persistent classes. We further recommend that you use a nullable (ie. non-" +"primitive) type." +msgstr "" +"永続クラスには、一貫した名前の識別子プロパティを定義することをお勧めします。 " +"さらにnull値を取れる(つまりプリミティブではない)型を使った方がよいでしょう。" -#: index.docbook:96 +#. Tag: title +#: persistent_classes.xml:96 +#, no-c-format msgid "Prefer non-final classes (optional)" msgstr "finalクラスにしない(オプション)" -#: index.docbook:97 -msgid "A central feature of Hibernate, proxies, depends upon the persistent class being either non-final, or the implementation of an interface that declares all public methods." -msgstr "Hibernateの中心的な特徴である プロキシ は、 永続クラスがfinalでないこと、またはメソッドを全部publicで宣言している インターフェイスが実装されているかに依存しています。" +#. Tag: para +#: persistent_classes.xml:97 +#, no-c-format +msgid "" +"A central feature of Hibernate, proxies, depends upon " +"the persistent class being either non-final, or the implementation of an " +"interface that declares all public methods." +msgstr "" +"Hibernateの中心的な特徴である プロキシ は、 永続クラスが" +"finalでないこと、またはメソッドを全部publicで宣言している インターフェイスが" +"実装されているかに依存しています。" -#: index.docbook:102 -msgid "You can persist final classes that do not implement an interface with Hibernate, but you won't be able to use proxies for lazy association fetching - which will limit your options for performance tuning." -msgstr "Hibernateでインターフェイスを実装していない final クラスを永続化することはできますが、 遅延関連フェッチに対してプロキシを使うことはできなくなります。 これはパフォーマンスチューニングへの選択肢を狭めることになります。" +#. Tag: para +#: persistent_classes.xml:102 +#, no-c-format +msgid "" +"You can persist final classes that do not implement an " +"interface with Hibernate, but you won't be able to use proxies for lazy " +"association fetching - which will limit your options for performance tuning." +msgstr "" +"Hibernateでインターフェイスを実装していない final クラスを" +"永続化することはできますが、 遅延関連フェッチに対してプロキシを使うことはでき" +"なくなります。 これはパフォーマンスチューニングへの選択肢を狭めることになりま" +"す。" -#: index.docbook:107 -msgid "You should also avoid declaring public final methods on the non-final classes. If you want to use a class with a public final method, you must explicitly disable proxying by setting lazy=\"false\"." -msgstr "finalではないクラスで public final メソッドを定義することも避けるべきです。 public final メソッドを持つクラスを使いたければ、 lazy=\"false\" と設定して明示的にプロキシを無効にしなければなりません。" +#. Tag: para +#: persistent_classes.xml:107 +#, no-c-format +msgid "" +"You should also avoid declaring public final methods on " +"the non-final classes. If you want to use a class with a public " +"final method, you must explicitly disable proxying by setting " +"lazy=\"false\"." +msgstr "" +"finalではないクラスで public final メソッドを定義すること" +"も避けるべきです。 public final メソッドを持つクラスを使い" +"たければ、 lazy=\"false\" と設定して明示的にプロキシを無効" +"にしなければなりません。" -#: index.docbook:115 +#. Tag: title +#: persistent_classes.xml:115 +#, no-c-format msgid "Declare accessors and mutators for persistent fields (optional)" msgstr "永続フィールドに対するアクセサとミューテータを定義する(オプション)" -#: index.docbook:117 -msgid "Cat declares accessor methods for all its persistent fields. Many other ORM tools directly persist instance variables. We believe it is better to provide an indirection between the relational schema and internal data structures of the class. By default, Hibernate persists JavaBeans style properties, and recognizes method names of the form getFoo, isFoo and setFoo. You may switch to direct field access for particular properties, if needed." -msgstr "Cat ではすべての永続フィールドに対してアクセサメソッドを定義しています。 他の多くのORMツールは、永続インスタンス変数を直接永続化します。 私たちはリレーショナルスキーマとクラスの内部構造を分離する方が良いと信じています。 デフォルトでは、HibernateはJavaBeanスタイルのプロパティを永続化し、 getFoo, isFoo, setFoo 形式のメソッド名を認識します。 しかし必要なら、特定のプロパティに対して、直接のフィールドアクセスに切り替えることは可能です。" +#. Tag: para +#: persistent_classes.xml:117 +#, no-c-format +msgid "" +"Cat declares accessor methods for all its persistent " +"fields. Many other ORM tools directly persist instance variables. We believe " +"it is better to provide an indirection between the relational schema and " +"internal data structures of the class. By default, Hibernate persists " +"JavaBeans style properties, and recognizes method names of the form " +"getFoo, isFoo and setFoo. You may switch to direct field access for particular properties, " +"if needed." +msgstr "" +"Cat ではすべての永続フィールドに対してアクセサメソッドを定" +"義しています。 他の多くのORMツールは、永続インスタンス変数を直接永続化しま" +"す。 私たちはリレーショナルスキーマとクラスの内部構造を分離する方が良いと信じ" +"ています。 デフォルトでは、HibernateはJavaBeanスタイルのプロパティを永続化" +"し、 getFoo, isFoo, setFoo 形式のメソッド名を認識します。 しかし必要なら、特定のプロパティに対" +"して、直接のフィールドアクセスに切り替えることは可能です。" -#: index.docbook:127 -msgid "Properties need not be declared public - Hibernate can persist a property with a default, protected or private get / set pair." -msgstr "プロパティはpublicで宣言する必要は ありません 。 Hibernateはデフォルト、protected もしくは private のget / setのペアを持つプロパティを永続化することができます。" +#. Tag: para +#: persistent_classes.xml:127 +#, no-c-format +msgid "" +"Properties need not be declared public - Hibernate can " +"persist a property with a default, protected or " +"private get / set pair." +msgstr "" +"プロパティはpublicで宣言する必要は ありません 。 " +"Hibernateはデフォルト、protected もしくは " +"private のget / setのペアを持つプロパティを永続化すること" +"ができます。" -#: index.docbook:138 +#. Tag: title +#: persistent_classes.xml:138 +#, no-c-format msgid "Implementing inheritance" msgstr "継承の実装" -#: index.docbook:140 -msgid "A subclass must also observe the first and second rules. It inherits its identifier property from the superclass, Cat." -msgstr "サブクラスも1番目と2番目のルールを守らなければなりません。 サブクラスはスーパークラス Cat から識別子プロパティを継承します。" - -#: index.docbook:145 +#. Tag: para +#: persistent_classes.xml:140 +#, no-c-format msgid "" - "" +"A subclass must also observe the first and second rules. It inherits its " +"identifier property from the superclass, Cat." msgstr "" - "" +"サブクラスも1番目と2番目のルールを守らなければなりません。 サブクラスはスー" +"パークラス Cat から識別子プロパティを継承します。" -#: index.docbook:149 -msgid "Implementing equals() and hashCode()" +#. Tag: programlisting +#: persistent_classes.xml:145 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: persistent_classes.xml:149 +#, no-c-format +msgid "" +"Implementing equals() and hashCode()" msgstr "equals()hashCode() の実装" -#: index.docbook:151 -msgid "You have to override the equals() and hashCode() methods if you" -msgstr "以下の条件の場合、 equals()hashCode() メソッドをオーバーライドしなければなりません、" +#. Tag: para +#: persistent_classes.xml:151 +#, no-c-format +msgid "" +"You have to override the equals() and hashCode()" +" methods if you" +msgstr "" +"以下の条件の場合、 equals()hashCode() メソッドをオーバーライドしなければなりません、" -#: index.docbook:157 -msgid "intend to put instances of persistent classes in a Set (the recommended way to represent many-valued associations) and" -msgstr "永続クラスのインスタンスを Set に置く場合。 (これは多値の関連を表現するおすすめの方法です) そして同時に" +#. Tag: para +#: persistent_classes.xml:157 +#, no-c-format +msgid "" +"intend to put instances of persistent classes in a Set " +"(the recommended way to represent many-valued associations) and" +msgstr "" +"永続クラスのインスタンスを Set に置く場合。 (これは多値の" +"関連を表現するおすすめの方法です) そして同時に" -#: index.docbook:164 +#. Tag: para +#: persistent_classes.xml:164 +#, no-c-format msgid "intend to use reattachment of detached instances" msgstr "分離インスタンスをセッションへ再追加する場合。" -#: index.docbook:170 -msgid "Hibernate guarantees equivalence of persistent identity (database row) and Java identity only inside a particular session scope. So as soon as we mix instances retrieved in different sessions, we must implement equals() and hashCode() if we wish to have meaningful semantics for Sets." -msgstr "Hibernateは、永続ID(データベースの行)と、特定のセッションスコープ内に 限定ですがJavaIDとが等価であることを保証します。 ですから異なるセッションで検索したインスタンスを組み合わせる場合、 Set に意味のあるセマンティクスを持たせようと思っているなら すぐにequals()hashCode() を実装しなければなりません。" - -#: index.docbook:178 -msgid "The most obvious way is to implement equals()/hashCode() by comparing the identifier value of both objects. If the value is the same, both must be the same database row, they are therefore equal (if both are added to a Set, we will only have one element in the Set). Unfortunately, we can't use that approach with generated identifiers! Hibernate will only assign identifier values to objects that are persistent, a newly created instance will not have any identifier value! Furthermore, if an instance is unsaved and currently in a Set, saving it will assign an identifier value to the object. If equals() and hashCode() are based on the identifier value, the hash code would change, breaking the contract of the Set. See the Hibernate website for a full discussion of this problem. Note that this is not a Hibernate issue, but normal Java semantics of object identity and equality." -msgstr "最も明白な方法は、両方のオブジェクトの識別子の値の比較によって equals()hashCode() を実装する方法です。 値が同じなら、両者はデータベースの同じ行でなければならないため等しくなります。 (両者が Set に追加されても、 Set には1個の要素しかないことになります) 残念なことに、生成された識別子にはこのアプローチを使うことができません。 Hibernateは永続化されたオブジェクトへ識別子の値を代入するだけであり、 新しく作成されたインスタンスはどのような識別子の値も持っていません。 さらに、インスタンスがセーブされておらず、現在 Set の中にあれば、 セーブするとオブジェクトへ識別子の値を代入することになります。 もし equals()hashCode() が識別子の値に基づいているなら、 ハッシュコードが変更されると Set の規約が破られます。 この問題についての完全な議論は、Hibernateのウェブサイトを見てください。 これはHibernateの問題ではなく、オブジェクトの同一性と等価性についての、 通常のJavaのセマンティクスであることに注意してください。" - -#: index.docbook:192 -msgid "We recommend implementing equals() and hashCode() using Business key equality. Business key equality means that the equals() method compares only the properties that form the business key, a key that would identify our instance in the real world (a natural candidate key):" -msgstr "ビジネスキーの等価性 を使って、 equals()hashCode() を実装することをお勧めします。 ビジネスキーの等価性とは、equals() メソッドが、ビジネスキー、 つまり現実の世界においてインスタンスを特定するキー(自然 候補キー) を形成するプロパティだけを比較することを意味します。" - -#: index.docbook:200 +#. Tag: para +#: persistent_classes.xml:170 +#, no-c-format msgid "" - "" +"Hibernate guarantees equivalence of persistent identity (database row) and " +"Java identity only inside a particular session scope. So as soon as we mix " +"instances retrieved in different sessions, we must implement equals" +"() and hashCode() if we wish to have meaningful " +"semantics for Sets." msgstr "" - "" +"Hibernateは、永続ID(データベースの行)と、特定のセッションスコープ内に 限定" +"ですがJavaIDとが等価であることを保証します。 ですから異なるセッションで検索し" +"たインスタンスを組み合わせる場合、 Set に意味のあるセマン" +"ティクスを持たせようと思っているなら すぐにequals() と " +"hashCode() を実装しなければなりません。" -#: index.docbook:202 -msgid "Note that a business key does not have to be as solid as a database primary key candidate (see ). Immutable or unique properties are usually good candidates for a business key." -msgstr "ビジネスキーはデータベースの主キー候補ほど安定である必要はないことに注意してください ( を見てください)。 更新不可なプロパティやユニークなプロパティは、通常ビジネスキーのよい候補です。" +#. Tag: para +#: persistent_classes.xml:178 +#, no-c-format +msgid "" +"The most obvious way is to implement equals()/" +"hashCode() by comparing the identifier value of both " +"objects. If the value is the same, both must be the same database row, they " +"are therefore equal (if both are added to a Set, we will " +"only have one element in the Set). Unfortunately, we " +"can't use that approach with generated identifiers! Hibernate will only " +"assign identifier values to objects that are persistent, a newly created " +"instance will not have any identifier value! Furthermore, if an instance is " +"unsaved and currently in a Set, saving it will assign an " +"identifier value to the object. If equals() and " +"hashCode() are based on the identifier value, the hash " +"code would change, breaking the contract of the Set. See " +"the Hibernate website for a full discussion of this problem. Note that this " +"is not a Hibernate issue, but normal Java semantics of object identity and " +"equality." +msgstr "" +"最も明白な方法は、両方のオブジェクトの識別子の値の比較によって " +"equals()hashCode() を実装する方法で" +"す。 値が同じなら、両者はデータベースの同じ行でなければならないため等しくなり" +"ます。 (両者が Set に追加されても、 Set には1個の要素しかないことになります) 残念なことに、生成された識別子" +"にはこのアプローチを使うことができません。 Hibernateは永続化されたオブジェク" +"トへ識別子の値を代入するだけであり、 新しく作成されたインスタンスはどのような" +"識別子の値も持っていません。 さらに、インスタンスがセーブされておらず、現在 " +"Set の中にあれば、 セーブするとオブジェクトへ識別子の値を" +"代入することになります。 もし equals() と " +"hashCode() が識別子の値に基づいているなら、 ハッシュコード" +"が変更されると Set の規約が破られます。 この問題についての" +"完全な議論は、Hibernateのウェブサイトを見てください。 これはHibernateの問題で" +"はなく、オブジェクトの同一性と等価性についての、 通常のJavaのセマンティクスで" +"あることに注意してください。" -#: index.docbook:212 +#. Tag: para +#: persistent_classes.xml:192 +#, no-c-format +msgid "" +"We recommend implementing equals() and hashCode()" +" using Business key equality. Business key " +"equality means that the equals() method compares only the " +"properties that form the business key, a key that would identify our " +"instance in the real world (a natural candidate key):" +msgstr "" +"ビジネスキーの等価性 を使って、 equals()hashCode() を実装することをお勧めします。 ビジ" +"ネスキーの等価性とは、equals() メソッドが、ビジネスキー、 " +"つまり現実の世界においてインスタンスを特定するキー(自然 候補キー) を形成するプロパティだけを比較することを意味します。" + +#. Tag: programlisting +#: persistent_classes.xml:200 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: persistent_classes.xml:202 +#, no-c-format +msgid "" +"Note that a business key does not have to be as solid as a database primary " +"key candidate (see ). " +"Immutable or unique properties are usually good candidates for a business " +"key." +msgstr "" +"ビジネスキーはデータベースの主キー候補ほど安定である必要はないことに注意して" +"ください ( を見てくださ" +"い)。 更新不可なプロパティやユニークなプロパティは、通常ビジネスキーのよい候" +"補です。" + +#. Tag: title +#: persistent_classes.xml:212 +#, no-c-format msgid "Dynamic models" msgstr "動的モデル" -#: index.docbook:215 -msgid "Note that the following features are currently considered experimental and may change in the near future." -msgstr "以下の機能は現在実験段階にあると見なされており、 近い将来変更される可能性があることに注意してください。" - -#: index.docbook:219 -msgid "Persistent entities don't necessarily have to be represented as POJO classes or as JavaBean objects at runtime. Hibernate also supports dynamic models (using Maps of Maps at runtime) and the representation of entities as DOM4J trees. With this approach, you don't write persistent classes, only mapping files." -msgstr "永続エンティティは、必ずしも実行時にPOJOクラスやJavaBeanオブジェクトで表現する必要はありません。 Hibernateは(実行時に MapMap を使う)動的モデルと、 DOM4Jツリーとしてのエンティティの表現もサポートします。 このアプローチを使うと永続クラスを書かず、マッピングファイルだけを書くことになります。" - -#: index.docbook:227 -msgid "By default, Hibernate works in normal POJO mode. You may set a default entity representation mode for a particular SessionFactory using the default_entity_mode configuration option (see ." -msgstr "デフォルトでは、Hibernateは通常のPOJOモードで動作します。 default_entity_mode 設定オプションを使って、 特定の SessionFactory に対するデフォルトのエンティティ表現モードを設定することができます ( を見てください)。" - -#: index.docbook:234 -msgid "The following examples demonstrates the representation using Maps. First, in the mapping file, an entity-name has to be declared instead of (or in addition to) a class name:" -msgstr "以下の例では Map を使った表現を紹介します。 まずマッピングファイルで、クラス名の代わりに(またはそれに加えて) entity-name を定義しなければなりません:" - -#: index.docbook:240 +#. Tag: emphasis +#: persistent_classes.xml:215 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - "\n" - " \n" - " \n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - "]]>" +"Note that the following features are currently considered experimental and " +"may change in the near future." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"以下の機能は現在実験段階にあると見なされており、 近い将来変更される可能性があ" +"ることに注意してください。" -#: index.docbook:242 -msgid "Note that even though associations are declared using target class names, the target type of an associations may also be a dynamic entity instead of a POJO." -msgstr "関連がターゲットのクラス名を使って定義していたとしても、 関連のターゲット型もPOJOではなく動的なエンティティでも構わないことに注意してください。" - -#: index.docbook:249 -msgid "After setting the default entity mode to dynamic-map for the SessionFactory, we can at runtime work with Maps of Maps:" -msgstr "SessionFactory に対してデフォルトのエンティティモードを dynamic-map に設定した後、 実行時に MapMap を使うことができます:" - -#: index.docbook:255 +#. Tag: para +#: persistent_classes.xml:219 +#, no-c-format msgid "" - "" +"Persistent entities don't necessarily have to be represented as POJO classes " +"or as JavaBean objects at runtime. Hibernate also supports dynamic models " +"(using Maps of Maps at runtime) and " +"the representation of entities as DOM4J trees. With this approach, you don't " +"write persistent classes, only mapping files." msgstr "" - "" +"永続エンティティは、必ずしも実行時にPOJOクラスやJavaBeanオブジェクトで表現す" +"る必要はありません。 Hibernateは(実行時に Map の " +"Map を使う)動的モデルと、 DOM4Jツリーとしてのエンティティ" +"の表現もサポートします。 このアプローチを使うと永続クラスを書かず、マッピング" +"ファイルだけを書くことになります。" -#: index.docbook:257 -msgid "The advantages of a dynamic mapping are quick turnaround time for prototyping without the need for entity class implementation. However, you lose compile-time type checking and will very likely deal with many exceptions at runtime. Thanks to the Hibernate mapping, the database schema can easily be normalized and sound, allowing to add a proper domain model implementation on top later on." -msgstr "動的なマッピングの利点は、エンティティクラスの実装を必要としないため、 プロトタイピングに要するターンアラウンドタイムが早いということです。 しかしコンパイル時の型チェックがないので、実行時に非常に多くの例外処理を扱わなければならないでしょう。 Hibernateマッピングのおかげで、データベーススキーマは容易に正規化でき、健全になり、 後で適切なドメインモデルの実装を追加することが可能になります。" - -#: index.docbook:265 -msgid "Entity representation modes can also be set on a per Session basis:" -msgstr "エンティティ表現モードは Session ごとに設定することも可能です。" - -#: index.docbook:270 +#. Tag: para +#: persistent_classes.xml:227 +#, no-c-format msgid "" - "" +"By default, Hibernate works in normal POJO mode. You may set a default " +"entity representation mode for a particular SessionFactory using the default_entity_mode configuration " +"option (see ." msgstr "" - "" +"デフォルトでは、Hibernateは通常のPOJOモードで動作します。 " +"default_entity_mode 設定オプションを使って、 特定の " +"SessionFactory に対するデフォルトのエンティティ表現モード" +"を設定することができます ( を見てください)。" -#: index.docbook:273 -msgid "Please note that the call to getSession() using an EntityMode is on the Session API, not the SessionFactory. That way, the new Session shares the underlying JDBC connection, transaction, and other context information. This means you don't have tocall flush() and close() on the secondary Session, and also leave the transaction and connection handling to the primary unit of work." -msgstr "EntityMode を使った getSession() の呼び出しは SessionFactory ではなく Session APIにあることに注意してください。 その方法では、新しい Session は、ベースとなるJDBCコネクション、 トランザクション、その他のコンテキスト情報を共有します。 これは2番目の Session では flush()close() を呼ぶ必要がないということ、そのためトランザクションとコネクションの管理を 1番目の作業単位(Unit of Work)に任せることができるということです。" +#. Tag: para +#: persistent_classes.xml:234 +#, no-c-format +msgid "" +"The following examples demonstrates the representation using Maps. First, in the mapping file, an entity-name has " +"to be declared instead of (or in addition to) a class name:" +msgstr "" +"以下の例では Map を使った表現を紹介します。 まずマッピング" +"ファイルで、クラス名の代わりに(またはそれに加えて) entity-name を定義しなければなりません:" -#: index.docbook:283 -msgid "More information about the XML representation capabilities can be found in ." -msgstr "XML表現の能力についてのさらなる情報は で見つかります。" +#. Tag: programlisting +#: persistent_classes.xml:240 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +"\n" +" \n" +" \n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +"]]>" +msgstr "" -#: index.docbook:291 +#. Tag: para +#: persistent_classes.xml:242 +#, no-c-format +msgid "" +"Note that even though associations are declared using target class names, " +"the target type of an associations may also be a dynamic entity instead of a " +"POJO." +msgstr "" +"関連がターゲットのクラス名を使って定義していたとしても、 関連のターゲット型も" +"POJOではなく動的なエンティティでも構わないことに注意してください。" + +#. Tag: para +#: persistent_classes.xml:249 +#, no-c-format +msgid "" +"After setting the default entity mode to dynamic-map for " +"the SessionFactory, we can at runtime work with " +"Maps of Maps:" +msgstr "" +"SessionFactory に対してデフォルトのエンティティモードを " +"dynamic-map に設定した後、 実行時に MapMap を使うことができます:" + +#. Tag: programlisting +#: persistent_classes.xml:255 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: persistent_classes.xml:257 +#, no-c-format +msgid "" +"The advantages of a dynamic mapping are quick turnaround time for " +"prototyping without the need for entity class implementation. However, you " +"lose compile-time type checking and will very likely deal with many " +"exceptions at runtime. Thanks to the Hibernate mapping, the database schema " +"can easily be normalized and sound, allowing to add a proper domain model " +"implementation on top later on." +msgstr "" +"動的なマッピングの利点は、エンティティクラスの実装を必要としないため、 プロト" +"タイピングに要するターンアラウンドタイムが早いということです。 しかしコンパイ" +"ル時の型チェックがないので、実行時に非常に多くの例外処理を扱わなければならな" +"いでしょう。 Hibernateマッピングのおかげで、データベーススキーマは容易に正規" +"化でき、健全になり、 後で適切なドメインモデルの実装を追加することが可能になり" +"ます。" + +#. Tag: para +#: persistent_classes.xml:265 +#, no-c-format +msgid "" +"Entity representation modes can also be set on a per Session basis:" +msgstr "" +"エンティティ表現モードは Session ごとに設定することも可能" +"です。" + +#. Tag: programlisting +#: persistent_classes.xml:270 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: persistent_classes.xml:273 +#, no-c-format +msgid "" +"Please note that the call to getSession() using an " +"EntityMode is on the Session API, not " +"the SessionFactory. That way, the new Session shares the underlying JDBC connection, transaction, and other " +"context information. This means you don't have tocall flush() and close() on the secondary Session, and also leave the transaction and connection handling to the " +"primary unit of work." +msgstr "" +"EntityMode を使った getSession() の呼び" +"出しは SessionFactory ではなく Session " +"APIにあることに注意してください。 その方法では、新しい Session は、ベースとなるJDBCコネクション、 トランザクション、その他のコンテ" +"キスト情報を共有します。 これは2番目の Session では " +"flush()close() を呼ぶ必要がないとい" +"うこと、そのためトランザクションとコネクションの管理を 1番目の作業単位(Unit " +"of Work)に任せることができるということです。" + +#. Tag: para +#: persistent_classes.xml:283 +#, no-c-format +msgid "" +"More information about the XML representation capabilities can be found in " +"." +msgstr "" +"XML表現の能力についてのさらなる情報は で見つかりま" +"す。" + +#. Tag: title +#: persistent_classes.xml:291 +#, no-c-format msgid "Tuplizers" msgstr "Tuplizer" -#: index.docbook:293 -msgid "org.hibernate.tuple.Tuplizer, and its sub-interfaces, are responsible for managing a particular representation of a piece of data, given that representation's org.hibernate.EntityMode. If a given piece of data is thought of as a data structure, then a tuplizer is the thing which knows how to create such a data structure and how to extract values from and inject values into such a data structure. For example, for the POJO entity mode, the correpsonding tuplizer knows how create the POJO through its constructor and how to access the POJO properties using the defined property accessors. There are two high-level types of Tuplizers, represented by the org.hibernate.tuple.entity.EntityTuplizer and org.hibernate.tuple.component.ComponentTuplizer interfaces. EntityTuplizers are responsible for managing the above mentioned contracts in regards to entities, while ComponentTuplizers do the same for components." -msgstr "org.hibernate.tuple.Tuplizer とそのサブインターフェイスは、 表現の org.hibernate.EntityMode を利用して、 データ断片のある表現の管理に責任を持ちます。 与えられたデータ断片をデータ構造として考えるなら、Tuplizerはそのようなデータ構造を どのように作成するかを知り、そのようなデータ構造からどのように値を抽出し、 注入するかを知っています。 例えばPOJOエンティティモードでは、対応するTuplizerはコンストラクタを通して、 POJOをどのように作成するか、定義されたプロパティアクセサを使い、 POJOプロパティにどのようにアクセスするかを知ります。 Tuplizerには二つのハイレベルの型があります。 それらは、org.hibernate.tuple.EntityTuplizerorg.hibernate.tuple.ComponentTuplizer インターフェイスで表現されます。 EntityTuplizer は上で述べたようなエンティティに関する契約の管理に責任を持ちます。 一方、ComponentTuplizer はコンポーネントに関する契約の管理に責任を持ちます。" - -#: index.docbook:308 -msgid "Users may also plug in their own tuplizers. Perhaps you require that a java.util.Map implementation other than java.util.HashMap be used while in the dynamic-map entity-mode; or perhaps you need to define a different proxy generation strategy than the one used by default. Both would be achieved by defining a custom tuplizer implementation. Tuplizers definitions are attached to the entity or component mapping they are meant to manage. Going back to the example of our customer entity:" -msgstr "ユーザは独自のTuplizerに差し替えることも可能です。 おそらくdynamic-map entity-modeの際に java.util.HashMap を使うのではなく、 java.util.Map の実装が必要でしょう。 もしくは、おそらくデフォルトのものではなく、別のプロキシ生成戦略の定義が必要でしょう。 両者とも、カスタムのTuplizer実装を定義することで達成されます。 Tuplizerの定義は、管理しようとするエンティティやコンポーネントのマッピングに結び付けられます。 顧客エンティティの例に戻ると:" - -#: index.docbook:317 +#. Tag: para +#: persistent_classes.xml:293 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - "\n" - " \n" - " ...\n" - " \n" - "\n" - "\n" - "\n" - "public class CustomMapTuplizerImpl\n" - " extends org.hibernate.tuple.entity.DynamicMapEntityTuplizer {\n" - " // override the buildInstantiator() method to plug in our custom map...\n" - " protected final Instantiator buildInstantiator(\n" - " org.hibernate.mapping.PersistentClass mappingInfo) {\n" - " return new CustomMapInstantiator( mappingInfo );\n" - " }\n" - "\n" - " private static final class CustomMapInstantiator\n" - " extends org.hibernate.tuple.DynamicMapInstantitor {\n" - " // override the generateMap() method to return our custom map...\n" - " protected final Map generateMap() {\n" - " return new CustomMap();\n" - " }\n" - " }\n" - "}]]>" +"org.hibernate.tuple.Tuplizer, and its sub-interfaces, are " +"responsible for managing a particular representation of a piece of data, " +"given that representation's org.hibernate.EntityMode. If " +"a given piece of data is thought of as a data structure, then a tuplizer is " +"the thing which knows how to create such a data structure and how to extract " +"values from and inject values into such a data structure. For example, for " +"the POJO entity mode, the correpsonding tuplizer knows how create the POJO " +"through its constructor and how to access the POJO properties using the " +"defined property accessors. There are two high-level types of Tuplizers, " +"represented by the org.hibernate.tuple.entity.EntityTuplizer and org.hibernate.tuple.component.ComponentTuplizer interfaces. EntityTuplizers are responsible for " +"managing the above mentioned contracts in regards to entities, while " +"ComponentTuplizers do the same for components." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ... \n" - " \n" - " \n" - " \n" - " \n" - "public class CustomMapTuplizerImpl \n" - " extends org.hibernate.tuple.entity.DynamicMapEntityTuplizer { \n" - " // override the buildInstantiator() method to plug in our custom map... \n" - " protected final Instantiator buildInstantiator( \n" - " org.hibernate.mapping.PersistentClass mappingInfo) { \n" - " return new CustomMapInstantiator( mappingInfo ); \n" - " } \n" - " \n" - " private static final class CustomMapInstantiator \n" - " extends org.hibernate.tuple.DynamicMapInstantitor { \n" - " // override the generateMap() method to return our custom map... \n" - " protected final Map generateMap() { \n" - " return new CustomMap(); \n" - " } \n" - " } \n" - "}]]>" +"org.hibernate.tuple.Tuplizer とそのサブインターフェイス" +"は、 表現の org.hibernate.EntityMode を利用して、 データ断" +"片のある表現の管理に責任を持ちます。 与えられたデータ断片をデータ構造として考" +"えるなら、Tuplizerはそのようなデータ構造を どのように作成するかを知り、そのよ" +"うなデータ構造からどのように値を抽出し、 注入するかを知っています。 例えば" +"POJOエンティティモードでは、対応するTuplizerはコンストラクタを通して、 POJOを" +"どのように作成するか、定義されたプロパティアクセサを使い、 POJOプロパティにど" +"のようにアクセスするかを知ります。 Tuplizerには二つのハイレベルの型がありま" +"す。 それらは、org.hibernate.tuple.EntityTuplizer と " +"org.hibernate.tuple.ComponentTuplizer インターフェイスで表" +"現されます。 EntityTuplizer は上で述べたようなエンティティ" +"に関する契約の管理に責任を持ちます。 一方、ComponentTuplizer はコンポーネントに関する契約の管理に責任を持ちます。" -#: index.docbook:322 -msgid "TODO: Document user-extension framework in the property and proxy packages" -msgstr "TODO: プロパティとプロキシパッケージのユーザ拡張フレームワークを文書化すること" +#. Tag: para +#: persistent_classes.xml:308 +#, no-c-format +msgid "" +"Users may also plug in their own tuplizers. Perhaps you require that a " +"java.util.Map implementation other than java." +"util.HashMap be used while in the dynamic-map entity-mode; or " +"perhaps you need to define a different proxy generation strategy than the " +"one used by default. Both would be achieved by defining a custom tuplizer " +"implementation. Tuplizers definitions are attached to the entity or " +"component mapping they are meant to manage. Going back to the example of our " +"customer entity:" +msgstr "" +"ユーザは独自のTuplizerに差し替えることも可能です。 おそらくdynamic-map " +"entity-modeの際に java.util.HashMap を使うのではなく、 " +"java.util.Map の実装が必要でしょう。 もしくは、おそらくデ" +"フォルトのものではなく、別のプロキシ生成戦略の定義が必要でしょう。 両者とも、" +"カスタムのTuplizer実装を定義することで達成されます。 Tuplizerの定義は、管理し" +"ようとするエンティティやコンポーネントのマッピングに結び付けられます。 顧客エ" +"ンティティの例に戻ると:" -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#. Tag: programlisting +#: persistent_classes.xml:317 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +"\n" +" \n" +" ...\n" +" \n" +"\n" +"\n" +"\n" +"public class CustomMapTuplizerImpl\n" +" extends org.hibernate.tuple.entity.DynamicMapEntityTuplizer {\n" +" // override the buildInstantiator() method to plug in our custom map...\n" +" protected final Instantiator buildInstantiator(\n" +" org.hibernate.mapping.PersistentClass mappingInfo) {\n" +" return new CustomMapInstantiator( mappingInfo );\n" +" }\n" +"\n" +" private static final class CustomMapInstantiator\n" +" extends org.hibernate.tuple.DynamicMapInstantitor {\n" +" // override the generateMap() method to return our custom map...\n" +" protected final Map generateMap() {\n" +" return new CustomMap();\n" +" }\n" +" }\n" +"}]]>" +msgstr "" +#. Tag: para +#: persistent_classes.xml:322 +#, no-c-format +msgid "" +"TODO: Document user-extension framework in the property and proxy packages" +msgstr "" +"TODO: プロパティとプロキシパッケージのユーザ拡張フレームワークを文書化するこ" +"と" diff --git a/documentation/manual/translations/ja-JP/content/preface.po b/documentation/manual/translations/ja-JP/content/preface.po index a9a2b4b3df..b082f757b6 100644 --- a/documentation/manual/translations/ja-JP/content/preface.po +++ b/documentation/manual/translations/ja-JP/content/preface.po @@ -1,68 +1,196 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:21 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: preface.xml:21 +#, no-c-format msgid "Preface" -msgstr "前書き" +msgstr "前書き" -#: index.docbook:23 -msgid "Working with object-oriented software and a relational database can be cumbersome and time consuming in today's enterprise environments. Hibernate is an object/relational mapping tool for Java environments. The term object/relational mapping (ORM) refers to the technique of mapping a data representation from an object model to a relational data model with a SQL-based schema." -msgstr "今日の企業環境において、オブジェクト指向ソフトウェアとリレーショナルデータベースに関わる作業は 煩雑で膨大な時間を必要とします。 HibernateはJava環境のオブジェクト/リレーショナルマッピングツールです。 オブジェクト/リレーショナルマッピング(ORM)とは、 オブジェクトモデルからSQLベーススキーマのリレーショナルデータモデルへと、 データ表現をマッピングする(対応付ける)技術のことです。" +#. Tag: para +#: preface.xml:23 +#, no-c-format +msgid "" +"Working with object-oriented software and a relational database can be " +"cumbersome and time consuming in today's enterprise environments. Hibernate " +"is an object/relational mapping tool for Java environments. The term object/" +"relational mapping (ORM) refers to the technique of mapping a data " +"representation from an object model to a relational data model with a SQL-" +"based schema." +msgstr "" +"今日の企業環境において、オブジェクト指向ソフトウェアとリレーショナルデータ" +"ベースに関わる作業は 煩雑で膨大な時間を必要とします。 HibernateはJava環境のオ" +"ブジェクト/リレーショナルマッピングツールです。 オブジェクト/リレーショナル" +"マッピング(ORM)とは、 オブジェクトモデルからSQLベーススキーマのリレーショナ" +"ルデータモデルへと、 データ表現をマッピングする(対応付ける)技術のことです。" -#: index.docbook:31 -msgid "Hibernate not only takes care of the mapping from Java classes to database tables (and from Java data types to SQL data types), but also provides data query and retrieval facilities and can significantly reduce development time otherwise spent with manual data handling in SQL and JDBC." -msgstr "HibernateはJavaクラスからデータベーステーブルへ(そしてJavaデータ型からSQLデータ型へ) のマッピングを処理するだけではなく、データのクエリと復元の仕組みも提供します。 このおかげでSQLとJDBCを使った手作業でのデータ処理に費やされていた開発時間を大幅に削減できます。" +#. Tag: para +#: preface.xml:31 +#, no-c-format +msgid "" +"Hibernate not only takes care of the mapping from Java classes to database " +"tables (and from Java data types to SQL data types), but also provides data " +"query and retrieval facilities and can significantly reduce development time " +"otherwise spent with manual data handling in SQL and JDBC." +msgstr "" +"HibernateはJavaクラスからデータベーステーブルへ(そしてJavaデータ型からSQL" +"データ型へ) のマッピングを処理するだけではなく、データのクエリと復元の仕組み" +"も提供します。 このおかげでSQLとJDBCを使った手作業でのデータ処理に費やされて" +"いた開発時間を大幅に削減できます。" -#: index.docbook:38 -msgid "Hibernates goal is to relieve the developer from 95 percent of common data persistence related programming tasks. Hibernate may not be the best solution for data-centric applications that only use stored-procedures to implement the business logic in the database, it is most useful with object-oriented domain models and business logic in the Java-based middle-tier. However, Hibernate can certainly help you to remove or encapsulate vendor-specific SQL code and will help with the common task of result set translation from a tabular representation to a graph of objects." -msgstr "Hibernateの最終目標は、データの永続化に関わる一般的なプログラミング作業の95%から開発者を解放することです。 Hibernateはビジネスロジックの実装にストアドプロシージャを使う データ中心アプリケーションに対してのベストソリューションであるに留まりません。 オブジェクト指向ドメインモデルとJavaベースの中間層でのビジネスロジックに対して最も役に立ちます。 しかしHibernateはベンダ固有のSQLコードを削減またはカプセル化したり、 表形式からオブジェクトのグラフへとリザルトセットを変換するなどの、 一般的なタスクにも役立つでしょう。" +#. Tag: para +#: preface.xml:38 +#, no-c-format +msgid "" +"Hibernates goal is to relieve the developer from 95 percent of common data " +"persistence related programming tasks. Hibernate may not be the best " +"solution for data-centric applications that only use stored-procedures to " +"implement the business logic in the database, it is most useful with object-" +"oriented domain models and business logic in the Java-based middle-tier. " +"However, Hibernate can certainly help you to remove or encapsulate vendor-" +"specific SQL code and will help with the common task of result set " +"translation from a tabular representation to a graph of objects." +msgstr "" +"Hibernateの最終目標は、データの永続化に関わる一般的なプログラミング作業の95%" +"から開発者を解放することです。 Hibernateはビジネスロジックの実装にストアドプ" +"ロシージャを使う データ中心アプリケーションに対してのベストソリューションであ" +"るに留まりません。 オブジェクト指向ドメインモデルとJavaベースの中間層でのビジ" +"ネスロジックに対して最も役に立ちます。 しかしHibernateはベンダ固有のSQLコード" +"を削減またはカプセル化したり、 表形式からオブジェクトのグラフへとリザルトセッ" +"トを変換するなどの、 一般的なタスクにも役立つでしょう。" -#: index.docbook:48 -msgid "If you are new to Hibernate and Object/Relational Mapping or even Java, please follow these steps:" -msgstr "Hibernateやオブジェクト/リレーショナルマッピング、 さらにはJavaが初めての方は、以下のステップに従ってください:" +#. Tag: para +#: preface.xml:48 +#, no-c-format +msgid "" +"If you are new to Hibernate and Object/Relational Mapping or even Java, " +"please follow these steps:" +msgstr "" +"Hibernateやオブジェクト/リレーショナルマッピング、 さらにはJavaが初めての方" +"は、以下のステップに従ってください:" -#: index.docbook:55 -msgid "Read for a tutorial with step-by-step instructions. The source code for the tutorial is included in the distribution in the doc/reference/tutorial/ directory." -msgstr "を読んでください。 段階的に解説していきます。 チュートリアルのソースコードはディストリビューションの doc/reference/tutorial ディレクトリに含まれています。" +#. Tag: para +#: preface.xml:55 +#, no-c-format +msgid "" +"Read for a tutorial with step-by-step " +"instructions. The source code for the tutorial is included in the " +"distribution in the doc/reference/tutorial/ directory." +msgstr "" +" を読んでください。 段階的に解説していきます。 " +"チュートリアルのソースコードはディストリビューションの doc/" +"reference/tutorial ディレクトリに含まれています。" -#: index.docbook:63 -msgid "Read to understand the environments where Hibernate can be used." -msgstr "を読んで、Hibernateが利用可能な環境を理解してください。" +#. Tag: para +#: preface.xml:63 +#, no-c-format +msgid "" +"Read to understand the environments where " +"Hibernate can be used." +msgstr "" +" を読んで、Hibernateが利用可能な環境を理解し" +"てください。" -#: index.docbook:69 -msgid "Have a look at the eg/ directory in the Hibernate distribution, it contains a simple standalone application. Copy your JDBC driver to the lib/ directory and edit etc/hibernate.properties, specifying correct values for your database. From a command prompt in the distribution directory, type ant eg (using Ant), or under Windows, type build eg." -msgstr "Hibernateディストリビューションの eg/ ディレクトリを見てください。 簡単なスタンドアローンのアプリケーションがあります。 JDBCドライバを lib/ ディレクトリにコピーして、 自分のデータベースに合う正しい値を指定するように etc/hibernate.properties を編集してください。 ディストリビューションディレクトリから、コマンドプロンプトで ant eg とタイプしてください(Antを使います)。 またWindows環境では build eg とタイプしてください。" +#. Tag: para +#: preface.xml:69 +#, no-c-format +msgid "" +"Have a look at the eg/ directory in the Hibernate " +"distribution, it contains a simple standalone application. Copy your JDBC " +"driver to the lib/ directory and edit etc/" +"hibernate.properties, specifying correct values for your database. " +"From a command prompt in the distribution directory, type ant eg (using Ant), or under Windows, type build eg." +msgstr "" +"Hibernateディストリビューションの eg/ ディレクトリを見てく" +"ださい。 簡単なスタンドアローンのアプリケーションがあります。 JDBCドライバを " +"lib/ ディレクトリにコピーして、 自分のデータベースに合う正" +"しい値を指定するように etc/hibernate.properties を編集して" +"ください。 ディストリビューションディレクトリから、コマンドプロンプトで " +"ant eg とタイプしてください(Antを使います)。 またWindows" +"環境では build eg とタイプしてください。" -#: index.docbook:80 -msgid "Use this reference documentation as your primary source of information. Consider reading Java Persistence with Hibernate (http://www.manning.com/bauer2) if you need more help with application design or if you prefer a step-by-step tutorial. Also visit http://caveatemptor.hibernate.org and download the example application for Java Persistence with Hibernate." -msgstr "このリファレンスドキュメントを第一の情報源として利用してください。 アプリケーション設計についてのさらなる情報や段階的なチュートリアルを探しているなら、 Java Persistence with Hibernate(http://www.manning.com/bauer2) をおすすめします。 またhttp://caveatemptor.hibernate.orgから Java Persistence with Hibernateの例題のアプリケーションをダウンロードできます。" +#. Tag: para +#: preface.xml:80 +#, no-c-format +msgid "" +"Use this reference documentation as your primary source of information. " +"Consider reading Java Persistence with Hibernate " +"(http://www.manning.com/bauer2) if you need more help with application " +"design or if you prefer a step-by-step tutorial. Also visit http://" +"caveatemptor.hibernate.org and download the example application for Java " +"Persistence with Hibernate." +msgstr "" +"このリファレンスドキュメントを第一の情報源として利用してください。 アプリケー" +"ション設計についてのさらなる情報や段階的なチュートリアルを探しているなら、 " +"Java Persistence with Hibernate(http://www.manning.com/" +"bauer2) をおすすめします。 またhttp://caveatemptor.hibernate.orgから Java " +"Persistence with Hibernateの例題のアプリケーションをダウンロードできます。" -#: index.docbook:90 +#. Tag: para +#: preface.xml:90 +#, no-c-format msgid "FAQs are answered on the Hibernate website." msgstr "FAQはHibernateウェブサイトにあります。" -#: index.docbook:95 -msgid "Third party demos, examples, and tutorials are linked on the Hibernate website." -msgstr "サードパーティのデモ、例、チュートリアルはHibernateウェブサイトにリンクがあります。" +#. Tag: para +#: preface.xml:95 +#, no-c-format +msgid "" +"Third party demos, examples, and tutorials are linked on the Hibernate " +"website." +msgstr "" +"サードパーティのデモ、例、チュートリアルはHibernateウェブサイトにリンクがあり" +"ます。" -#: index.docbook:101 -msgid "The Community Area on the Hibernate website is a good resource for design patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, etc.)." -msgstr "Hibernateウェブサイトのコミュニティエリアは、デザインパターンやさまざまな統合ソリューション (Tomcat, JBoss AS, Struts, EJB, 等)についてのよい情報源です。" +#. Tag: para +#: preface.xml:101 +#, no-c-format +msgid "" +"The Community Area on the Hibernate website is a good resource for design " +"patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, " +"etc.)." +msgstr "" +"Hibernateウェブサイトのコミュニティエリアは、デザインパターンやさまざまな統合" +"ソリューション (Tomcat, JBoss AS, Struts, EJB, 等)についてのよい情報源で" +"す。" -#: index.docbook:109 -msgid "If you have questions, use the user forum linked on the Hibernate website. We also provide a JIRA issue trackings system for bug reports and feature requests. If you are interested in the development of Hibernate, join the developer mailing list. If you are interested in translating this documentation into your language, contact us on the developer mailing list." -msgstr "質問があればHibernateウェブサイトのユーザフォーラムを活用してください。 またバグレポートとフィーチャリクエストのためJIRA課題追跡システムを用意しています。 Hibernateの開発に興味があれば、開発者メーリングリストに参加してください。 このドキュメントをあなたの国の言葉に翻訳したい場合は、 開発者メーリングリストで私たちにコンタクトを取ってください。" - -#: index.docbook:117 -msgid "Commercial development support, production support, and training for Hibernate is available through JBoss Inc. (see http://www.hibernate.org/SupportTraining/). Hibernate is a Professional Open Source project and a critical component of the JBoss Enterprise Middleware System (JEMS) suite of products." -msgstr "商用開発のサポート、製品のサポート、HibernateのトレーニングはJBoss Inc.が提供しています (http://www.hibernate.org/SupportTraining/を見てください)。 HibernateはProfessional Open Sourceプロジェクト、 そしてJBoss Enterprise Middleware System(JEMS)プロダクトスイートのクリティカルコンポーネントです。" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#. Tag: para +#: preface.xml:109 +#, no-c-format +msgid "" +"If you have questions, use the user forum linked on the Hibernate website. " +"We also provide a JIRA issue trackings system for bug reports and feature " +"requests. If you are interested in the development of Hibernate, join the " +"developer mailing list. If you are interested in translating this " +"documentation into your language, contact us on the developer mailing list." +msgstr "" +"質問があればHibernateウェブサイトのユーザフォーラムを活用してください。 また" +"バグレポートとフィーチャリクエストのためJIRA課題追跡システムを用意していま" +"す。 Hibernateの開発に興味があれば、開発者メーリングリストに参加してくださ" +"い。 このドキュメントをあなたの国の言葉に翻訳したい場合は、 開発者メーリング" +"リストで私たちにコンタクトを取ってください。" +#. Tag: para +#: preface.xml:117 +#, no-c-format +msgid "" +"Commercial development support, production support, and training for " +"Hibernate is available through JBoss Inc. (see http://www.hibernate.org/" +"SupportTraining/). Hibernate is a Professional Open Source project and a " +"critical component of the JBoss Enterprise Middleware System (JEMS) suite of " +"products." +msgstr "" +"商用開発のサポート、製品のサポート、HibernateのトレーニングはJBoss Inc.が提供" +"しています (http://www.hibernate.org/SupportTraining/を見てください)。 " +"HibernateはProfessional Open Sourceプロジェクト、 そしてJBoss Enterprise " +"Middleware System(JEMS)プロダクトスイートのクリティカルコンポーネントです。" diff --git a/documentation/manual/translations/ja-JP/content/query_criteria.po b/documentation/manual/translations/ja-JP/content/query_criteria.po index 0c57cabd37..3cb264609e 100644 --- a/documentation/manual/translations/ja-JP/content/query_criteria.po +++ b/documentation/manual/translations/ja-JP/content/query_criteria.po @@ -1,672 +1,773 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: query_criteria.xml:5 +#, no-c-format msgid "Criteria Queries" msgstr "Criteriaクエリ" -#: index.docbook:7 +#. Tag: para +#: query_criteria.xml:7 +#, no-c-format msgid "Hibernate features an intuitive, extensible criteria query API." msgstr "Hibernateには、直感的で拡張可能なcriteriaクエリAPIが用意されています。" -#: index.docbook:12 +#. Tag: title +#: query_criteria.xml:12 +#, no-c-format msgid "Creating a Criteria instance" msgstr "Criteria インスタンスの作成" -#: index.docbook:14 -msgid "The interface org.hibernate.Criteria represents a query against a particular persistent class. The Session is a factory for Criteria instances." -msgstr "org.hibernate.Criteria インターフェイスは特定の永続性クラスに対するクエリを表現します。 SessionCriteria インスタンスのファクトリです。" - -#: index.docbook:20 +#. Tag: para +#: query_criteria.xml:14 +#, no-c-format msgid "" - "" +"The interface org.hibernate.Criteria represents a query " +"against a particular persistent class. The Session is a " +"factory for Criteria instances." msgstr "" - "" +"org.hibernate.Criteria インターフェイスは特定の永続性クラ" +"スに対するクエリを表現します。 Session は " +"Criteria インスタンスのファクトリです。" -#: index.docbook:25 +#. Tag: programlisting +#: query_criteria.xml:20 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: query_criteria.xml:25 +#, no-c-format msgid "Narrowing the result set" msgstr "リザルトセットの絞込み" -#: index.docbook:27 -msgid "An individual query criterion is an instance of the interface org.hibernate.criterion.Criterion. The class org.hibernate.criterion.Restrictions defines factory methods for obtaining certain built-in Criterion types." -msgstr "org.hibernate.criterion.Criterion インターフェイスのインスタンスは、 個別のクエリクライテリオン(問い合わせの判定基準)を表します。 org.hibernate.criterion.Restrictions クラスは、ある組み込みの Criterion 型を取得するためのファクトリメソッドを持っています。" - -#: index.docbook:35 +#. Tag: para +#: query_criteria.xml:27 +#, no-c-format msgid "" - "" +"An individual query criterion is an instance of the interface org." +"hibernate.criterion.Criterion. The class org.hibernate." +"criterion.Restrictions defines factory methods for obtaining " +"certain built-in Criterion types." msgstr "" - "" +"org.hibernate.criterion.Criterion インターフェイスのインス" +"タンスは、 個別のクエリクライテリオン(問い合わせの判定基準)を表します。 " +"org.hibernate.criterion.Restrictions クラスは、ある組み込" +"みの Criterion 型を取得するためのファクトリメソッドを持っ" +"ています。" -#: index.docbook:37 +#. Tag: programlisting +#: query_criteria.xml:35 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_criteria.xml:37 +#, no-c-format msgid "Restrictions may be grouped logically." msgstr "Restriction(限定)は、論理的にグループ化できます。" -#: index.docbook:41 +#. Tag: programlisting +#: query_criteria.xml:41 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:43 +#. Tag: programlisting +#: query_criteria.xml:43 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:45 -msgid "There are quite a range of built-in criterion types (Restrictions subclasses), but one that is especially useful lets you specify SQL directly." -msgstr "元々あるCriterion型(Restrictions のサブクラス) はかなりの範囲に及びますが、特に有用なのはSQLを直接指定できるものです。" - -#: index.docbook:50 +#. Tag: para +#: query_criteria.xml:45 +#, no-c-format msgid "" - "" +"There are quite a range of built-in criterion types (Restrictions subclasses), but one that is especially useful lets you specify SQL " +"directly." msgstr "" - "" +"元々あるCriterion型(Restrictions のサブクラス) はかなり" +"の範囲に及びますが、特に有用なのはSQLを直接指定できるものです。" -#: index.docbook:52 -msgid "The {alias} placeholder with be replaced by the row alias of the queried entity." -msgstr "{alias} というプレースホルダは、 問い合わせを受けたエンティティの行の別名によって置き換えられます。" - -#: index.docbook:57 -msgid "An alternative approach to obtaining a criterion is to get it from a Property instance. You can create a Property by calling Property.forName()." -msgstr "criterionを得る別の手段は、 Property インスタンスから取得することです。 Property.forName() を呼び出して、 Property インスタンスを作成できます。" - -#: index.docbook:63 +#. Tag: programlisting +#: query_criteria.xml:50 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:68 +#. Tag: para +#: query_criteria.xml:52 +#, no-c-format +msgid "" +"The {alias} placeholder with be replaced by the row alias " +"of the queried entity." +msgstr "" +"{alias} というプレースホルダは、 問い合わせを受けたエン" +"ティティの行の別名によって置き換えられます。" + +#. Tag: para +#: query_criteria.xml:57 +#, no-c-format +msgid "" +"An alternative approach to obtaining a criterion is to get it from a " +"Property instance. You can create a Property by calling Property.forName()." +msgstr "" +"criterionを得る別の手段は、 Property インスタンスから取得" +"することです。 Property.forName() を呼び出して、 " +"Property インスタンスを作成できます。" + +#. Tag: programlisting +#: query_criteria.xml:63 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: query_criteria.xml:68 +#, no-c-format msgid "Ordering the results" msgstr "結果の整列" -#: index.docbook:70 -msgid "You may order the results using org.hibernate.criterion.Order." -msgstr "org.hibernate.criterion.Order を使って結果を並び替えることができます。" - -#: index.docbook:74 +#. Tag: para +#: query_criteria.xml:70 +#, no-c-format msgid "" - "" +"You may order the results using org.hibernate.criterion.Order." msgstr "" - "" +"org.hibernate.criterion.Order を使って結果を並び替えること" +"ができます。" -#: index.docbook:76 +#. Tag: programlisting +#: query_criteria.xml:74 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:81 +#. Tag: programlisting +#: query_criteria.xml:76 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: query_criteria.xml:81 +#, no-c-format msgid "Associations" -msgstr "関連" +msgstr "関連" -#: index.docbook:83 -msgid "You may easily specify constraints upon related entities by navigating associations using createCriteria()." -msgstr "createCriteria() を使い、関連をナビゲートすることで、 容易に関係するエンティティに制約を指定できます。" - -#: index.docbook:88 +#. Tag: para +#: query_criteria.xml:83 +#, no-c-format msgid "" - "" +"You may easily specify constraints upon related entities by navigating " +"associations using createCriteria()." msgstr "" - "" +"createCriteria() を使い、関連をナビゲートすることで、 容易" +"に関係するエンティティに制約を指定できます。" -#: index.docbook:90 -msgid "note that the second createCriteria() returns a new instance of Criteria, which refers to the elements of the kittens collection." -msgstr "2番目の createCriteria() は、kittens コレクションの要素を参照する新しい Criteria インスタンスを返すことに注意してください。" +#. Tag: programlisting +#: query_criteria.xml:88 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:96 +#. Tag: para +#: query_criteria.xml:90 +#, no-c-format +msgid "" +"note that the second createCriteria() returns a new " +"instance of Criteria, which refers to the elements of the " +"kittens collection." +msgstr "" +"2番目の createCriteria() は、kittens コ" +"レクションの要素を参照する新しい Criteria インスタンスを返" +"すことに注意してください。" + +#. Tag: para +#: query_criteria.xml:96 +#, no-c-format msgid "The following, alternate form is useful in certain circumstances." msgstr "以下のような方法も、状況により有用です。" -#: index.docbook:100 +#. Tag: programlisting +#: query_criteria.xml:100 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:102 -msgid "(createAlias() does not create a new instance of Criteria.)" -msgstr "(createAlias() は新しい Criteria インスタンスを作成しません。)" - -#: index.docbook:107 -msgid "Note that the kittens collections held by the Cat instances returned by the previous two queries are not pre-filtered by the criteria! If you wish to retrieve just the kittens that match the criteria, you must use a ResultTransformer." -msgstr "前の2つのクエリによって返される Cat インスタンスによって保持されるkittensコレクションは、 criteriaによって事前にフィルタリング されない ことに注意してください。 もしcriteriaに適合するkittenを取得したいなら、 ResultTransformer を使わなければなりません。" - -#: index.docbook:114 +#. Tag: para +#: query_criteria.xml:102 +#, no-c-format msgid "" - "" +"(createAlias() does not create a new instance of " +"Criteria.)" msgstr "" - "" +"(createAlias() は新しい Criteria イン" +"スタンスを作成しません。)" -#: index.docbook:119 +#. Tag: para +#: query_criteria.xml:107 +#, no-c-format +msgid "" +"Note that the kittens collections held by the Cat " +"instances returned by the previous two queries are not " +"pre-filtered by the criteria! If you wish to retrieve just the kittens that " +"match the criteria, you must use a ResultTransformer." +msgstr "" +"前の2つのクエリによって返される Cat インスタンスによって保" +"持されるkittensコレクションは、 criteriaによって事前にフィルタリング " +"されない ことに注意してください。 もしcriteriaに適合する" +"kittenを取得したいなら、 ResultTransformer を使わなければ" +"なりません。" + +#. Tag: programlisting +#: query_criteria.xml:114 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: query_criteria.xml:119 +#, no-c-format msgid "Dynamic association fetching" msgstr "関連の動的フェッチ" -#: index.docbook:121 -msgid "You may specify association fetching semantics at runtime using setFetchMode()." -msgstr "setFetchMode() を使い、 実行時に関連の復元方法を指定してもよいです。" - -#: index.docbook:126 +#. Tag: para +#: query_criteria.xml:121 +#, no-c-format msgid "" - "" +"You may specify association fetching semantics at runtime using " +"setFetchMode()." msgstr "" - "" +"setFetchMode() を使い、 実行時に関連の復元方法を指定しても" +"よいです。" -#: index.docbook:128 -msgid "This query will fetch both mate and kittens by outer join. See for more information." -msgstr "このクエリは外部結合により matekittens の両方をフェッチします。 より多くの情報は を参照してください。" +#. Tag: programlisting +#: query_criteria.xml:126 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:136 +#. Tag: para +#: query_criteria.xml:128 +#, no-c-format +msgid "" +"This query will fetch both mate and kittens by outer join. See for " +"more information." +msgstr "" +"このクエリは外部結合により matekittens の両方をフェッチします。 より多くの情報は を参照してください。" + +#. Tag: title +#: query_criteria.xml:136 +#, no-c-format msgid "Example queries" msgstr "クエリの例" -#: index.docbook:138 -msgid "The class org.hibernate.criterion.Example allows you to construct a query criterion from a given instance." -msgstr "org.hibernate.criterion.Example クラスは、 与えられたインスタンスからクエリクライテリオンを構築できます。" - -#: index.docbook:143 +#. Tag: para +#: query_criteria.xml:138 +#, no-c-format msgid "" - "" +"The class org.hibernate.criterion.Example allows you to " +"construct a query criterion from a given instance." msgstr "" - "" +"org.hibernate.criterion.Example クラスは、 与えられたイン" +"スタンスからクエリクライテリオンを構築できます。" -#: index.docbook:145 -msgid "Version properties, identifiers and associations are ignored. By default, null valued properties are excluded." -msgstr "バージョンプロパティ、識別子、関連は無視されます。 デフォルトではnull値のプロパティは除外されます。" +#. Tag: programlisting +#: query_criteria.xml:143 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:150 +#. Tag: para +#: query_criteria.xml:145 +#, no-c-format +msgid "" +"Version properties, identifiers and associations are ignored. By default, " +"null valued properties are excluded." +msgstr "" +"バージョンプロパティ、識別子、関連は無視されます。 デフォルトではnull値のプロ" +"パティは除外されます。" + +#. Tag: para +#: query_criteria.xml:150 +#, no-c-format msgid "You can adjust how the Example is applied." -msgstr "どのように Example を適用するか 調整することができます。" - -#: index.docbook:154 -msgid "" - "" msgstr "" - "" +"どのように Example を適用するか 調整することができます。" -#: index.docbook:156 +#. Tag: programlisting +#: query_criteria.xml:154 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_criteria.xml:156 +#, no-c-format msgid "You can even use examples to place criteria upon associated objects." -msgstr "関連オブジェクトにcriteriaを指定するために、Exampleを使うことも可能です。" - -#: index.docbook:160 -msgid "" - "" msgstr "" - "" +"関連オブジェクトにcriteriaを指定するために、Exampleを使うことも可能です。" -#: index.docbook:165 +#. Tag: programlisting +#: query_criteria.xml:160 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: query_criteria.xml:165 +#, no-c-format msgid "Projections, aggregation and grouping" msgstr "射影、集約、グループ化" -#: index.docbook:166 -msgid "The class org.hibernate.criterion.Projections is a factory for Projection instances. We apply a projection to a query by calling setProjection()." -msgstr "org.hibernate.criterion.Projections クラスは Projection インスタンスのファクトリです。 setProjection() を呼び出すことで、 クエリに射影を適用します。" - -#: index.docbook:172 +#. Tag: para +#: query_criteria.xml:166 +#, no-c-format msgid "" - "" +"The class org.hibernate.criterion.Projections is a " +"factory for Projection instances. We apply a projection " +"to a query by calling setProjection()." msgstr "" - "" +"org.hibernate.criterion.Projections クラスは " +"Projection インスタンスのファクトリです。 " +"setProjection() を呼び出すことで、 クエリに射影を適用しま" +"す。" -#: index.docbook:174 +#. Tag: programlisting +#: query_criteria.xml:172 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:176 -msgid "There is no explicit \"group by\" necessary in a criteria query. Certain projection types are defined to be grouping projections, which also appear in the SQL group by clause." -msgstr "必要であっても、criteriaクエリに「group by」を明示する必要はありません。 ある種のProjection型は グループ化射影 として定義され、 SQLの group by 節にも現れます。" - -#: index.docbook:182 -msgid "An alias may optionally be assigned to a projection, so that the projected value may be referred to in restrictions or orderings. Here are two different ways to do this:" -msgstr "任意で射影に別名を付けられるため、射影される値はrestrictionやordering内から参照できます。 別名をつける2つの異なる方法を示します。" - -#: index.docbook:188 +#. Tag: programlisting +#: query_criteria.xml:174 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:190 +#. Tag: para +#: query_criteria.xml:176 +#, no-c-format msgid "" - "" +"There is no explicit \"group by\" necessary in a criteria query. Certain " +"projection types are defined to be grouping projections, which also appear in the SQL group by clause." msgstr "" - "" +"必要であっても、criteriaクエリに「group by」を明示する必要はありません。 ある" +"種のProjection型は グループ化射影 として定義され、 SQL" +"の group by 節にも現れます。" -#: index.docbook:192 -msgid "The alias() and as() methods simply wrap a projection instance in another, aliased, instance of Projection. As a shortcut, you can assign an alias when you add the projection to a projection list:" -msgstr "alias()as() メソッドは、 Projectionインスタンスを別の名前の Projection インスタンスで ラップするだけです。 ショートカットとして、射影を射影リストに追加する際に、別名をつけられます。" - -#: index.docbook:199 +#. Tag: para +#: query_criteria.xml:182 +#, no-c-format msgid "" - "" +"An alias may optionally be assigned to a projection, so that the projected " +"value may be referred to in restrictions or orderings. Here are two " +"different ways to do this:" msgstr "" - "" +"任意で射影に別名を付けられるため、射影される値はrestrictionやordering内から参" +"照できます。 別名をつける2つの異なる方法を示します。" -#: index.docbook:201 +#. Tag: programlisting +#: query_criteria.xml:188 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:203 -msgid "You can also use Property.forName() to express projections:" +#. Tag: programlisting +#: query_criteria.xml:190 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_criteria.xml:192 +#, no-c-format +msgid "" +"The alias() and as() methods simply " +"wrap a projection instance in another, aliased, instance of " +"Projection. As a shortcut, you can assign an alias when " +"you add the projection to a projection list:" +msgstr "" +"alias()as() メソッドは、 Projection" +"インスタンスを別の名前の Projection インスタンスで ラップ" +"するだけです。 ショートカットとして、射影を射影リストに追加する際に、別名をつ" +"けられます。" + +#. Tag: programlisting +#: query_criteria.xml:199 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: programlisting +#: query_criteria.xml:201 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_criteria.xml:203 +#, no-c-format +msgid "" +"You can also use Property.forName() to express " +"projections:" msgstr "射影の式に Property.forName() も使用できます。" -#: index.docbook:207 +#. Tag: programlisting +#: query_criteria.xml:207 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:209 +#. Tag: programlisting +#: query_criteria.xml:209 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:214 +#. Tag: title +#: query_criteria.xml:214 +#, no-c-format msgid "Detached queries and subqueries" msgstr "クエリおよびサブクエリの分離" -#: index.docbook:215 -msgid "The DetachedCriteria class lets you create a query outside the scope of a session, and then later execute it using some arbitrary Session." -msgstr "DetachedCriteria クラスにより、 セッションスコープ外にクエリを作成できます。 後で、任意の Session を使って、実行できます。" - -#: index.docbook:220 +#. Tag: para +#: query_criteria.xml:215 +#, no-c-format msgid "" - "" +"The DetachedCriteria class lets you create a query " +"outside the scope of a session, and then later execute it using some " +"arbitrary Session." msgstr "" - "" +"DetachedCriteria クラスにより、 セッションスコープ外にクエ" +"リを作成できます。 後で、任意の Session を使って、実行でき" +"ます。" -#: index.docbook:222 -msgid "A DetachedCriteria may also be used to express a subquery. Criterion instances involving subqueries may be obtained via Subqueries or Property." -msgstr "DetachedCriteria は、サブクエリを表現するためにも使えます。 サブクエリを伴うCriterionインスタンスは、 Subqueries もしくは Property から得られます。" - -#: index.docbook:228 +#. Tag: programlisting +#: query_criteria.xml:220 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:230 +#. Tag: para +#: query_criteria.xml:222 +#, no-c-format msgid "" - "" +"A DetachedCriteria may also be used to express a " +"subquery. Criterion instances involving subqueries may be obtained via " +"Subqueries or Property." msgstr "" - "" +"DetachedCriteria は、サブクエリを表現するためにも使えま" +"す。 サブクエリを伴うCriterionインスタンスは、 Subqueries " +"もしくは Property から得られます。" -#: index.docbook:232 +#. Tag: programlisting +#: query_criteria.xml:228 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: programlisting +#: query_criteria.xml:230 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_criteria.xml:232 +#, no-c-format msgid "Even correlated subqueries are possible:" msgstr "相互関係があるサブクエリでさえも可能です。" -#: index.docbook:236 +#. Tag: programlisting +#: query_criteria.xml:236 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:245 +#. Tag: title +#: query_criteria.xml:245 +#, no-c-format msgid "Queries by natural identifier" msgstr "自然識別子によるクエリ" -#: index.docbook:247 -msgid "For most queries, including criteria queries, the query cache is not very efficient, because query cache invalidation occurs too frequently. However, there is one special kind of query where we can optimize the cache invalidation algorithm: lookups by a constant natural key. In some applications, this kind of query occurs frequently. The criteria API provides special provision for this use case." -msgstr "criteriaクエリを含むたいていのクエリにとって、 クエリキャッシュはあまり効率がよくないです。 なぜなら、クエリキャッシュが頻繁に無効になるためです。 しかしながら、キャッシュを無効にするアルゴリズムを最適化できる 特別なクエリの種類が1つあります。 更新されない自然キーによる検索です。 いくつかのアプリケーションでは、この種類のクエリが頻繁に現れます。 このような使われ方のために、criteria APIは特別な対策を提供します。" - -#: index.docbook:255 -msgid "First, you should map the natural key of your entity using <natural-id>, and enable use of the second-level cache." -msgstr "最初に、<natural-id> を使って、 エンティティの自然キーをマップしてください。 そして、二次キャッシュを有効にします。" - -#: index.docbook:260 +#. Tag: para +#: query_criteria.xml:247 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"For most queries, including criteria queries, the query cache is not very " +"efficient, because query cache invalidation occurs too frequently. However, " +"there is one special kind of query where we can optimize the cache " +"invalidation algorithm: lookups by a constant natural key. In some " +"applications, this kind of query occurs frequently. The criteria API " +"provides special provision for this use case." msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"criteriaクエリを含むたいていのクエリにとって、 クエリキャッシュはあまり効率が" +"よくないです。 なぜなら、クエリキャッシュが頻繁に無効になるためです。 しかし" +"ながら、キャッシュを無効にするアルゴリズムを最適化できる 特別なクエリの種類が" +"1つあります。 更新されない自然キーによる検索です。 いくつかのアプリケーショ" +"ンでは、この種類のクエリが頻繁に現れます。 このような使われ方のために、" +"criteria APIは特別な対策を提供します。" -#: index.docbook:262 -msgid "Note that this functionality is not intended for use with entities with mutable natural keys." -msgstr "注意: 変更される 自然キーを持つエンティティに この機能を使うのは、意図されていない使い方です。" +#. Tag: para +#: query_criteria.xml:255 +#, no-c-format +msgid "" +"First, you should map the natural key of your entity using <" +"natural-id>, and enable use of the second-level cache." +msgstr "" +"最初に、<natural-id> を使って、 エンティティの自然" +"キーをマップしてください。 そして、二次キャッシュを有効にします。" -#: index.docbook:267 +#. Tag: programlisting +#: query_criteria.xml:260 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: query_criteria.xml:262 +#, no-c-format +msgid "" +"Note that this functionality is not intended for use with entities with " +"mutable natural keys." +msgstr "" +"注意: 変更される 自然キーを持つエンティティに この機能" +"を使うのは、意図されていない使い方です。" + +#. Tag: para +#: query_criteria.xml:267 +#, no-c-format msgid "Next, enable the Hibernate query cache." msgstr "次に、Hibernateクエリキャッシュを有効にします。" -#: index.docbook:271 -msgid "Now, Restrictions.naturalId() allows us to make use of the more efficient cache algorithm." -msgstr "これで、Restrictions.naturalId() により、 より効率的なキャッシュアルゴリズムを使用できます。" - -#: index.docbook:276 +#. Tag: para +#: query_criteria.xml:271 +#, no-c-format msgid "" - "" +"Now, Restrictions.naturalId() allows us to make use of " +"the more efficient cache algorithm." msgstr "" - "" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +"これで、Restrictions.naturalId() により、 より効率的な" +"キャッシュアルゴリズムを使用できます。" +#. Tag: programlisting +#: query_criteria.xml:276 +#, no-c-format +msgid "" +"" +msgstr "" diff --git a/documentation/manual/translations/ja-JP/content/query_hql.po b/documentation/manual/translations/ja-JP/content/query_hql.po index e93c2b9ae5..f0756193e2 100644 --- a/documentation/manual/translations/ja-JP/content/query_hql.po +++ b/documentation/manual/translations/ja-JP/content/query_hql.po @@ -1,1512 +1,2399 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: query_hql.xml:5 +#, no-c-format msgid "HQL: The Hibernate Query Language" msgstr "HQL: The Hibernate Query Language" -#: index.docbook:7 -msgid "Hibernate is equipped with an extremely powerful query language that (quite intentionally) looks very much like SQL. But don't be fooled by the syntax; HQL is fully object-oriented, understanding notions like inheritence, polymorphism and association." -msgstr "HibernateはSQLに非常によく似た(意図的に似せた)強力な問い合わせ言語を備えています。 しかしSQLに似た構文に惑わされないでください。HQLは完全にオブジェクト指向であり、 継承、ポリモーフィズム、関連といった概念を理解します。" +#. Tag: para +#: query_hql.xml:7 +#, no-c-format +msgid "" +"Hibernate is equipped with an extremely powerful query language that (quite " +"intentionally) looks very much like SQL. But don't be fooled by the syntax; " +"HQL is fully object-oriented, understanding notions like inheritence, " +"polymorphism and association." +msgstr "" +"HibernateはSQLに非常によく似た(意図的に似せた)強力な問い合わせ言語を備えてい" +"ます。 しかしSQLに似た構文に惑わされないでください。HQLは完全にオブジェクト指" +"向であり、 継承、ポリモーフィズム、関連といった概念を理解します。" -#: index.docbook:14 +#. Tag: title +#: query_hql.xml:14 +#, no-c-format msgid "Case Sensitivity" msgstr "大文字と小文字の区別" -#: index.docbook:16 -msgid "Queries are case-insensitive, except for names of Java classes and properties. So SeLeCT is the same as sELEct is the same as SELECT but org.hibernate.eg.FOO is not org.hibernate.eg.Foo and foo.barSet is not foo.BARSET." -msgstr "クエリはJavaのクラス名とプロパティ名を除いて大文字、小文字を区別しません。 従って SeLeCTsELEct と同じで、かつ SELECT とも同じですが net.sf.hibernate.eg.FOOnet.sf.hibernate.eg.Foo とは違い、かつ foo.barSetfoo.BARSET とも違います。" +#. Tag: para +#: query_hql.xml:16 +#, no-c-format +msgid "" +"Queries are case-insensitive, except for names of Java classes and " +"properties. So SeLeCT is the same as sELEct is the same as SELECT but org.hibernate." +"eg.FOO is not org.hibernate.eg.Foo and " +"foo.barSet is not foo.BARSET." +msgstr "" +"クエリはJavaのクラス名とプロパティ名を除いて大文字、小文字を区別しません。 " +"従って SeLeCTsELEct と同じで、かつ " +"SELECT とも同じですが net.sf.hibernate.eg.FOOnet.sf.hibernate.eg.Foo とは違い、かつ " +"foo.barSetfoo.BARSET とも違います。" -#: index.docbook:27 -msgid "This manual uses lowercase HQL keywords. Some users find queries with uppercase keywords more readable, but we find this convention ugly when embedded in Java code." -msgstr "このマニュアルでは小文字のHQLキーワードを使用します。 大文字のキーワードのクエリの方が読みやすいと感じるユーザーもいると思います。 ですが、Javaコード内に埋め込まれたときには見づらいと思います。" +#. Tag: para +#: query_hql.xml:27 +#, no-c-format +msgid "" +"This manual uses lowercase HQL keywords. Some users find queries with " +"uppercase keywords more readable, but we find this convention ugly when " +"embedded in Java code." +msgstr "" +"このマニュアルでは小文字のHQLキーワードを使用します。 大文字のキーワードのク" +"エリの方が読みやすいと感じるユーザーもいると思います。 ですが、Javaコード内に" +"埋め込まれたときには見づらいと思います。" -#: index.docbook:35 +#. Tag: title +#: query_hql.xml:35 +#, no-c-format msgid "The from clause" msgstr "from節" -#: index.docbook:37 +#. Tag: para +#: query_hql.xml:37 +#, no-c-format msgid "The simplest possible Hibernate query is of the form:" msgstr "もっとも単純なHibernateクエリは次の形式です。" -#: index.docbook:41 +#. Tag: programlisting +#: query_hql.xml:41 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:43 -msgid "which simply returns all instances of the class eg.Cat. We don't usually need to qualify the class name, since auto-import is the default. So we almost always just write:" -msgstr "これは単純に eg.Cat クラスのインスタンスをすべて返します。 必ずしもクラス名を修飾する(クラスにパッケージ名を付ける)必要はありません。 というのも、auto-import がデフォルトになっているからです。 そのためほとんどの場合、このように書くだけで十分です。" +#. Tag: para +#: query_hql.xml:43 +#, no-c-format +msgid "" +"which simply returns all instances of the class eg.Cat. " +"We don't usually need to qualify the class name, since auto-import is the default. So we almost always just write:" +msgstr "" +"これは単純に eg.Cat クラスのインスタンスをすべて返しま" +"す。 必ずしもクラス名を修飾する(クラスにパッケージ名を付ける)必要はありませ" +"ん。 というのも、auto-import がデフォルトになっているから" +"です。 そのためほとんどの場合、このように書くだけで十分です。" -#: index.docbook:49 +#. Tag: programlisting +#: query_hql.xml:49 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:51 -msgid "Most of the time, you will need to assign an alias, since you will want to refer to the Cat in other parts of the query." -msgstr "ほとんどの場合クエリのほかの部分で Cat を参照するので、別名を割り当てる必要があるでしょう。" +#. Tag: para +#: query_hql.xml:51 +#, no-c-format +msgid "" +"Most of the time, you will need to assign an alias, " +"since you will want to refer to the Cat in other parts of " +"the query." +msgstr "" +"ほとんどの場合クエリのほかの部分で Cat を参照するので、" +"別名を割り当てる必要があるでしょう。" -#: index.docbook:57, index.docbook:372 +#. Tag: programlisting +#: query_hql.xml:57 query_hql.xml:372 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:59 -msgid "This query assigns the alias cat to Cat instances, so we could use that alias later in the query. The as keyword is optional; we could also write:" -msgstr "このクエリでは Cat インスタンスに cat という別名を付けています。 そのため、後でこのクエリ内で、この別名を使うことができます。 as キーワードはオプションです。つまりこのように書くこともできます:" +#. Tag: para +#: query_hql.xml:59 +#, no-c-format +msgid "" +"This query assigns the alias cat to Cat instances, so we could use that alias later in the query. The " +"as keyword is optional; we could also write:" +msgstr "" +"このクエリでは Cat インスタンスに cat " +"という別名を付けています。 そのため、後でこのクエリ内で、この別名を使うことが" +"できます。 as キーワードはオプションです。つまりこのように" +"書くこともできます:" -#: index.docbook:65 +#. Tag: programlisting +#: query_hql.xml:65 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:67 -msgid "Multiple classes may appear, resulting in a cartesian product or \"cross\" join." +#. Tag: para +#: query_hql.xml:67 +#, no-c-format +msgid "" +"Multiple classes may appear, resulting in a cartesian product or \"cross\" " +"join." msgstr "直積、あるいはクロス結合によって多数のクラスが出現することもあります。" -#: index.docbook:71 +#. Tag: programlisting +#: query_hql.xml:71 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:72 +#. Tag: programlisting +#: query_hql.xml:72 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:74 -msgid "It is considered good practice to name query aliases using an initial lowercase, consistent with Java naming standards for local variables (eg. domesticCat)." -msgstr "ローカル変数のJavaのネーミング基準と一致した、 頭文字に小文字を使ったクエリの別名を付けることはいい習慣です(例えば domesticCat )。" +#. Tag: para +#: query_hql.xml:74 +#, no-c-format +msgid "" +"It is considered good practice to name query aliases using an initial " +"lowercase, consistent with Java naming standards for local variables (eg. " +"domesticCat)." +msgstr "" +"ローカル変数のJavaのネーミング基準と一致した、 頭文字に小文字を使ったクエリの" +"別名を付けることはいい習慣です(例えば domesticCat )。" -#: index.docbook:83 +#. Tag: title +#: query_hql.xml:83 +#, no-c-format msgid "Associations and joins" msgstr "関連と結合" -#: index.docbook:85 -msgid "We may also assign aliases to associated entities, or even to elements of a collection of values, using a join." -msgstr "関連するエンティティあるいは値コレクションの要素にも、結合 を使って別名を割り当てることが出来ます。" - -#: index.docbook:90 +#. Tag: para +#: query_hql.xml:85 +#, no-c-format msgid "" - "" +"We may also assign aliases to associated entities, or even to elements of a " +"collection of values, using a join." msgstr "" - "" +"関連するエンティティあるいは値コレクションの要素にも、結合 を使って別名を割り当てることが出来ます。" -#: index.docbook:92 +#. Tag: programlisting +#: query_hql.xml:90 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: programlisting +#: query_hql.xml:92 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:94 +#. Tag: programlisting +#: query_hql.xml:94 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:96 +#. Tag: para +#: query_hql.xml:96 +#, no-c-format msgid "The supported join types are borrowed from ANSI SQL" msgstr "サポートしている結合のタイプはANSI SQLと同じです。" -#: index.docbook:103 +#. Tag: literal +#: query_hql.xml:103 +#, no-c-format msgid "inner join" msgstr "inner join" -#: index.docbook:108 +#. Tag: literal +#: query_hql.xml:108 +#, no-c-format msgid "left outer join" msgstr "left outer join" -#: index.docbook:113 +#. Tag: literal +#: query_hql.xml:113 +#, no-c-format msgid "right outer join" msgstr "right outer join" -#: index.docbook:117 +#. Tag: para +#: query_hql.xml:117 +#, no-c-format msgid "full join (not usually useful)" msgstr "full join (たいていの場合使いづらい)" -#: index.docbook:123 -msgid "The inner join, left outer join and right outer join constructs may be abbreviated." -msgstr "inner joinleft outer joinright outer joinには省略形を使うこともできます。" - -#: index.docbook:128 +#. Tag: para +#: query_hql.xml:123 +#, no-c-format msgid "" - "" +"The inner join, left outer join and " +"right outer join constructs may be abbreviated." msgstr "" - "" +"inner joinleft outer join、" +"right outer joinには省略形を使うこともできます。" -#: index.docbook:130 -msgid "You may supply extra join conditions using the HQL with keyword." -msgstr "HQLの with キーワードを使うと、結合条件を付け加えることができます。" - -#: index.docbook:135 +#. Tag: programlisting +#: query_hql.xml:128 +#, no-c-format msgid "" - " 10.0]]>" +"" msgstr "" - " 10.0]]>" -#: index.docbook:137 -msgid "In addition, a \"fetch\" join allows associations or collections of values to be initialized along with their parent objects, using a single select. This is particularly useful in the case of a collection. It effectively overrides the outer join and lazy declarations of the mapping file for associations and collections. See for more information." -msgstr "加えて、「フェッチ」結合は関連や値のコレクションを親オブジェクトと一緒に1度のselect句で初期化します。 これは特にコレクションの場合に有用です。これは実質上、関連とコレクションに対するマッピング定義ファイルの外部結合とlazy初期化の定義を上書きすることになります。 により多くの情報があります。" - -#: index.docbook:145 +#. Tag: para +#: query_hql.xml:130 +#, no-c-format msgid "" - "" +"You may supply extra join conditions using the HQL with " +"keyword." msgstr "" - "" +"HQLの with キーワードを使うと、結合条件を付け加えることが" +"できます。" -#: index.docbook:147 -msgid "A fetch join does not usually need to assign an alias, because the associated objects should not be used in the where clause (or any other clause). Also, the associated objects are not returned directly in the query results. Instead, they may be accessed via the parent object. The only reason we might need an alias is if we are recursively join fetching a further collection:" -msgstr "結合によるフェッチは関連するオブジェクトが where 節(または他のどんな節でも) で使われてはならないので、通常別名を割り当てる必要がありません。また関連オブジェクトは問い合わせ結果として 直接返されません。代わりに親オブジェクトを通してアクセスできます。 コレクションを再帰的に結合フェッチする場合のみ、別名が必要になります。" - -#: index.docbook:155 +#. Tag: programlisting +#: query_hql.xml:135 +#, no-c-format msgid "" - "" +" 10.0]]>" msgstr "" - "" -#: index.docbook:157 -msgid "Note that the fetch construct may not be used in queries called using iterate() (though scroll() can be used). Nor should fetch be used together with setMaxResults() or setFirstResult() as these operations are based on the result rows, which usually contain duplicates for eager collection fetching, hence, the number of rows is not what you'd expect. Nor may fetch be used together with an ad hoc with condition. It is possible to create a cartesian product by join fetching more than one collection in a query, so take care in this case. Join fetching multiple collection roles also sometimes gives unexpected results for bag mappings, so be careful about how you formulate your queries in this case. Finally, note that full join fetch and right join fetch are not meaningful." -msgstr "fetch 構文は iterate() を使ったクエリ呼び出しで使用できないことに注意してください (一方で scroll() は使用できます)。 また、これらの操作は結果の行に基づいているため、 fetchsetMaxResults()setFirstResult() と一緒に使用すべきではありません。 通常eagerなコレクションフェッチをすると重複が出てしまうため、あなたが期待するような行数にはならないのです。 そしてまた fetch は、アドホックな with 条件を 一緒に使うこともできません。 一つのクエリで複数のコレクションを結合フェッチすることにより直積を作成できるので、この場合注意してください。 また、複数のコレクションに対する結合フェッチはbagマッピングに対して予期せぬ結果をもたらすことがあるので、 この場合のクエリの作成には注意してください。 最後に 全外部結合によるフェッチ右外部結合によるフェッチ は有用ではないことに注意してください。" +#. Tag: para +#: query_hql.xml:137 +#, no-c-format +msgid "" +"In addition, a \"fetch\" join allows associations or collections of values " +"to be initialized along with their parent objects, using a single select. " +"This is particularly useful in the case of a collection. It effectively " +"overrides the outer join and lazy declarations of the mapping file for " +"associations and collections. See " +"for more information." +msgstr "" +"加えて、「フェッチ」結合は関連や値のコレクションを親オブジェクトと一緒に1度の" +"select句で初期化します。 これは特にコレクションの場合に有用です。これは実質" +"上、関連とコレクションに対するマッピング定義ファイルの外部結合とlazy初期化の" +"定義を上書きすることになります。 に" +"より多くの情報があります。" -#: index.docbook:172 -msgid "If you are using property-level lazy fetching (with bytecode instrumentation), it is possible to force Hibernate to fetch the lazy properties immediately (in the first query) using fetch all properties." -msgstr "もしプロパティレベルの遅延フェッチを使う場合(内部的にバイトコード処理をする場合)、 fetch all properties を使うことで Hibernateに遅延プロパティを速やかに(最初のクエリで)フェッチさせることができます。" +#. Tag: programlisting +#: query_hql.xml:145 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:178 +#. Tag: para +#: query_hql.xml:147 +#, no-c-format +msgid "" +"A fetch join does not usually need to assign an alias, because the " +"associated objects should not be used in the where clause " +"(or any other clause). Also, the associated objects are not returned " +"directly in the query results. Instead, they may be accessed via the parent " +"object. The only reason we might need an alias is if we are recursively join " +"fetching a further collection:" +msgstr "" +"結合によるフェッチは関連するオブジェクトが where 節(または" +"他のどんな節でも) で使われてはならないので、通常別名を割り当てる必要がありま" +"せん。また関連オブジェクトは問い合わせ結果として 直接返されません。代わりに親" +"オブジェクトを通してアクセスできます。 コレクションを再帰的に結合フェッチする" +"場合のみ、別名が必要になります。" + +#. Tag: programlisting +#: query_hql.xml:155 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:157 +#, no-c-format +msgid "" +"Note that the fetch construct may not be used in queries " +"called using iterate() (though scroll() can be used). Nor should fetch be used together " +"with setMaxResults() or setFirstResult() as these operations are based on the result rows, which usually " +"contain duplicates for eager collection fetching, hence, the number of rows " +"is not what you'd expect. Nor may fetch be used together " +"with an ad hoc with condition. It is possible to create a " +"cartesian product by join fetching more than one collection in a query, so " +"take care in this case. Join fetching multiple collection roles also " +"sometimes gives unexpected results for bag mappings, so be careful about how " +"you formulate your queries in this case. Finally, note that full " +"join fetch and right join fetch are not " +"meaningful." +msgstr "" +"fetch 構文は iterate() を使ったクエリ呼" +"び出しで使用できないことに注意してください (一方で scroll() は使用できます)。 また、これらの操作は結果の行に基づいているため、 " +"fetchsetMaxResults() や " +"setFirstResult() と一緒に使用すべきではありません。 通常" +"eagerなコレクションフェッチをすると重複が出てしまうため、あなたが期待するよう" +"な行数にはならないのです。 そしてまた fetch は、アドホック" +"な with 条件を 一緒に使うこともできません。 一つのクエリで" +"複数のコレクションを結合フェッチすることにより直積を作成できるので、この場合" +"注意してください。 また、複数のコレクションに対する結合フェッチはbagマッピン" +"グに対して予期せぬ結果をもたらすことがあるので、 この場合のクエリの作成には注" +"意してください。 最後に 全外部結合によるフェッチ と " +"右外部結合によるフェッチ は有用ではないことに注意してくだ" +"さい。" + +#. Tag: para +#: query_hql.xml:172 +#, no-c-format +msgid "" +"If you are using property-level lazy fetching (with bytecode " +"instrumentation), it is possible to force Hibernate to fetch the lazy " +"properties immediately (in the first query) using fetch all " +"properties." +msgstr "" +"もしプロパティレベルの遅延フェッチを使う場合(内部的にバイトコード処理をする" +"場合)、 fetch all properties を使うことで Hibernateに遅延" +"プロパティを速やかに(最初のクエリで)フェッチさせることができます。" + +#. Tag: programlisting +#: query_hql.xml:178 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:179 -msgid "" -msgstr "" +#. Tag: programlisting +#: query_hql.xml:179 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:184 +#. Tag: title +#: query_hql.xml:184 +#, no-c-format msgid "Forms of join syntax" msgstr "結合構文の形式" -#: index.docbook:186 -msgid "HQL supports two forms of association joining: implicit and explicit." -msgstr "HQLは2つの関連結合形式をサポートします:暗黙的明示的。" +#. Tag: para +#: query_hql.xml:186 +#, no-c-format +msgid "" +"HQL supports two forms of association joining: implicit " +"and explicit." +msgstr "" +"HQLは2つの関連結合形式をサポートします:暗黙的 と " +"明示的。" -#: index.docbook:190 -msgid "The queries shown in the previous section all use the explicit form where the join keyword is explicitly used in the from clause. This is the recommended form." -msgstr "これまでのセクションでお見せした使い方はすべて 明示的な 形式で、 from節で明示的にjoinキーワードを使っています。 この形式をおすすめします。" +#. Tag: para +#: query_hql.xml:190 +#, no-c-format +msgid "" +"The queries shown in the previous section all use the explicit form where the join keyword is explicitly used in the from clause. " +"This is the recommended form." +msgstr "" +"これまでのセクションでお見せした使い方はすべて 明示的な 形" +"式で、 from節で明示的にjoinキーワードを使っています。 この形式をおすすめしま" +"す。" -#: index.docbook:195 -msgid "The implicit form does not use the join keyword. Instead, the associations are \"dereferenced\" using dot-notation. implicit joins can appear in any of the HQL clauses. implicit join result in inner joins in the resulting SQL statement." -msgstr "暗黙的 フォームは、joinキーワードを使いません。代わりに、参照する関連に ドット表記を使います。暗黙的 結合は、さまざまなHQLに出てきます。 暗黙的 結合の結果は、SQLステートメントの内部結合結果です。" +#. Tag: para +#: query_hql.xml:195 +#, no-c-format +msgid "" +"The implicit form does not use the join keyword. Instead, " +"the associations are \"dereferenced\" using dot-notation. implicit joins can appear in any of the HQL clauses. implicit join result in inner joins in the resulting SQL statement." +msgstr "" +"暗黙的 フォームは、joinキーワードを使いません。代わりに、" +"参照する関連に ドット表記を使います。暗黙的 結合は、さまざ" +"まなHQLに出てきます。 暗黙的 結合の結果は、SQLステートメン" +"トの内部結合結果です。" -#: index.docbook:202 +#. Tag: programlisting +#: query_hql.xml:202 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:206 +#. Tag: title +#: query_hql.xml:206 +#, no-c-format msgid "Refering to identifier property" +msgstr "Refering to identifier property" + +#. Tag: para +#: query_hql.xml:208 +#, no-c-format +msgid "" +"There are, generally speaking, 2 ways to refer to an entity's identifier " +"property:" +msgstr "" +"There are, generally speaking, 2 ways to refer to an entity's identifier " +"property:" + +#. Tag: para +#: query_hql.xml:213 +#, no-c-format +msgid "" +"The special property (lowercase) id may be used to " +"reference the identifier property of an entity provided that " +"entity does not define a non-identifier property named id." +msgstr "" +"The special property (lowercase) id may be used to " +"reference the identifier property of an entity provided that " +"entity does not define a non-identifier property named id." + +#. Tag: para +#: query_hql.xml:220 +#, no-c-format +msgid "" +"If the entity defines a named identifier property, you may use that property " +"name." +msgstr "" +"If the entity defines a named identifier property, you may use that property " +"name." + +#. Tag: para +#: query_hql.xml:226 +#, no-c-format +msgid "" +"References to composite identifier properties follow the same naming rules. " +"If the entity has a non-identifier property named id, the composite " +"identifier property can only be referenced by its defined named; otherwise, " +"the special id property can be used to rerference the " +"identifier property." +msgstr "" +"References to composite identifier properties follow the same naming rules. " +"If the entity has a non-identifier property named id, the composite " +"identifier property can only be referenced by its defined named; otherwise, " +"the special id property can be used to rerference the " +"identifier property." + +#. Tag: para +#: query_hql.xml:233 +#, fuzzy, no-c-format +msgid "" +"Note: this has changed significantly starting in version 3.2.2. In previous " +"versions, id always referred to the " +"identifier property no matter what its actual name. A ramification of that " +"decision was that non-identifier properties named id " +"could never be referenced in Hibernate queries." +msgstr "" +"Note: this has changed significantly starting in version 3.2.2. In previous " +"versions, idalways referred to the " +"identifier property no matter what its actual name. A ramification of that " +"decision was that non-identifier properties named id " +"could never be referenced in Hibernate queries." + +#. Tag: title +#: query_hql.xml:242 +#, no-c-format +msgid "The select clause" msgstr "Select節" -#: index.docbook:208 -msgid "There are, generally speaking, 2 ways to refer to an entity's identifier property:" -msgstr "select 節は以下のようにどのオブジェクトと属性をクエリリザルトセットに返すかを選択します。:" - -#: index.docbook:213 -msgid "The special property (lowercase) id may be used to reference the identifier property of an entity provided that entity does not define a non-identifier property named id." -msgstr "" - "" - -#: index.docbook:220 -msgid "If the entity defines a named identifier property, you may use that property name." -msgstr "上記のクエリは他の Catmate を選択します。 実際には次のように、より簡潔に表現できます。:" - -#: index.docbook:226 -msgid "References to composite identifier properties follow the same naming rules. If the entity has a non-identifier property named id, the composite identifier property can only be referenced by its defined named; otherwise, the special id property can be used to rerference the identifier property." -msgstr "" - -#: index.docbook:233 -msgid "Note: this has changed significantly starting in version 3.2.2. In previous versions, id always referred to the identifier property no matter what its actual name. A ramification of that decision was that non-identifier properties named id could never be referenced in Hibernate queries." -msgstr "クエリはコンポーネント型のプロパティを含む、あらゆる値型のプロパティも返せます。:" - -#: index.docbook:242 -msgid "The select clause" -msgstr "" - "" - -#: index.docbook:244 -msgid "The select clause picks which objects and properties to return in the query result set. Consider:" -msgstr "" - -#: index.docbook:249 +#. Tag: para +#: query_hql.xml:244 +#, no-c-format msgid "" - "" -msgstr "クエリは複数のオブジェクトと(または)プロパティを Object[] 型の配列として返せます。" - -#: index.docbook:251 -msgid "The query will select mates of other Cats. Actually, you may express this query more compactly as:" +"The select clause picks which objects and properties to " +"return in the query result set. Consider:" msgstr "" - "" +"select 節は以下のようにどのオブジェクトと属性をクエリリザ" +"ルトセットに返すかを選択します。:" -#: index.docbook:256 +#. Tag: programlisting +#: query_hql.xml:249 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:251 +#, no-c-format +msgid "" +"The query will select mates of other Cats. Actually, you may express this query more compactly as:" +msgstr "" +"上記のクエリは他の Catmate を選択し" +"ます。 実際には次のように、より簡潔に表現できます。:" + +#. Tag: programlisting +#: query_hql.xml:256 +#, no-c-format msgid "" -msgstr "もしくは List として、" - -#: index.docbook:258 -msgid "Queries may return properties of any value type including properties of component type:" msgstr "" - "" -#: index.docbook:262 +#. Tag: para +#: query_hql.xml:258 +#, no-c-format msgid "" - "" -msgstr "または、タイプセーフなJavaオブジェクトを返せます。" +"Queries may return properties of any value type including properties of " +"component type:" +msgstr "" +"クエリはコンポーネント型のプロパティを含む、あらゆる値型のプロパティも返せま" +"す。:" -#: index.docbook:264 +#. Tag: programlisting +#: query_hql.xml:262 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: programlisting +#: query_hql.xml:264 +#, no-c-format msgid "" msgstr "" - "" -#: index.docbook:266 -msgid "Queries may return multiple objects and/or properties as an array of type Object[]," -msgstr "あるいは Family クラスが適切なコンストラクタを持っているとするならば、" - -#: index.docbook:271 +#. Tag: para +#: query_hql.xml:266 +#, no-c-format msgid "" - "" +"Queries may return multiple objects and/or properties as an array of type " +"Object[]," +msgstr "" +"クエリは複数のオブジェクトと(または)プロパティを Object[] " +"型の配列として返せます。" + +#. Tag: programlisting +#: query_hql.xml:271 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:273 +#, no-c-format +msgid "or as a List," +msgstr "もしくは List として、" + +#. Tag: programlisting +#: query_hql.xml:277 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:279 +#, no-c-format +msgid "or as an actual typesafe Java object," +msgstr "または、タイプセーフなJavaオブジェクトを返せます。" + +#. Tag: programlisting +#: query_hql.xml:283 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:285 +#, no-c-format +msgid "" +"assuming that the class Family has an appropriate " +"constructor." +msgstr "" +"あるいは Family クラスが適切なコンストラクタを持っていると" +"するならば、" + +#. Tag: para +#: query_hql.xml:289 +#, no-c-format +msgid "" +"You may assign aliases to selected expressions using as:" msgstr "select節に as を使って別名をつけることもできます。" -#: index.docbook:273 -msgid "or as a List," -msgstr "" - "" - -#: index.docbook:277 +#. Tag: programlisting +#: query_hql.xml:293 +#, no-c-format msgid "" - "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:295 +#, no-c-format +msgid "" +"This is most useful when used together with select new map:" msgstr "select new map と一緒に使うときに最も役立ちます:" -#: index.docbook:279 -msgid "or as an actual typesafe Java object," -msgstr "" - "" - -#: index.docbook:283 +#. Tag: programlisting +#: query_hql.xml:299 +#, no-c-format msgid "" - "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:301 +#, no-c-format +msgid "" +"This query returns a Map from aliases to selected values." msgstr "このクエリは別名からselectした値へ Map を返します。" -#: index.docbook:285 -msgid "assuming that the class Family has an appropriate constructor." +#. Tag: title +#: query_hql.xml:308 +#, no-c-format +msgid "Aggregate functions" msgstr "集約関数" -#: index.docbook:289 -msgid "You may assign aliases to selected expressions using as:" +#. Tag: para +#: query_hql.xml:310 +#, no-c-format +msgid "" +"HQL queries may even return the results of aggregate functions on properties:" msgstr "HQLのクエリはプロパティの集約関数の結果も返せます:" -#: index.docbook:293 +#. Tag: programlisting +#: query_hql.xml:314 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:295 -msgid "This is most useful when used together with select new map:" +#. Tag: para +#: query_hql.xml:325 +#, no-c-format +msgid "The supported aggregate functions are" msgstr "サポートしている集約関数は以下のものです。" -#: index.docbook:299 -msgid "" - "" +#. Tag: literal +#: query_hql.xml:332 +#, no-c-format +msgid "avg(...), sum(...), min(...), max(...)" msgstr "avg(...), sum(...), min(...), max(...)" -#: index.docbook:301 -msgid "This query returns a Map from aliases to selected values." +#. Tag: literal +#: query_hql.xml:337 +#, no-c-format +msgid "count(*)" msgstr "count(*)" -#: index.docbook:308 -msgid "Aggregate functions" +#. Tag: literal +#: query_hql.xml:342 +#, no-c-format +msgid "count(...), count(distinct ...), count(all...)" msgstr "count(...), count(distinct ...), count(all...)" -#: index.docbook:310 -msgid "HQL queries may even return the results of aggregate functions on properties:" -msgstr "select節において算術操作、連結と承認されたSQL関数を使うことができます。" - -#: index.docbook:314 +#. Tag: para +#: query_hql.xml:347 +#, no-c-format msgid "" - "" +"You may use arithmetic operators, concatenation, and recognized SQL " +"functions in the select clause:" msgstr "" - "" +"select節において算術操作、連結と承認されたSQL関数を使うことができます。" -#: index.docbook:325 -msgid "The supported aggregate functions are" -msgstr "" - -#: index.docbook:332 -msgid "avg(...), sum(...), min(...), max(...)" -msgstr "SQLと同じ意味を持つ distinctall キーワードを使うことができます。" - -#: index.docbook:337 -msgid "count(*)" +#. Tag: programlisting +#: query_hql.xml:352 +#, no-c-format +msgid "" +"" msgstr "" - "" -#: index.docbook:342 -msgid "count(...), count(distinct ...), count(all...)" +#. Tag: programlisting +#: query_hql.xml:354 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:356 +#, no-c-format +msgid "" +"The distinct and all keywords may be " +"used and have the same semantics as in SQL." +msgstr "" +"SQLと同じ意味を持つ distinctall " +"キーワードを使うことができます。" + +#. Tag: programlisting +#: query_hql.xml:361 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: query_hql.xml:366 +#, no-c-format +msgid "Polymorphic queries" msgstr "ポリモーフィックなクエリ" -#: index.docbook:347 -msgid "You may use arithmetic operators, concatenation, and recognized SQL functions in the select clause:" +#. Tag: para +#: query_hql.xml:368 +#, no-c-format +msgid "A query like:" msgstr "次のようなクエリ:" -#: index.docbook:352 +#. Tag: para +#: query_hql.xml:374 +#, no-c-format msgid "" - "" -msgstr "" +"returns instances not only of Cat, but also of subclasses " +"like DomesticCat. Hibernate queries may name " +"any Java class or interface in the from clause. The query will return instances of all persistent classes " +"that extend that class or implement the interface. The following query would " +"return all persistent objects:" +msgstr "" +"Cat インスタンスだけではなく、DomesticCat のようなサブクラスも返されます。Hibernateクエリは どんな Javaクラスやインターフェイスも from 節に入れるこ" +"とができます。 クエリはそのクラスを拡張した、もしくはインターフェイスを実装し" +"た全ての永続クラスを返します。 次のクエリは永続オブジェクトをすべて返します:" -#: index.docbook:354 -msgid "" -msgstr "Cat インスタンスだけではなく、DomesticCat のようなサブクラスも返されます。Hibernateクエリは どんな Javaクラスやインターフェイスも from 節に入れることができます。 クエリはそのクラスを拡張した、もしくはインターフェイスを実装した全ての永続クラスを返します。 次のクエリは永続オブジェクトをすべて返します:" - -#: index.docbook:356 -msgid "The distinct and all keywords may be used and have the same semantics as in SQL." -msgstr "" - -#: index.docbook:361 -msgid "" - "" -msgstr "Named インターフェイスは様々な永続クラスによって実装されます。:" - -#: index.docbook:366 -msgid "Polymorphic queries" -msgstr "" - -#: index.docbook:368 -msgid "A query like:" -msgstr "最後の二つのクエリは、二つ以上のSQL SELECT を要求していることに注意してください。 このことは order by 節がリザルトセット全体を正確には整列しないことを意味します (さらにそれは、Query.scroll() を使用してこれらのクエリを呼ぶことができないことを意味します。)。" - -#: index.docbook:374 -msgid "returns instances not only of Cat, but also of subclasses like DomesticCat. Hibernate queries may name any Java class or interface in the from clause. The query will return instances of all persistent classes that extend that class or implement the interface. The following query would return all persistent objects:" -msgstr "where 節は返されるインスタンスのリストを絞ることができます。 もし別名がない場合、名前でプロパティを参照します。" - -#: index.docbook:382 +#. Tag: programlisting +#: query_hql.xml:382 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:384 -msgid "The interface Named might be implemented by various persistent classes:" +#. Tag: para +#: query_hql.xml:384 +#, no-c-format +msgid "" +"The interface Named might be implemented by various " +"persistent classes:" +msgstr "" +"Named インターフェイスは様々な永続クラスによって実装されま" +"す。:" + +#. Tag: programlisting +#: query_hql.xml:389 +#, no-c-format +msgid "" +msgstr "" + +#. Tag: para +#: query_hql.xml:391 +#, no-c-format +msgid "" +"Note that these last two queries will require more than one SQL " +"SELECT. This means that the order by " +"clause does not correctly order the whole result set. (It also means you " +"can't call these queries using Query.scroll().)" +msgstr "" +"最後の二つのクエリは、二つ以上のSQL SELECT を要求している" +"ことに注意してください。 このことは order by 節がリザルト" +"セット全体を正確には整列しないことを意味します (さらにそれは、Query." +"scroll() を使用してこれらのクエリを呼ぶことができないことを意味しま" +"す。)。" + +#. Tag: title +#: query_hql.xml:400 +#, no-c-format +msgid "The where clause" +msgstr "where節" + +#. Tag: para +#: query_hql.xml:402 +#, no-c-format +msgid "" +"The where clause allows you to narrow the list of " +"instances returned. If no alias exists, you may refer to properties by name:" +msgstr "" +"where 節は返されるインスタンスのリストを絞ることができま" +"す。 もし別名がない場合、名前でプロパティを参照します。" + +#. Tag: programlisting +#: query_hql.xml:407 +#, no-c-format +msgid "" +msgstr "" + +#. Tag: para +#: query_hql.xml:409 +#, no-c-format +msgid "If there is an alias, use a qualified property name:" msgstr "もし別名がある場合、修飾名を使ってください。" -#: index.docbook:389 -msgid "" -msgstr "" - -#: index.docbook:391 -msgid "Note that these last two queries will require more than one SQL SELECT. This means that the order by clause does not correctly order the whole result set. (It also means you can't call these queries using Query.scroll().)" -msgstr "名前が'Fritz'という Cat のインスタンスを返します。" - -#: index.docbook:400 -msgid "The where clause" -msgstr "" - "" - -#: index.docbook:402 -msgid "The where clause allows you to narrow the list of instances returned. If no alias exists, you may refer to properties by name:" -msgstr "上のHQLは、FoostartDate プロパティと等しい date プロパティを持った bar インスタンスが存在する、 すべての Foo インスタンスを返します。 コンパウンドパス式(例えば「cat.mate.name」)は where 節を非常に強力にします。注目:" - -#: index.docbook:407 -msgid "" -msgstr "" - -#: index.docbook:409 -msgid "If there is an alias, use a qualified property name:" -msgstr "このクエリはテーブル結合(内部結合)を持つSQLクエリに変換されます。 その代わりに以下のように書くと、" - -#: index.docbook:413 +#. Tag: programlisting +#: query_hql.xml:413 +#, no-c-format msgid "" msgstr "" - "" -#: index.docbook:415 +#. Tag: para +#: query_hql.xml:415 +#, no-c-format msgid "returns instances of Cat named 'Fritz'." -msgstr "もし上のクエリを記述したらクエリ内に4つのテーブル結合を必要とするSQLクエリに変換されます。" +msgstr "名前が'Fritz'という Cat のインスタンスを返します。" -#: index.docbook:419 +#. Tag: programlisting +#: query_hql.xml:419 +#, no-c-format msgid "" - "" -msgstr "= 演算子は以下のように、プロパティだけでなくインスタンスを比較するためにも使われます。:" +"" +msgstr "" -#: index.docbook:421 -msgid "will return all instances of Foo for which there exists an instance of bar with a date property equal to the startDate property of the Foo. Compound path expressions make the where clause extremely powerful. Consider:" -msgstr "" +#. Tag: para +#: query_hql.xml:421 +#, no-c-format +msgid "" +"will return all instances of Foo for which there exists " +"an instance of bar with a date " +"property equal to the startDate property of the " +"Foo. Compound path expressions make the where clause extremely powerful. Consider:" +msgstr "" +"上のHQLは、FoostartDate プロパティ" +"と等しい date プロパティを持った bar イ" +"ンスタンスが存在する、 すべての Foo インスタンスを返しま" +"す。 コンパウンドパス式(例えば「cat.mate.name」)は where 節を非常に強力にします。注目:" -#: index.docbook:430 +#. Tag: programlisting +#: query_hql.xml:430 +#, no-c-format msgid "" msgstr "" - "" -#: index.docbook:432 -msgid "This query translates to an SQL query with a table (inner) join. If you were to write something like" -msgstr "id (小文字)は特別なプロパティであり、 オブジェクトのユニークな識別子を参照するために使用できます。(さらに、そのプロパティ名を使用できます。)" - -#: index.docbook:437 +#. Tag: para +#: query_hql.xml:432 +#, no-c-format msgid "" - "" +"This query translates to an SQL query with a table (inner) join. If you were " +"to write something like" msgstr "" - "" +"このクエリはテーブル結合(内部結合)を持つSQLクエリに変換されます。 その代わ" +"りに以下のように書くと、" -#: index.docbook:439 -msgid "you would end up with a query that would require four table joins in SQL." -msgstr "2番目のクエリは効率的です。テーブル結合が必要ありません!" +#. Tag: programlisting +#: query_hql.xml:437 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:443 -msgid "The = operator may be used to compare not only properties, but also instances:" -msgstr "また複合識別子のプロパティも使用できます。ここで PersoncountrymedicareNumber からなる複合識別子を持つと仮定します。" +#. Tag: para +#: query_hql.xml:439 +#, no-c-format +msgid "" +"you would end up with a query that would require four table joins in SQL." +msgstr "" +"もし上のクエリを記述したらクエリ内に4つのテーブル結合を必要とするSQLクエリに" +"変換されます。" -#: index.docbook:448 +#. Tag: para +#: query_hql.xml:443 +#, no-c-format +msgid "" +"The = operator may be used to compare not only " +"properties, but also instances:" +msgstr "" +"= 演算子は以下のように、プロパティだけでなくインスタンスを" +"比較するためにも使われます。:" + +#. Tag: programlisting +#: query_hql.xml:448 +#, no-c-format msgid "" msgstr "" - "" -#: index.docbook:450 +#. Tag: programlisting +#: query_hql.xml:450 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:452 -msgid "The special property (lowercase) id may be used to reference the unique identifier of an object. See for more information." +#. Tag: para +#: query_hql.xml:452 +#, no-c-format +msgid "" +"The special property (lowercase) id may be used to " +"reference the unique identifier of an object. See for more information." +msgstr "" +"id (小文字)は特別なプロパティであり、 オブジェクトのユニー" +"クな識別子を参照するために使用できます。(さらに、そのプロパティ名を使用できま" +"す。)" + +#. Tag: programlisting +#: query_hql.xml:458 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:460 +#, no-c-format +msgid "The second query is efficient. No table join is required!" +msgstr "2番目のクエリは効率的です。テーブル結合が必要ありません!" + +#. Tag: para +#: query_hql.xml:464 +#, no-c-format +msgid "" +"Properties of composite identifiers may also be used. Suppose " +"Person has a composite identifier consisting of " +"country and medicareNumber. Again, see " +" for more information " +"regarding referencing identifier properties." +msgstr "" +"また複合識別子のプロパティも使用できます。ここで Person " +"が countrymedicareNumber からなる複" +"合識別子を持つと仮定します。" + +#. Tag: programlisting +#: query_hql.xml:471 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: programlisting +#: query_hql.xml:473 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:475 +#, no-c-format +msgid "Once again, the second query requires no table join." msgstr "もう一度言いますが、2番目のクエリにはテーブル結合が必要ありません。" -#: index.docbook:458 +#. Tag: para +#: query_hql.xml:479 +#, no-c-format msgid "" - "" -msgstr "同様に class は特別なプロパティであり、 ポリモーフィックな永続化におけるインスタンスのdiscriminator値にアクセスします。 where節に埋め込まれたJavaのクラス名はそのdiscriminator値に変換されます。" - -#: index.docbook:460 -msgid "The second query is efficient. No table join is required!" -msgstr "" - -#: index.docbook:464 -msgid "Properties of composite identifiers may also be used. Suppose Person has a composite identifier consisting of country and medicareNumber. Again, see for more information regarding referencing identifier properties." -msgstr "またコンポーネントや複合ユーザ型(またそのコンポーネントのコンポーネントなど)のプロパティも指定できます。 しかし決して(コンポーネントのプロパティではなく)コンポーネント型のプロパティで終了するパス式を使わないでください。 例えばもし store.owneraddress コンポーネントを持つエンティティならば以下のような結果となります。" - -#: index.docbook:471 -msgid "" - "" +"Likewise, the special property class accesses the " +"discriminator value of an instance in the case of polymorphic persistence. A " +"Java class name embedded in the where clause will be translated to its " +"discriminator value." msgstr "" - "" +"同様に class は特別なプロパティであり、 ポリモーフィックな" +"永続化におけるインスタンスのdiscriminator値にアクセスします。 where節に埋め込" +"まれたJavaのクラス名はそのdiscriminator値に変換されます。" -#: index.docbook:473 -msgid "" - "" -msgstr "\"any\"型は特別なプロパティである idclass を持ち、 以下の方法で結合を表現することを可能にします(AuditLog.item<any> でマッピングされたプロパティです)。" - -#: index.docbook:475 -msgid "Once again, the second query requires no table join." -msgstr "" - "" - -#: index.docbook:479 -msgid "Likewise, the special property class accesses the discriminator value of an instance in the case of polymorphic persistence. A Java class name embedded in the where clause will be translated to its discriminator value." -msgstr "log.item.classpayment.class が 上記のクエリ中で全く異なるデータベースカラムの値を参照するということに注意してください。" - -#: index.docbook:485 +#. Tag: programlisting +#: query_hql.xml:485 +#, no-c-format msgid "" +msgstr "" + +#. Tag: para +#: query_hql.xml:487 +#, no-c-format +msgid "" +"You may also use components or composite user types, or properties of said " +"component types. See for more " +"details." +msgstr "" +"またコンポーネントや複合ユーザ型(またそのコンポーネントのコンポーネントなど)" +"のプロパティも指定できます。 しかし決して(コンポーネントのプロパティではな" +"く)コンポーネント型のプロパティで終了するパス式を使わないでください。 例えば" +"もし store.owneraddress コンポーネ" +"ントを持つエンティティならば以下のような結果となります。" + +#. Tag: para +#: query_hql.xml:492 +#, no-c-format +msgid "" +"An \"any\" type has the special properties id and " +"class, allowing us to express a join in the following way " +"(where AuditLog.item is a property mapped with " +"<any>)." +msgstr "" +"\"any\"型は特別なプロパティである idclass を持ち、 以下の方法で結合を表現することを可能にします" +"(AuditLog.item<any> でマッピ" +"ングされたプロパティです)。" + +#. Tag: programlisting +#: query_hql.xml:498 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:500 +#, no-c-format +msgid "" +"Notice that log.item.class and payment.class would refer to the values of completely different database columns " +"in the above query." +msgstr "" +"log.item.classpayment.class が 上記" +"のクエリ中で全く異なるデータベースカラムの値を参照するということに注意してく" +"ださい。" + +#. Tag: title +#: query_hql.xml:508 +#, no-c-format +msgid "Expressions" msgstr "Expressions 式" -#: index.docbook:487 -msgid "You may also use components or composite user types, or properties of said component types. See for more details." -msgstr "SQLの where 節で記述することが出来る式のほとんどをHQLでも記述できます。:" +#. Tag: para +#: query_hql.xml:510 +#, no-c-format +msgid "" +"Expressions allowed in the where clause include most of " +"the kind of things you could write in SQL:" +msgstr "" +"SQLの where 節で記述することが出来る式のほとんどをHQLでも" +"記述できます。:" -#: index.docbook:492 -msgid "An \"any\" type has the special properties id and class, allowing us to express a join in the following way (where AuditLog.item is a property mapped with <any>)." +#. Tag: para +#: query_hql.xml:517 +#, no-c-format +msgid "mathematical operators +, -, *, /" msgstr "算術演算子:+, -, *, /" -#: index.docbook:498 +#. Tag: para +#: query_hql.xml:522 +#, no-c-format msgid "" - "" +"binary comparison operators =, >=, <=, <>, !=, like" msgstr "2項比較演算子:=, >=, <=, <>, !=, like" -#: index.docbook:500 -msgid "Notice that log.item.class and payment.class would refer to the values of completely different database columns in the above query." +#. Tag: para +#: query_hql.xml:527 +#, no-c-format +msgid "logical operations and, or, not" msgstr "論理演算子:and, or, not" -#: index.docbook:508 -msgid "Expressions" +#. Tag: para +#: query_hql.xml:532 +#, no-c-format +msgid "Parentheses ( ), indicating grouping" msgstr "グループ分けを表す括弧:( )" -#: index.docbook:510 -msgid "Expressions allowed in the where clause include most of the kind of things you could write in SQL:" -msgstr "in, not in, between, is null, is not null, is empty, is not empty, member of and not member of" +#. Tag: para +#: query_hql.xml:537 +#, no-c-format +msgid "" +"in, not in, between, is null, is not null, " +"is empty, is not empty, " +"member of and not member of" +msgstr "" +"in, not in, between, is null, is not null, " +"is empty, is not empty, " +"member of and not member of" -#: index.docbook:517 -msgid "mathematical operators +, -, *, /" -msgstr "\"シンプル\"なcase case ... when ... then ... else ... end、 \"探索的\"なcase case when ... then ... else ... end" +#. Tag: para +#: query_hql.xml:550 +#, no-c-format +msgid "" +"\"Simple\" case, case ... when ... then ... else ... end, " +"and \"searched\" case, case when ... then ... else ... end" +msgstr "" +"\"シンプル\"なcase case ... when ... then ... else ... end、 \"探索的\"なcase case when ... then ... else ... end" -#: index.docbook:522 -msgid "binary comparison operators =, >=, <=, <>, !=, like" -msgstr "ストリングの連結 ...||... または concat(...,...)" +#. Tag: para +#: query_hql.xml:556 +#, no-c-format +msgid "" +"string concatenation ...||... or concat(...,...)" +"" +msgstr "" +"ストリングの連結 ...||... または concat(...,...)" +"" -#: index.docbook:527 -msgid "logical operations and, or, not" -msgstr "current_date(), current_time(), current_timestamp()" +#. Tag: para +#: query_hql.xml:561 +#, no-c-format +msgid "" +"current_date(), current_time(), " +"current_timestamp()" +msgstr "" +"current_date(), current_time(), " +"current_timestamp()" -#: index.docbook:532 -msgid "Parentheses ( ), indicating grouping" -msgstr "second(...), minute(...), hour(...), day(...), month(...), year(...)," +#. Tag: para +#: query_hql.xml:567 +#, no-c-format +msgid "" +"second(...), minute(...), hour" +"(...), day(...), month(...), " +"year(...)," +msgstr "" +"second(...), minute(...), hour" +"(...), day(...), month(...), " +"year(...)," -#: index.docbook:537 -msgid "in, not in, between, is null, is not null, is empty, is not empty, member of and not member of" -msgstr "EJB-QL 3.0で定義されている関数や演算子: substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length()" +#. Tag: para +#: query_hql.xml:574 +#, no-c-format +msgid "" +"Any function or operator defined by EJB-QL 3.0: substring(), trim" +"(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()" +"" +msgstr "" +"EJB-QL 3.0で定義されている関数や演算子: substring(), trim(), lower" +"(), upper(), length(), locate(), abs(), sqrt(), bit_length()" -#: index.docbook:550 -msgid "\"Simple\" case, case ... when ... then ... else ... end, and \"searched\" case, case when ... then ... else ... end" +#. Tag: para +#: query_hql.xml:580 +#, no-c-format +msgid "coalesce() and nullif()" msgstr "coalesce()nullif()" -#: index.docbook:556 -msgid "string concatenation ...||... or concat(...,...)" +#. Tag: para +#: query_hql.xml:585 +#, no-c-format +msgid "" +"str() for converting numeric or temporal values to a " +"readable string" msgstr "数字や時間の値をStringにコンバートする str())" -#: index.docbook:561 -msgid "current_date(), current_time(), current_timestamp()" -msgstr "2番目の引数がHibernate型の名前である cast(... as ...)extract(... from ...)。 ただし使用するデータベースがANSI cast()extract() をサポートする場合に限ります。" +#. Tag: para +#: query_hql.xml:591 +#, no-c-format +msgid "" +"cast(... as ...), where the second argument is the name " +"of a Hibernate type, and extract(... from ...) if ANSI " +"cast() and extract() is supported by " +"the underlying database" +msgstr "" +"2番目の引数がHibernate型の名前である cast(... as ...) と " +"extract(... from ...)。 ただし使用するデータベースがANSI " +"cast()extract() をサポートする場合" +"に限ります。" -#: index.docbook:567 -msgid "second(...), minute(...), hour(...), day(...), month(...), year(...)," -msgstr "結合したインデックス付きのコレクションの別名に適用されるHQLの index() 関数。" +#. Tag: para +#: query_hql.xml:599 +#, no-c-format +msgid "" +"the HQL index() function, that applies to aliases of a " +"joined indexed collection" +msgstr "" +"結合したインデックス付きのコレクションの別名に適用されるHQLの index" +"() 関数。" -#: index.docbook:574 -msgid "Any function or operator defined by EJB-QL 3.0: substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()" -msgstr "コレクション値のパス式を取るHQL関数: size(), minelement(), maxelement(), minindex(), maxindex()some, all, exists, any, in を使って修飾することができる特別な elements()indices 関数と一緒に使います。" +#. Tag: para +#: query_hql.xml:605 +#, no-c-format +msgid "" +"HQL functions that take collection-valued path expressions: size(), " +"minelement(), maxelement(), minindex(), maxindex(), along with the " +"special elements() and indices " +"functions which may be quantified using some, all, exists, any, in." +msgstr "" +"コレクション値のパス式を取るHQL関数: size(), minelement(), " +"maxelement(), minindex(), maxindex()some, all, " +"exists, any, in を使って修飾することができる特別な " +"elements()indices 関数と一緒に使い" +"ます。" -#: index.docbook:580 -msgid "coalesce() and nullif()" -msgstr "sign(), trunc(), rtrim(), sin() のようなデータベースがサポートするSQLスカラ関数。" +#. Tag: para +#: query_hql.xml:613 +#, no-c-format +msgid "" +"Any database-supported SQL scalar function like sign(), " +"trunc(), rtrim(), sin()" +msgstr "" +"sign(), trunc(), rtrim(), sin() のようなデータベースがサポートするSQLスカ" +"ラ関数。" -#: index.docbook:585 -msgid "str() for converting numeric or temporal values to a readable string" +#. Tag: para +#: query_hql.xml:619 +#, no-c-format +msgid "JDBC-style positional parameters ?" msgstr "JDBCスタイルの位置パラメータ ?" -#: index.docbook:591 -msgid "cast(... as ...), where the second argument is the name of a Hibernate type, and extract(... from ...) if ANSI cast() and extract() is supported by the underlying database" -msgstr "名前付きパラメータ: :name, :start_date, :x1" +#. Tag: para +#: query_hql.xml:624 +#, no-c-format +msgid "" +"named parameters :name, :start_date, " +":x1" +msgstr "" +"名前付きパラメータ: :name, :start_date, :x1" -#: index.docbook:599 -msgid "the HQL index() function, that applies to aliases of a joined indexed collection" -msgstr "SQLリテラル:'foo', 69, 6.66E+2, '1970-01-01 10:00:01.0'" +#. Tag: para +#: query_hql.xml:629 +#, no-c-format +msgid "" +"SQL literals 'foo', 69, 6.66E" +"+2, '1970-01-01 10:00:01.0'" +msgstr "" +"SQLリテラル:'foo', 69, 6.66E" +"+2, '1970-01-01 10:00:01.0'" -#: index.docbook:605 -msgid "HQL functions that take collection-valued path expressions: size(), minelement(), maxelement(), minindex(), maxindex(), along with the special elements() and indices functions which may be quantified using some, all, exists, any, in." -msgstr "Javaの public static final 定数:eg.Color.TABBY" +#. Tag: para +#: query_hql.xml:635 +#, no-c-format +msgid "" +"Java public static final constants eg.Color." +"TABBY" +msgstr "" +"Javaの public static final 定数:eg.Color.TABBY" -#: index.docbook:613 -msgid "Any database-supported SQL scalar function like sign(), trunc(), rtrim(), sin()" -msgstr "inbetween は以下のように使用できます。:" +#. Tag: para +#: query_hql.xml:641 +#, no-c-format +msgid "" +"in and between may be used as follows:" +msgstr "" +"inbetween は以下のように使用できま" +"す。:" -#: index.docbook:619 -msgid "JDBC-style positional parameters ?" -msgstr "" +#. Tag: programlisting +#: query_hql.xml:645 +#, no-c-format +msgid "" +msgstr "" -#: index.docbook:624 -msgid "named parameters :name, :start_date, :x1" -msgstr "" +#. Tag: programlisting +#: query_hql.xml:647 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:629 -msgid "SQL literals 'foo', 69, 6.66E+2, '1970-01-01 10:00:01.0'" +#. Tag: para +#: query_hql.xml:649 +#, no-c-format +msgid "and the negated forms may be written" msgstr "また、否定形で記述することもできます。" -#: index.docbook:635 -msgid "Java public static final constants eg.Color.TABBY" -msgstr "" - -#: index.docbook:641 -msgid "in and between may be used as follows:" -msgstr "" - -#: index.docbook:645 -msgid "" -msgstr "同様に is nullis not null はnull値をテストするために使用できます。" - -#: index.docbook:647 -msgid "" -msgstr "Hibernate設定ファイルでHQL query substitutionsを定義すれば、boolean値を式の中で簡単に使用できま。:" - -#: index.docbook:649 -msgid "and the negated forms may be written" -msgstr "true 1, false 0]]>" - -#: index.docbook:653 +#. Tag: programlisting +#: query_hql.xml:653 +#, no-c-format msgid "" -msgstr "こうすることで下記のHQLをSQLに変換するときに true , false キーワードは 1 , 0 に置き換えられます。:" +msgstr "" -#: index.docbook:655 -msgid "" -msgstr "" +#. Tag: programlisting +#: query_hql.xml:655 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:657 -msgid "Likewise, is null and is not null may be used to test for null values." -msgstr "特別なプロパティ size、または特別な関数 size() を使ってコレクションのサイズをテストできます。:" +#. Tag: para +#: query_hql.xml:657 +#, no-c-format +msgid "" +"Likewise, is null and is not null may " +"be used to test for null values." +msgstr "" +"同様に is nullis not null はnull値" +"をテストするために使用できます。" -#: index.docbook:662 -msgid "Booleans may be easily used in expressions by declaring HQL query substitutions in Hibernate configuration:" -msgstr " 0]]>" +#. Tag: para +#: query_hql.xml:662 +#, no-c-format +msgid "" +"Booleans may be easily used in expressions by declaring HQL query " +"substitutions in Hibernate configuration:" +msgstr "" +"Hibernate設定ファイルでHQL query substitutionsを定義すれば、boolean値を式の中" +"で簡単に使用できま。:" -#: index.docbook:667 -msgid "true 1, false 0]]>" -msgstr " 0]]>" +#. Tag: programlisting +#: query_hql.xml:667 +#, no-c-format +msgid "" +"true 1, false 0]]>" +msgstr "" -#: index.docbook:669 -msgid "This will replace the keywords true and false with the literals 1 and 0 in the translated SQL from this HQL:" -msgstr "インデックス付きのコレクションでは、minindexmaxindex 関数を使って、インデックスの最小値と最大値を参照できます。 同様に、minelementmaxelement を使って、 基本型のコレクション要素の最小値と最大値を参照できます。" +#. Tag: para +#: query_hql.xml:669 +#, no-c-format +msgid "" +"This will replace the keywords true and false with the literals 1 and 0 in " +"the translated SQL from this HQL:" +msgstr "" +"こうすることで下記のHQLをSQLに変換するときに true , " +"false キーワードは 1 , 0 に置き換えられます。:" -#: index.docbook:674 +#. Tag: programlisting +#: query_hql.xml:674 +#, no-c-format msgid "" -msgstr " current_date]]>" +msgstr "" -#: index.docbook:676 -msgid "You may test the size of a collection with the special property size, or the special size() function." -msgstr " 100]]>" +#. Tag: para +#: query_hql.xml:676 +#, no-c-format +msgid "" +"You may test the size of a collection with the special property " +"size, or the special size() function." +msgstr "" +"特別なプロパティ size、または特別な関数 size() を使ってコレクションのサイズをテストできます。:" -#: index.docbook:681 +#. Tag: programlisting +#: query_hql.xml:681 +#, no-c-format msgid " 0]]>" -msgstr " 10000]]>" +msgstr "" -#: index.docbook:683 +#. Tag: programlisting +#: query_hql.xml:683 +#, no-c-format msgid " 0]]>" -msgstr "コレクションの要素やインデックスのセット(elementsindices 関数)、または副問い合わせ(後述)の結果が受け取れるときは、 SQL関数 any, some, all, exists, in がサポートされます。" - -#: index.docbook:685 -msgid "For indexed collections, you may refer to the minimum and maximum indices using minindex and maxindex functions. Similarly, you may refer to the minimum and maximum elements of a collection of basic type using the minelement and maxelement functions." msgstr "" - "" -#: index.docbook:693 -msgid " current_date]]>" +#. Tag: para +#: query_hql.xml:685 +#, no-c-format +msgid "" +"For indexed collections, you may refer to the minimum and maximum indices " +"using minindex and maxindex functions. " +"Similarly, you may refer to the minimum and maximum elements of a collection " +"of basic type using the minelement and " +"maxelement functions." msgstr "" - "" +"インデックス付きのコレクションでは、minindex と " +"maxindex 関数を使って、インデックスの最小値と最大値を参照" +"できます。 同様に、minelementmaxelement を使って、 基本型のコレクション要素の最小値と最大値を参照できます。" -#: index.docbook:695 +#. Tag: programlisting +#: query_hql.xml:693 +#, no-c-format +msgid "" +" current_date]]>" +msgstr "" + +#. Tag: programlisting +#: query_hql.xml:695 +#, no-c-format msgid " 100]]>" -msgstr "" +msgstr "" -#: index.docbook:697 +#. Tag: programlisting +#: query_hql.xml:697 +#, no-c-format msgid " 10000]]>" -msgstr " all elements(p.scores)]]>" +msgstr "" -#: index.docbook:699 -msgid "The SQL functions any, some, all, exists, in are supported when passed the element or index set of a collection (elements and indices functions) or the result of a subquery (see below)." -msgstr "" - -#: index.docbook:705 +#. Tag: para +#: query_hql.xml:699 +#, no-c-format msgid "" - "" -msgstr "size, elements, indices, minindex, maxindex, minelement, maxelement はHibernate3のwhere節だけで利用可能であることに注意してください。" +"The SQL functions any, some, all, exists, in are " +"supported when passed the element or index set of a collection " +"(elements and indices functions) or " +"the result of a subquery (see below)." +msgstr "" +"コレクションの要素やインデックスのセット(elements と " +"indices 関数)、または副問い合わせ(後述)の結果が受け取れ" +"るときは、 SQL関数 any, some, all, exists, in がサポートさ" +"れます。" -#: index.docbook:707 +#. Tag: programlisting +#: query_hql.xml:705 +#, no-c-format msgid "" - "" -msgstr "インデックス付きのコレクション(arrays, lists, maps)の要素は、 インデックスで参照できます(where節内でのみ)。" +"" +msgstr "" -#: index.docbook:709 +#. Tag: programlisting +#: query_hql.xml:707 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: programlisting +#: query_hql.xml:709 +#, no-c-format msgid "" -msgstr "" +msgstr "" -#: index.docbook:711 +#. Tag: programlisting +#: query_hql.xml:711 +#, no-c-format msgid " all elements(p.scores)]]>" msgstr "" - "" -#: index.docbook:713 +#. Tag: programlisting +#: query_hql.xml:713 +#, no-c-format msgid "" msgstr "" - "" -#: index.docbook:715 -msgid "Note that these constructs - size, elements, indices, minindex, maxindex, minelement, maxelement - may only be used in the where clause in Hibernate3." +#. Tag: para +#: query_hql.xml:715 +#, no-c-format +msgid "" +"Note that these constructs - size, elements, indices, minindex, " +"maxindex, minelement, " +"maxelement - may only be used in the where clause in " +"Hibernate3." msgstr "" - "" +"size, elements, indices, minindex, maxindex, " +"minelement, maxelement はHibernate3の" +"where節だけで利用可能であることに注意してください。" -#: index.docbook:722 -msgid "Elements of indexed collections (arrays, lists, maps) may be referred to by index (in a where clause only):" -msgstr "[] 内部の式は、算術式でも構いません。" +#. Tag: para +#: query_hql.xml:722 +#, no-c-format +msgid "" +"Elements of indexed collections (arrays, lists, maps) may be referred to by " +"index (in a where clause only):" +msgstr "" +"インデックス付きのコレクション(arrays, lists, maps)の要素は、 インデックス" +"で参照できます(where節内でのみ)。" -#: index.docbook:727 +#. Tag: programlisting +#: query_hql.xml:727 +#, no-c-format msgid "" msgstr "" - "" -#: index.docbook:729 +#. Tag: programlisting +#: query_hql.xml:729 +#, no-c-format msgid "" - "" -msgstr "一対多関連や値のコレクションの要素に対しては、HQLは組み込みの index() 関数も用意しています。" - -#: index.docbook:731 -msgid "" - "" +"" msgstr "" - "" -#: index.docbook:733 +#. Tag: programlisting +#: query_hql.xml:731 +#, no-c-format msgid "" - "" -msgstr "ベースとなるデータベースがサポートしているスカラーSQL関数が使用できます" - -#: index.docbook:735 -msgid "The expression inside [] may even be an arithmetic expression." -msgstr "" - -#: index.docbook:739 -msgid "" - "" -msgstr "もしまだ全てを理解していないなら、下のクエリをSQLでどれだけ長く、読みづらく出来るか考えてください。:" - -#: index.docbook:741 -msgid "HQL also provides the built-in index() function, for elements of a one-to-many association or collection of values." +"" msgstr "" - "" -#: index.docbook:746 +#. Tag: programlisting +#: query_hql.xml:733 +#, no-c-format msgid "" - "" -msgstr "ヒント: 例えばこのように出来ます。" +"" +msgstr "" -#: index.docbook:748 +#. Tag: para +#: query_hql.xml:735 +#, no-c-format +msgid "" +"The expression inside [] may even be an arithmetic " +"expression." +msgstr "[] 内部の式は、算術式でも構いません。" + +#. Tag: programlisting +#: query_hql.xml:739 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:741 +#, no-c-format +msgid "" +"HQL also provides the built-in index() function, for " +"elements of a one-to-many association or collection of values." +msgstr "" +"一対多関連や値のコレクションの要素に対しては、HQLは組み込みの index" +"() 関数も用意しています。" + +#. Tag: programlisting +#: query_hql.xml:746 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:748 +#, no-c-format msgid "Scalar SQL functions supported by the underlying database may be used" msgstr "" - "" +"ベースとなるデータベースがサポートしているスカラーSQL関数が使用できます" -#: index.docbook:752 +#. Tag: programlisting +#: query_hql.xml:752 +#, no-c-format msgid "" +msgstr "" + +#. Tag: para +#: query_hql.xml:754 +#, no-c-format +msgid "" +"If you are not yet convinced by all this, think how much longer and less " +"readable the following query would be in SQL:" +msgstr "" +"もしまだ全てを理解していないなら、下のクエリをSQLでどれだけ長く、読みづらく出" +"来るか考えてください。:" + +#. Tag: programlisting +#: query_hql.xml:759 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:761 +#, no-c-format +msgid "Hint: something like" +msgstr "ヒント: 例えばこのように出来ます。" + +#. Tag: programlisting +#: query_hql.xml:765 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: query_hql.xml:770 +#, no-c-format +msgid "The order by clause" msgstr "order by節" -#: index.docbook:754 -msgid "If you are not yet convinced by all this, think how much longer and less readable the following query would be in SQL:" -msgstr "クエリが返すlistは、返されるクラスやコンポーネントの任意の属性によって並べ替えられます。:" - -#: index.docbook:759 +#. Tag: para +#: query_hql.xml:772 +#, no-c-format msgid "" - "" +"The list returned by a query may be ordered by any property of a returned " +"class or components:" msgstr "" - "" +"クエリが返すlistは、返されるクラスやコンポーネントの任意の属性によって並べ替" +"えられます。:" -#: index.docbook:761 -msgid "Hint: something like" -msgstr "オプションの ascdesc はそれぞれ昇順か降順の整列を示します。" - -#: index.docbook:765 +#. Tag: programlisting +#: query_hql.xml:776 +#, no-c-format msgid "" - "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:778 +#, no-c-format +msgid "" +"The optional asc or desc indicate " +"ascending or descending order respectively." +msgstr "" +"オプションの ascdesc はそれぞれ昇順" +"か降順の整列を示します。" + +#. Tag: title +#: query_hql.xml:785 +#, no-c-format +msgid "The group by clause" msgstr "group by節" -#: index.docbook:770 -msgid "The order by clause" -msgstr "集約値を返すクエリは、返されるクラスやコンポーネントの任意のプロパティによってグループ化できます。:" - -#: index.docbook:772 -msgid "The list returned by a query may be ordered by any property of a returned class or components:" -msgstr "" - "" - -#: index.docbook:776 +#. Tag: para +#: query_hql.xml:787 +#, no-c-format msgid "" - "" +"A query that returns aggregate values may be grouped by any property of a " +"returned class or components:" msgstr "" - "" +"集約値を返すクエリは、返されるクラスやコンポーネントの任意のプロパティによっ" +"てグループ化できます。:" -#: index.docbook:778 -msgid "The optional asc or desc indicate ascending or descending order respectively." +#. Tag: programlisting +#: query_hql.xml:791 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: programlisting +#: query_hql.xml:793 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:795 +#, no-c-format +msgid "A having clause is also allowed." msgstr "having 節も使えます。" -#: index.docbook:785 -msgid "The group by clause" -msgstr "" - "" - -#: index.docbook:787 -msgid "A query that returns aggregate values may be grouped by any property of a returned class or components:" -msgstr "もし使用するデータベースがサポートしているなら、 havingorder by 節でSQL関数と集約関数が使えます (例えばMySQLにはありません)。" - -#: index.docbook:791 +#. Tag: programlisting +#: query_hql.xml:799 +#, no-c-format msgid "" - "" +"" msgstr "" - " 100 \n" - "order by count(kitten) asc, sum(kitten.weight) desc]]>" -#: index.docbook:793 +#. Tag: para +#: query_hql.xml:801 +#, no-c-format msgid "" - "" -msgstr "group by 節や order by 節に 算術式を含むことができないことに注意してください。" +"SQL functions and aggregate functions are allowed in the having and order by clauses, if supported by the " +"underlying database (eg. not in MySQL)." +msgstr "" +"もし使用するデータベースがサポートしているなら、 having " +"と order by 節でSQL関数と集約関数が使えます (例えばMySQL" +"にはありません)。" -#: index.docbook:795 -msgid "A having clause is also allowed." +#. Tag: programlisting +#: query_hql.xml:807 +#, no-c-format +msgid "" +" 100\n" +"order by count(kitten) asc, sum(kitten.weight) desc]]>" +msgstr "" + +#. Tag: para +#: query_hql.xml:809 +#, no-c-format +msgid "" +"Note that neither the group by clause nor the " +"order by clause may contain arithmetic expressions. Also " +"note that Hibernate currently does not expand a grouped entity, so you can't " +"write group by cat if all properties of cat are non-aggregated. You have to list all non-aggregated properties " +"explicitly." +msgstr "" +"Note that neither the group by clause nor the " +"order by clause may contain arithmetic expressions. Also " +"note that Hibernate currently does not expand a grouped entity, so you can't " +"write group by cat if all properties of cat are non-aggregated. You have to list all non-aggregated properties " +"explicitly." + +#. Tag: title +#: query_hql.xml:821 +#, no-c-format +msgid "Subqueries" msgstr "副問い合わせ" -#: index.docbook:799 +#. Tag: para +#: query_hql.xml:823 +#, no-c-format msgid "" - "" -msgstr "サブセレクトをサポートするデータベースのため、Hibernateは副問い合わせをサポートしています。 副問い合わせは括弧で囲まなければなりません(SQLの集約関数呼び出しによる事が多いです)。 関連副問い合わせ(外部クエリ中の別名を参照する副問い合わせのこと)さえ許可されます。" - -#: index.docbook:801 -msgid "SQL functions and aggregate functions are allowed in the having and order by clauses, if supported by the underlying database (eg. not in MySQL)." +"For databases that support subselects, Hibernate supports subqueries within " +"queries. A subquery must be surrounded by parentheses (often by an SQL " +"aggregate function call). Even correlated subqueries (subqueries that refer " +"to an alias in the outer query) are allowed." msgstr "" - " ( \n" - " select avg(cat.weight) from DomesticCat cat \n" - ")]]>" +"サブセレクトをサポートするデータベースのため、Hibernateは副問い合わせをサポー" +"トしています。 副問い合わせは括弧で囲まなければなりません(SQLの集約関数呼び" +"出しによる事が多いです)。 関連副問い合わせ(外部クエリ中の別名を参照する副問" +"い合わせのこと)さえ許可されます。" -#: index.docbook:807 +#. Tag: programlisting +#: query_hql.xml:829 +#, no-c-format msgid "" - " 100\n" - "order by count(kitten) asc, sum(kitten.weight) desc]]>" +" (\n" +" select avg(cat.weight) from DomesticCat cat\n" +")]]>" msgstr "" - "" -#: index.docbook:809 -msgid "Note that neither the group by clause nor the order by clause may contain arithmetic expressions. Also note that Hibernate currently does not expand a grouped entity, so you can't write group by cat if all properties of cat are non-aggregated. You have to list all non-aggregated properties explicitly." +#. Tag: programlisting +#: query_hql.xml:831 +#, no-c-format +msgid "" +"" msgstr "" - "" -#: index.docbook:821 -msgid "Subqueries" +#. Tag: programlisting +#: query_hql.xml:833 +#, no-c-format +msgid "" +"" msgstr "" - "" -#: index.docbook:823 -msgid "For databases that support subselects, Hibernate supports subqueries within queries. A subquery must be surrounded by parentheses (often by an SQL aggregate function call). Even correlated subqueries (subqueries that refer to an alias in the outer query) are allowed." +#. Tag: programlisting +#: query_hql.xml:835 +#, no-c-format +msgid "" +"" msgstr "" - "" -#: index.docbook:829 +#. Tag: programlisting +#: query_hql.xml:837 +#, no-c-format msgid "" - " (\n" - " select avg(cat.weight) from DomesticCat cat\n" - ")]]>" -msgstr "HQL副問い合わせは、selectまたはwhere節だけで使われることに注意してください。" - -#: index.docbook:831 -msgid "" - "" -msgstr "selectリストに複数の式を持つ副問い合わせには、タプルを使うことができます。" - -#: index.docbook:833 -msgid "" - "" +"" msgstr "" - "" -#: index.docbook:835 -msgid "" - "" -msgstr "いくつかのデータベース(OracleやHSQLにはありません)では、 他のコンテキストでもタプルが使えます。 例えば、クエリコンポーネントや複合ユーザ型においてです。" - -#: index.docbook:837 -msgid "" - "" -msgstr "" - -#: index.docbook:839 +#. Tag: para +#: query_hql.xml:839 +#, no-c-format msgid "Note that HQL subqueries may occur only in the select or where clauses." -msgstr "同等ですが、より冗長なクエリです:" +msgstr "" +"HQL副問い合わせは、selectまたはwhere節だけで使われることに注意してください。" -#: index.docbook:843 -msgid "Note that subqueries can also utilize row value constructor syntax. See for more details." -msgstr "" +#. Tag: para +#: query_hql.xml:843 +#, no-c-format +msgid "" +"Note that subqueries can also utilize row value constructor syntax. See for more details." +msgstr "" +"Note that subqueries can also utilize row value constructor syntax. See for more details." -#: index.docbook:851 +#. Tag: title +#: query_hql.xml:851 +#, no-c-format msgid "HQL examples" -msgstr "このようなことをしたくないのには2つの理由があります: 1つ目は、データベースプラットフォーム間で完全な互換性はないからです。 2つ目は、クエリがマッピングドキュメントのプロパティの順序に依存するからです。" - -#: index.docbook:853 -msgid "Hibernate queries can be quite powerful and complex. In fact, the power of the query language is one of Hibernate's main selling points. Here are some example queries very similar to queries that I used on a recent project. Note that most queries you will write are much simpler than these!" msgstr "HQLの例" -#: index.docbook:859 -msgid "The following query returns the order id, number of items and total value of the order for all unpaid orders for a particular customer and given minimum total value, ordering the results by total value. In determining the prices, it uses the current catalog. The resulting SQL query, against the ORDER, ORDER_LINE, PRODUCT, CATALOG and PRICE tables has four inner joins and an (uncorrelated) subselect." -msgstr "Hibernateクエリは非常に強力で複雑にできます。実際、クエリ言語の威力はHibernateの主要なセールスポイントの一つです。 ここに最近のプロジェクトで使用したクエリと非常によく似た例があります。 ほとんどのクエリはこれらの例より簡単に記述できることに注意してください!" - -#: index.docbook:868 +#. Tag: para +#: query_hql.xml:853 +#, no-c-format msgid "" - "= all (\n" - " select cat.effectiveDate\n" - " from Catalog as cat\n" - " where cat.effectiveDate < sysdate\n" - " )\n" - "group by order\n" - "having sum(price.amount) > :minAmount\n" - "order by sum(price.amount) desc]]>" -msgstr "以下のクエリは特定の顧客と与えられた最小の合計値に対する未払い注文の注文ID、 商品の数、注文の合計を合計値で整列して返します。 価格を決定する際、現在のカタログを使います。結果として返されるSQLクエリは ORDER, ORDER_LINE, PRODUCT, CATALOG および PRICE テーブルに対し4つの内部結合と (関連しない)副問い合わせを持ちます。" - -#: index.docbook:870 -msgid "What a monster! Actually, in real life, I'm not very keen on subqueries, so my query was really more like this:" +"Hibernate queries can be quite powerful and complex. In fact, the power of " +"the query language is one of Hibernate's main selling points. Here are some " +"example queries very similar to queries that I used on a recent project. " +"Note that most queries you will write are much simpler than these!" msgstr "" - "= all ( \n" - " select cat.effectiveDate \n" - " from Catalog as cat \n" - " where cat.effectiveDate < sysdate \n" - " ) \n" - "group by order \n" - "having sum(price.amount) > :minAmount \n" - "order by sum(price.amount) desc]]>" +"Hibernateクエリは非常に強力で複雑にできます。実際、クエリ言語の威力は" +"Hibernateの主要なセールスポイントの一つです。 ここに最近のプロジェクトで使用" +"したクエリと非常によく似た例があります。 ほとんどのクエリはこれらの例より簡単" +"に記述できることに注意してください!" -#: index.docbook:875 +#. Tag: para +#: query_hql.xml:859 +#, no-c-format msgid "" - " :minAmount\n" - "order by sum(price.amount) desc]]>" -msgstr "何て巨大なクエリなのでしょう! 普段私は副問い合わせをあまり使いません。したがって私のクエリは実際には以下のようになります。:" - -#: index.docbook:877 -msgid "The next query counts the number of payments in each status, excluding all payments in the AWAITING_APPROVAL status where the most recent status change was made by the current user. It translates to an SQL query with two inner joins and a correlated subselect against the PAYMENT, PAYMENT_STATUS and PAYMENT_STATUS_CHANGE tables." +"The following query returns the order id, number of items and total value of " +"the order for all unpaid orders for a particular customer and given minimum " +"total value, ordering the results by total value. In determining the prices, " +"it uses the current catalog. The resulting SQL query, against the " +"ORDER, ORDER_LINE, PRODUCT, CATALOG and PRICE tables has " +"four inner joins and an (uncorrelated) subselect." msgstr "" - " :minAmount \n" - "order by sum(price.amount) desc]]>" +"以下のクエリは特定の顧客と与えられた最小の合計値に対する未払い注文の注文ID、 " +"商品の数、注文の合計を合計値で整列して返します。 価格を決定する際、現在のカタ" +"ログを使います。結果として返されるSQLクエリは ORDER, " +"ORDER_LINE, PRODUCT, CATALOG および PRICE テーブルに対し4つの内部結合と (関連" +"しない)副問い合わせを持ちます。" -#: index.docbook:885 +#. Tag: programlisting +#: query_hql.xml:868 +#, no-c-format msgid "" - " PaymentStatus.AWAITING_APPROVAL\n" - " or (\n" - " statusChange.timeStamp = (\n" - " select max(change.timeStamp)\n" - " from PaymentStatusChange change\n" - " where change.payment = payment\n" - " )\n" - " and statusChange.user <> :currentUser\n" - " )\n" - "group by status.name, status.sortOrder\n" - "order by status.sortOrder]]>" -msgstr "次のクエリは各ステータスの支払い数を数えます。ただしすべての支払いが現在の利用者による 最新のステータス変更である AWAITING_APPROVAL である場合を除きます。 このクエリは2つの内部結合と PAYMENT, PAYMENT_STATUS および PAYMENT_STATUS_CHANGE テーブルに対する関連副問い合わせを備えたSQLクエリに変換されます。" - -#: index.docbook:887 -msgid "If I would have mapped the statusChanges collection as a list, instead of a set, the query would have been much simpler to write." +"= all (\n" +" select cat.effectiveDate\n" +" from Catalog as cat\n" +" where cat.effectiveDate < sysdate\n" +" )\n" +"group by order\n" +"having sum(price.amount) > :minAmount\n" +"order by sum(price.amount) desc]]>" msgstr "" - " PaymentStatus.AWAITING_APPROVAL \n" - " or ( \n" - " statusChange.timeStamp = ( \n" - " select max(change.timeStamp) \n" - " from PaymentStatusChange change \n" - " where change.payment = payment \n" - " ) \n" - " and statusChange.user <> :currentUser \n" - " ) \n" - "group by status.name, status.sortOrder \n" - "order by status.sortOrder]]>" -#: index.docbook:892 +#. Tag: para +#: query_hql.xml:870 +#, no-c-format msgid "" - " PaymentStatus.AWAITING_APPROVAL\n" - " or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <> :currentUser\n" - "group by status.name, status.sortOrder\n" - "order by status.sortOrder]]>" -msgstr "もし私がsetの代わりにlistとして statusChanges コレクションを マッピングしたならば、はるかに簡単にクエリを記述できるでしょう。" - -#: index.docbook:894 -msgid "The next query uses the MS SQL Server isNull() function to return all the accounts and unpaid payments for the organization to which the current user belongs. It translates to an SQL query with three inner joins, an outer join and a subselect against the ACCOUNT, PAYMENT, PAYMENT_STATUS, ACCOUNT_TYPE, ORGANIZATION and ORG_USER tables." +"What a monster! Actually, in real life, I'm not very keen on subqueries, so " +"my query was really more like this:" msgstr "" - " PaymentStatus.AWAITING_APPROVAL \n" - " or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <> :currentUser \n" - "group by status.name, status.sortOrder \n" - "order by status.sortOrder]]>" +"何て巨大なクエリなのでしょう! 普段私は副問い合わせをあまり使いません。した" +"がって私のクエリは実際には以下のようになります。:" -#: index.docbook:903 +#. Tag: programlisting +#: query_hql.xml:875 +#, no-c-format msgid "" - "" -msgstr "次のクエリは現在のユーザが所属する組織に対するアカウントおよび未払いの支払いを すべて返すMS SQL Server の isNull() 関数を使用しています。 このクエリは3つの内部結合と1つの外部結合 、 そして ACCOUNT, PAYMENT, PAYMENT_STATUS, ACCOUNT_TYPE, ORGANIZATION および ORG_USER テーブルに対する副問い合わせ持ったSQLに変換されます。" - -#: index.docbook:905 -msgid "For some databases, we would need to do away with the (correlated) subselect." +" :minAmount\n" +"order by sum(price.amount) desc]]>" msgstr "" - "" -#: index.docbook:909 +#. Tag: para +#: query_hql.xml:877 +#, no-c-format msgid "" - "" -msgstr "いくつかのデータベースについては、(関連させられた)副問い合わせの使用を避ける必要があるでしょう。" +"The next query counts the number of payments in each status, excluding all " +"payments in the AWAITING_APPROVAL status where the most " +"recent status change was made by the current user. It translates to an SQL " +"query with two inner joins and a correlated subselect against the " +"PAYMENT, PAYMENT_STATUS and " +"PAYMENT_STATUS_CHANGE tables." +msgstr "" +"次のクエリは各ステータスの支払い数を数えます。ただしすべての支払いが現在の利" +"用者による 最新のステータス変更である AWAITING_APPROVAL で" +"ある場合を除きます。 このクエリは2つの内部結合と PAYMENT, " +"PAYMENT_STATUS および PAYMENT_STATUS_CHANGE テーブルに対する関連副問い合わせを備えたSQLクエリに変換されます。" -#: index.docbook:914 +#. Tag: programlisting +#: query_hql.xml:885 +#, no-c-format +msgid "" +" PaymentStatus.AWAITING_APPROVAL\n" +" or (\n" +" statusChange.timeStamp = (\n" +" select max(change.timeStamp)\n" +" from PaymentStatusChange change\n" +" where change.payment = payment\n" +" )\n" +" and statusChange.user <> :currentUser\n" +" )\n" +"group by status.name, status.sortOrder\n" +"order by status.sortOrder]]>" +msgstr "" + +#. Tag: para +#: query_hql.xml:887 +#, no-c-format +msgid "" +"If I would have mapped the statusChanges collection as a " +"list, instead of a set, the query would have been much simpler to write." +msgstr "" +"もし私がsetの代わりにlistとして statusChanges コレクション" +"を マッピングしたならば、はるかに簡単にクエリを記述できるでしょう。" + +#. Tag: programlisting +#: query_hql.xml:892 +#, no-c-format +msgid "" +" PaymentStatus.AWAITING_APPROVAL\n" +" or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <> :" +"currentUser\n" +"group by status.name, status.sortOrder\n" +"order by status.sortOrder]]>" +msgstr "" + +#. Tag: para +#: query_hql.xml:894 +#, no-c-format +msgid "" +"The next query uses the MS SQL Server isNull() function " +"to return all the accounts and unpaid payments for the organization to which " +"the current user belongs. It translates to an SQL query with three inner " +"joins, an outer join and a subselect against the ACCOUNT, " +"PAYMENT, PAYMENT_STATUS, " +"ACCOUNT_TYPE, ORGANIZATION and " +"ORG_USER tables." +msgstr "" +"次のクエリは現在のユーザが所属する組織に対するアカウントおよび未払いの支払い" +"を すべて返すMS SQL Server の isNull() 関数を使用していま" +"す。 このクエリは3つの内部結合と1つの外部結合 、 そして ACCOUNT, PAYMENT, PAYMENT_STATUS, " +"ACCOUNT_TYPE, ORGANIZATION および " +"ORG_USER テーブルに対する副問い合わせ持ったSQLに変換されま" +"す。" + +#. Tag: programlisting +#: query_hql.xml:903 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:905 +#, no-c-format +msgid "" +"For some databases, we would need to do away with the (correlated) subselect." +msgstr "" +"いくつかのデータベースについては、(関連させられた)副問い合わせの使用を避ける" +"必要があるでしょう。" + +#. Tag: programlisting +#: query_hql.xml:909 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: query_hql.xml:914 +#, no-c-format msgid "Bulk update and delete" -msgstr "" - "" - -#: index.docbook:916 -msgid "HQL now supports update, delete and insert ... select ... statements. See for details." msgstr "大量のUPDATEとDELETE" -#: index.docbook:924 -msgid "Tips & Tricks" -msgstr "HQLは今は updatedeleteinsert ... select ... ステートメントをHQLに入れることをサポートしています。 に詳細があります。" +#. Tag: para +#: query_hql.xml:916 +#, no-c-format +msgid "" +"HQL now supports update, delete and " +"insert ... select ... statements. See for details." +msgstr "" +"HQLは今は updatedelete、" +"insert ... select ... ステートメントをHQLに入れることをサ" +"ポートしています。 に詳細があります。" -#: index.docbook:926 -msgid "You can count the number of query results without actually returning them:" +#. Tag: title +#: query_hql.xml:924 +#, no-c-format +msgid "Tips & Tricks" msgstr "Tips & Tricks" -#: index.docbook:930 -msgid "" +#. Tag: para +#: query_hql.xml:926 +#, no-c-format +msgid "" +"You can count the number of query results without actually returning them:" msgstr "実際に結果を返さなくてもクエリの結果数を数えることができます。:" -#: index.docbook:932 +#. Tag: programlisting +#: query_hql.xml:930 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:932 +#, no-c-format msgid "To order a result by the size of a collection, use the following query:" -msgstr "" - -#: index.docbook:936 -msgid "" - "" -msgstr "コレクションのサイズにより結果を並べ替えるためには以下のクエリを使用します。:" - -#: index.docbook:938 -msgid "If your database supports subselects, you can place a condition upon selection size in the where clause of your query:" msgstr "" - "" +"コレクションのサイズにより結果を並べ替えるためには以下のクエリを使用します。:" -#: index.docbook:943 +#. Tag: programlisting +#: query_hql.xml:936 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:938 +#, no-c-format +msgid "" +"If your database supports subselects, you can place a condition upon " +"selection size in the where clause of your query:" +msgstr "" +"使用しているデータベースがサブセレクトをサポートする場合、クエリのwhere節でサ" +"イズによる選択条件を設定できます:" + +#. Tag: programlisting +#: query_hql.xml:943 +#, no-c-format msgid "= 1]]>" -msgstr "使用しているデータベースがサブセレクトをサポートする場合、クエリのwhere節でサイズによる選択条件を設定できます:" - -#: index.docbook:945 -msgid "If your database doesn't support subselects, use the following query:" -msgstr "= 1]]>" - -#: index.docbook:949 -msgid "" - "= 1]]>" -msgstr "使用しているデータベースがサブセレクトをサポートしない場合は、次のクエリを使用してください:" - -#: index.docbook:951 -msgid "As this solution can't return a User with zero messages because of the inner join, the following form is also useful:" msgstr "" - "= 1]]>" -#: index.docbook:956 +#. Tag: para +#: query_hql.xml:945 +#, no-c-format +msgid "If your database doesn't support subselects, use the following query:" +msgstr "" +"使用しているデータベースがサブセレクトをサポートしない場合は、次のクエリを使" +"用してください:" + +#. Tag: programlisting +#: query_hql.xml:949 +#, no-c-format msgid "" - "" -msgstr "内部結合をしているせいで上の解決法がmessageの件数が ゼロの User を返すことができないならば、以下の形式が使えます。" +"= 1]]>" +msgstr "" -#: index.docbook:958 +#. Tag: para +#: query_hql.xml:951 +#, no-c-format +msgid "" +"As this solution can't return a User with zero messages " +"because of the inner join, the following form is also useful:" +msgstr "" +"内部結合をしているせいで上の解決法がmessageの件数が ゼロの User を返すことができないならば、以下の形式が使えます。" + +#. Tag: programlisting +#: query_hql.xml:956 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:958 +#, no-c-format msgid "Properties of a JavaBean can be bound to named query parameters:" msgstr "" - "" +"JavaBeanのプロパティは、名前付きのクエリパラメータに結びつけることが出来ま" +"す。:" -#: index.docbook:962 +#. Tag: programlisting +#: query_hql.xml:962 +#, no-c-format msgid "" - "" -msgstr "JavaBeanのプロパティは、名前付きのクエリパラメータに結びつけることが出来ます。:" - -#: index.docbook:964 -msgid "Collections are pageable by using the Query interface with a filter:" +"" msgstr "" - "" -#: index.docbook:968 +#. Tag: para +#: query_hql.xml:964 +#, no-c-format msgid "" - "" -msgstr "コレクションはフィルタ付き Query インターフェイスを使用することでページをつけることができます。:" +"Collections are pageable by using the Query interface " +"with a filter:" +msgstr "" +"コレクションはフィルタ付き Query インターフェイスを使用す" +"ることでページをつけることができます。:" -#: index.docbook:970 +#. Tag: programlisting +#: query_hql.xml:968 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_hql.xml:970 +#, no-c-format msgid "Collection elements may be ordered or grouped using a query filter:" msgstr "" - "" +"コレクションの要素はクエリフィルタを使って、並べ替えやグループ分けが出来ま" +"す。:" -#: index.docbook:974 +#. Tag: programlisting +#: query_hql.xml:974 +#, no-c-format msgid "" - "" -msgstr "コレクションの要素はクエリフィルタを使って、並べ替えやグループ分けが出来ます。:" - -#: index.docbook:976 -msgid "You can find the size of a collection without initializing it:" +"" msgstr "" - "" -#: index.docbook:980 -msgid "" +#. Tag: para +#: query_hql.xml:976 +#, no-c-format +msgid "You can find the size of a collection without initializing it:" msgstr "コレクションを初期化せずにコレクションのサイズを得ることができます。:" -#: index.docbook:985 -msgid "Components" -msgstr "" - -#: index.docbook:987 -msgid "Components might be used in just about every way that simple value types can be used in HQL queries. They can appear in the select clause:" +#. Tag: programlisting +#: query_hql.xml:980 +#, no-c-format +msgid "" +"" msgstr "" -#: index.docbook:992, index.docbook:1038 +#. Tag: title +#: query_hql.xml:985 +#, no-c-format +msgid "Components" +msgstr "translator-credits" + +#. Tag: para +#: query_hql.xml:987 +#, no-c-format +msgid "" +"Components might be used in just about every way that simple value types can " +"be used in HQL queries. They can appear in the select " +"clause:" +msgstr "" + +#. Tag: programlisting +#: query_hql.xml:992 query_hql.xml:1038 +#, no-c-format msgid "" msgstr "" -#: index.docbook:993 +#. Tag: programlisting +#: query_hql.xml:993 +#, no-c-format msgid "" msgstr "" -#: index.docbook:995 -msgid "where the Person's name property is a component. Components can also be used in the where clause:" +#. Tag: para +#: query_hql.xml:995 +#, no-c-format +msgid "" +"where the Person's name property is a component. Components can also be used " +"in the where clause:" msgstr "" -#: index.docbook:1000 +#. Tag: programlisting +#: query_hql.xml:1000 +#, no-c-format msgid "" msgstr "" -#: index.docbook:1001 +#. Tag: programlisting +#: query_hql.xml:1001 +#, no-c-format msgid "" msgstr "" -#: index.docbook:1003 +#. Tag: para +#: query_hql.xml:1003 +#, no-c-format msgid "Components can also be used in the order by clause:" msgstr "" -#: index.docbook:1007 +#. Tag: programlisting +#: query_hql.xml:1007 +#, no-c-format msgid "" msgstr "" -#: index.docbook:1008 +#. Tag: programlisting +#: query_hql.xml:1008 +#, no-c-format msgid "" msgstr "" -#: index.docbook:1010 -msgid "Another common use of components is in row value constructors." +#. Tag: para +#: query_hql.xml:1010 +#, no-c-format +msgid "" +"Another common use of components is in row " +"value constructors." msgstr "" -#: index.docbook:1016 +#. Tag: title +#: query_hql.xml:1016 +#, no-c-format msgid "Row value constructor syntax" msgstr "" -#: index.docbook:1018 -msgid "HQL supports the use of ANSI SQL row value constructor syntax (sometimes called tuple syntax), even though the underlying database may not support that notion. Here we are generally referring to multi-valued comparisons, typically associated with components. Consider an entity Person which defines a name component:" +#. Tag: para +#: query_hql.xml:1018 +#, no-c-format +msgid "" +"HQL supports the use of ANSI SQL row value constructor " +"syntax (sometimes called tuple syntax), even though the " +"underlying database may not support that notion. Here we are generally " +"referring to multi-valued comparisons, typically associated with components. " +"Consider an entity Person which defines a name component:" msgstr "" -#: index.docbook:1025 -msgid "" +#. Tag: programlisting +#: query_hql.xml:1025 +#, no-c-format +msgid "" +"" msgstr "" -#: index.docbook:1027 -msgid "That's valid syntax, although a little verbose. It be nice to make this a bit more concise and use row value constructor syntax:" +#. Tag: para +#: query_hql.xml:1027 +#, no-c-format +msgid "" +"That's valid syntax, although a little verbose. It be nice to make this a " +"bit more concise and use row value constructor syntax:" msgstr "" -#: index.docbook:1032 +#. Tag: programlisting +#: query_hql.xml:1032 +#, no-c-format msgid "" msgstr "" -#: index.docbook:1034 -msgid "It can also be useful to specify this in the select clause:" -msgstr "" - -#: index.docbook:1040 -msgid "Another time using row value constructor syntax can be beneficial is when using subqueries needing to compare against multiple values:" -msgstr "" - -#: index.docbook:1045 +#. Tag: para +#: query_hql.xml:1034 +#, no-c-format msgid "" - "" +"It can also be useful to specify this in the select " +"clause:" msgstr "" -#: index.docbook:1047 -msgid "One thing to consider when deciding if you want to use this syntax is that the query will be dependent upon the ordering of the component sub-properties in the metadata." +#. Tag: para +#: query_hql.xml:1040 +#, no-c-format +msgid "" +"Another time using row value constructor syntax can be " +"beneficial is when using subqueries needing to compare against multiple " +"values:" msgstr "" -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#. Tag: programlisting +#: query_hql.xml:1045 +#, no-c-format +msgid "" +"" +msgstr "" +#. Tag: para +#: query_hql.xml:1047 +#, no-c-format +msgid "" +"One thing to consider when deciding if you want to use this syntax is that " +"the query will be dependent upon the ordering of the component sub-" +"properties in the metadata." +msgstr "" diff --git a/documentation/manual/translations/ja-JP/content/query_sql.po b/documentation/manual/translations/ja-JP/content/query_sql.po index 1e7d0a5c2a..ec75aebf79 100644 --- a/documentation/manual/translations/ja-JP/content/query_sql.po +++ b/documentation/manual/translations/ja-JP/content/query_sql.po @@ -1,1044 +1,1470 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: query_sql.xml:5 +#, no-c-format msgid "Native SQL" msgstr "ネイティブSQL" -#: index.docbook:7 -msgid "You may also express queries in the native SQL dialect of your database. This is useful if you want to utilize database specific features such as query hints or the CONNECT keyword in Oracle. It also provides a clean migration path from a direct SQL/JDBC based application to Hibernate." -msgstr "データベースのネイティブSQL方言を使ってクエリを表現することもできます。 クエリヒントやOracleの CONNECT キーワードのように、 データベース独自の機能を利用したいときに使えます。 SQL/JDBCを直接使用しているアプリケーションからHibernateへの移行も容易にしています。" +#. Tag: para +#: query_sql.xml:7 +#, no-c-format +msgid "" +"You may also express queries in the native SQL dialect of your database. " +"This is useful if you want to utilize database specific features such as " +"query hints or the CONNECT keyword in Oracle. It also " +"provides a clean migration path from a direct SQL/JDBC based application to " +"Hibernate." +msgstr "" +"データベースのネイティブSQL方言を使ってクエリを表現することもできます。 クエ" +"リヒントやOracleの CONNECT キーワードのように、 データベー" +"ス独自の機能を利用したいときに使えます。 SQL/JDBCを直接使用しているアプリケー" +"ションからHibernateへの移行も容易にしています。" -#: index.docbook:13 -msgid "Hibernate3 allows you to specify handwritten SQL (including stored procedures) for all create, update, delete, and load operations." -msgstr "Hibernate3では、生成、更新、削除、読み込み処理のようなすべての SQL(ストアドプロシージャを含む)を手書きできます。" +#. Tag: para +#: query_sql.xml:13 +#, no-c-format +msgid "" +"Hibernate3 allows you to specify handwritten SQL (including stored " +"procedures) for all create, update, delete, and load operations." +msgstr "" +"Hibernate3では、生成、更新、削除、読み込み処理のようなすべての SQL(ストアド" +"プロシージャを含む)を手書きできます。" -#: index.docbook:17 +#. Tag: title +#: query_sql.xml:17 +#, no-c-format msgid "Using a SQLQuery" msgstr "SQLQuery の使用" -#: index.docbook:19 -msgid "Execution of native SQL queries is controlled via the SQLQuery interface, which is obtained by calling Session.createSQLQuery(). The following describes how to use this API for querying." -msgstr "ネイティブなSQLクエリの実行は SQLQuery インターフェイスを通して制御します。 SQLQuery インターフェイスは Session.createSQLQuery() を呼び出して取得します。 このAPIを使って問い合わせする方法を以下で説明します。" +#. Tag: para +#: query_sql.xml:19 +#, no-c-format +msgid "" +"Execution of native SQL queries is controlled via the SQLQuery interface, which is obtained by calling Session." +"createSQLQuery(). The following describes how to use this API for " +"querying." +msgstr "" +"ネイティブなSQLクエリの実行は SQLQuery インターフェイスを" +"通して制御します。 SQLQuery インターフェイスは " +"Session.createSQLQuery() を呼び出して取得します。 このAPI" +"を使って問い合わせする方法を以下で説明します。" -#: index.docbook:25 +#. Tag: title +#: query_sql.xml:25 +#, no-c-format msgid "Scalar queries" msgstr "スカラーのクエリ" -#: index.docbook:27 +#. Tag: para +#: query_sql.xml:27 +#, no-c-format msgid "The most basic SQL query is to get a list of scalars (values)." msgstr "最も基本的なSQLクエリはスカラー(値)のリストを得ることです。" -#: index.docbook:30 +#. Tag: programlisting +#: query_sql.xml:30 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:32 -msgid "These will both return a List of Object arrays (Object[]) with scalar values for each column in the CATS table. Hibernate will use ResultSetMetadata to deduce the actual order and types of the returned scalar values." -msgstr "これらはどちらも、CATSテーブルの各カラムのスカラー値を含む Object配列(Object[])のリストを返します。 返すスカラー値の実際の順番と型を推定するために、 HibernateはResultSetMetadataを使用します。" - -#: index.docbook:37 -msgid "To avoid the overhead of using ResultSetMetadata or simply to be more explicit in what is returned one can use addScalar()." -msgstr "ResultSetMetadata を使用するオーバーヘッドを避けるため、 もしくは単に何が返されるか明確にするため、addScalar() を使えます。" - -#: index.docbook:41 +#. Tag: para +#: query_sql.xml:32 +#, no-c-format msgid "" - "" +"These will both return a List of Object arrays (Object[]) with scalar values " +"for each column in the CATS table. Hibernate will use ResultSetMetadata to " +"deduce the actual order and types of the returned scalar values." msgstr "" - "" +"これらはどちらも、CATSテーブルの各カラムのスカラー値を含む Object配列(Object" +"[])のリストを返します。 返すスカラー値の実際の順番と型を推定するために、 " +"HibernateはResultSetMetadataを使用します。" -#: index.docbook:43, index.docbook:89, index.docbook:170, index.docbook:321 +#. Tag: para +#: query_sql.xml:37 +#, no-c-format +msgid "" +"To avoid the overhead of using ResultSetMetadata or " +"simply to be more explicit in what is returned one can use addScalar" +"()." +msgstr "" +"ResultSetMetadata を使用するオーバーヘッドを避けるため、 " +"もしくは単に何が返されるか明確にするため、addScalar() を使" +"えます。" + +#. Tag: programlisting +#: query_sql.xml:41 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_sql.xml:43 query_sql.xml:89 query_sql.xml:170 query_sql.xml:321 +#, no-c-format msgid "This query specified:" msgstr "このクエリで指定されているものを下記に示します。" -#: index.docbook:47, index.docbook:93, index.docbook:325 +#. Tag: para +#: query_sql.xml:47 query_sql.xml:93 query_sql.xml:325 +#, no-c-format msgid "the SQL query string" msgstr "SQLクエリ文字列" -#: index.docbook:51 +#. Tag: para +#: query_sql.xml:51 +#, no-c-format msgid "the columns and types to return" msgstr "返されるカラムと型" -#: index.docbook:55 -msgid "This will still return Object arrays, but now it will not use ResultSetMetdata but will instead explicitly get the ID, NAME and BIRTHDATE column as respectively a Long, String and a Short from the underlying resultset. This also means that only these three columns will be returned, even though the query is using * and could return more than the three listed columns." -msgstr "これはまだObject配列を返しますが、 ResultSetMetdata を使用しません。 ただし、その代わりに基礎にあるリザルトセットから ID、NAME、BIRTHDATE カラムをそれぞれ Long、String、Short として明示的に取得します。 これは3つのカラムを返すのみであることも意味します。 たとえ、クエリが * を使用し、 列挙した3つより多くのカラムを返せるとしてもです。" +#. Tag: para +#: query_sql.xml:55 +#, no-c-format +msgid "" +"This will still return Object arrays, but now it will not use " +"ResultSetMetdata but will instead explicitly get the ID, " +"NAME and BIRTHDATE column as respectively a Long, String and a Short from " +"the underlying resultset. This also means that only these three columns will " +"be returned, even though the query is using * and could " +"return more than the three listed columns." +msgstr "" +"これはまだObject配列を返しますが、 ResultSetMetdata を使用" +"しません。 ただし、その代わりに基礎にあるリザルトセットから ID、NAME、" +"BIRTHDATE カラムをそれぞれ Long、String、Short として明示的に取得します。 こ" +"れは3つのカラムを返すのみであることも意味します。 たとえ、クエリが " +"* を使用し、 列挙した3つより多くのカラムを返せるとしても" +"です。" -#: index.docbook:63 -msgid "It is possible to leave out the type information for all or some of the scalars." +#. Tag: para +#: query_sql.xml:63 +#, no-c-format +msgid "" +"It is possible to leave out the type information for all or some of the " +"scalars." msgstr "スカラーの型情報を省くこともできます。" -#: index.docbook:66 +#. Tag: programlisting +#: query_sql.xml:66 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:68 -msgid "This is essentially the same query as before, but now ResultSetMetaData is used to decide the type of NAME and BIRTHDATE where as the type of ID is explicitly specified." -msgstr "これは本質的に前と同じクエリですが、、 NAME と BIRTHDATE の型を決めるために ResultSetMetaData を使用します。一方、ID の型は明示的に指定されています。" +#. Tag: para +#: query_sql.xml:68 +#, no-c-format +msgid "" +"This is essentially the same query as before, but now " +"ResultSetMetaData is used to decide the type of NAME and " +"BIRTHDATE where as the type of ID is explicitly specified." +msgstr "" +"これは本質的に前と同じクエリですが、、 NAME と BIRTHDATE の型を決めるために " +"ResultSetMetaData を使用します。一方、ID の型は明示的に指" +"定されています。" -#: index.docbook:72 -msgid "How the java.sql.Types returned from ResultSetMetaData is mapped to Hibernate types is controlled by the Dialect. If a specific type is not mapped or does not result in the expected type it is possible to customize it via calls to registerHibernateType in the Dialect." -msgstr "ResultSetMetaData から返される java.sql.Types を Hibernate の型に マッピングすることは、Dialect が制御します。 明示された型がマッピングされていないか、結果の型が期待したものと異なる場合、 Dialect の registerHibernateType を呼び出し、 カスタマイズできます。" +#. Tag: para +#: query_sql.xml:72 +#, no-c-format +msgid "" +"How the java.sql.Types returned from ResultSetMetaData is mapped to " +"Hibernate types is controlled by the Dialect. If a specific type is not " +"mapped or does not result in the expected type it is possible to customize " +"it via calls to registerHibernateType in the Dialect." +msgstr "" +"ResultSetMetaData から返される java.sql.Types を Hibernate の型に マッピング" +"することは、Dialect が制御します。 明示された型がマッピングされていないか、結" +"果の型が期待したものと異なる場合、 Dialect の " +"registerHibernateType を呼び出し、 カスタマイズできます。" -#: index.docbook:80 +#. Tag: title +#: query_sql.xml:80 +#, no-c-format msgid "Entity queries" msgstr "エンティティのクエリ" -#: index.docbook:82 -msgid "The above queries were all about returning scalar values, basically returning the \"raw\" values from the resultset. The following shows how to get entity objects from a native sql query via addEntity()." -msgstr "ここまでのクエリは、すべてスカラー値を返すものでした。 基本的に、リザルトセットから「未加工」の値を返します。 以降では、addEntity() により、ネイティブSQLクエリから エンティティオブジェクトを取得する方法を示します。" - -#: index.docbook:87 +#. Tag: para +#: query_sql.xml:82 +#, no-c-format msgid "" - "" +"The above queries were all about returning scalar values, basically " +"returning the \"raw\" values from the resultset. The following shows how to " +"get entity objects from a native sql query via addEntity()." msgstr "" - "" +"ここまでのクエリは、すべてスカラー値を返すものでした。 基本的に、リザルトセッ" +"トから「未加工」の値を返します。 以降では、addEntity() に" +"より、ネイティブSQLクエリから エンティティオブジェクトを取得する方法を示しま" +"す。" -#: index.docbook:97 +#. Tag: programlisting +#: query_sql.xml:87 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_sql.xml:97 +#, no-c-format msgid "the entity returned by the query" msgstr "クエリが返すエンティティとSQLテーブルの別名" -#: index.docbook:101 -msgid "Assuming that Cat is mapped as a class with the columns ID, NAME and BIRTHDATE the above queries will both return a List where each element is a Cat entity." -msgstr "CatがID, NAME, BIRTHDATEのカラムを使ってクラスにマッピングされる場合、 上記のクエリはどちらも、要素がCatエンティティであるリストを返します。" - -#: index.docbook:105 -msgid "If the entity is mapped with a many-to-one to another entity it is required to also return this when performing the native query, otherwise a database specific \"column not found\" error will occur. The additional columns will automatically be returned when using the * notation, but we prefer to be explicit as in the following example for a many-to-one to a Dog:" -msgstr "エンティティを別のエンティティに 多対一 でマッピングしている場合は、 ネイティブクエリを実行する際に、この別のエンティティを返すことも要求します。 さもなければ、データベース固有の「column not found(カラムが見つかりません)」エラーが発生します。 * 表記を使用した際は、追加のカラムが自動的に返されますが、 次の例のように、Dog多対一 であることを 明示することを私たちは好みます。" - -#: index.docbook:113 +#. Tag: para +#: query_sql.xml:101 +#, no-c-format msgid "" - "" +"Assuming that Cat is mapped as a class with the columns ID, NAME and " +"BIRTHDATE the above queries will both return a List where each element is a " +"Cat entity." msgstr "" - "" +"CatがID, NAME, BIRTHDATEのカラムを使ってクラスにマッピングされる場合、 上記の" +"クエリはどちらも、要素がCatエンティティであるリストを返します。" -#: index.docbook:115 +#. Tag: para +#: query_sql.xml:105 +#, no-c-format +msgid "" +"If the entity is mapped with a many-to-one to another " +"entity it is required to also return this when performing the native query, " +"otherwise a database specific \"column not found\" error will occur. The " +"additional columns will automatically be returned when using the * notation, " +"but we prefer to be explicit as in the following example for a many-" +"to-one to a Dog:" +msgstr "" +"エンティティを別のエンティティに 多対一 でマッピングしてい" +"る場合は、 ネイティブクエリを実行する際に、この別のエンティティを返すことも要" +"求します。 さもなければ、データベース固有の「column not found(カラムが見つか" +"りません)」エラーが発生します。 * 表記を使用した際は、追加のカラムが自動的に" +"返されますが、 次の例のように、Dog多対一 であることを 明示することを私たちは好みます。" + +#. Tag: programlisting +#: query_sql.xml:113 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_sql.xml:115 +#, no-c-format msgid "This will allow cat.getDog() to function properly." msgstr "これにより cat.getDog() が正しく機能します。" -#: index.docbook:119 +#. Tag: title +#: query_sql.xml:119 +#, no-c-format msgid "Handling associations and collections" msgstr "関連とコレクションの操作" -#: index.docbook:121 -msgid "It is possible to eagerly join in the Dog to avoid the possible extra roundtrip for initializing the proxy. This is done via the addJoin() method, which allows you to join in an association or collection." -msgstr "プロキシを初期化するための余分な処理を避けるため、 Dog の中で即時結合できます。 これは addJoin() メソッドにより行います。 関連もしくはコレクションに結合できます。" - -#: index.docbook:126 +#. Tag: para +#: query_sql.xml:121 +#, no-c-format msgid "" - "" +"It is possible to eagerly join in the Dog to avoid the " +"possible extra roundtrip for initializing the proxy. This is done via the " +"addJoin() method, which allows you to join in an " +"association or collection." msgstr "" - "" +"プロキシを初期化するための余分な処理を避けるため、 Dog の" +"中で即時結合できます。 これは addJoin() メソッドにより行い" +"ます。 関連もしくはコレクションに結合できます。" -#: index.docbook:128 -msgid "In this example the returned Cat's will have their dog property fully initialized without any extra roundtrip to the database. Notice that we added a alias name (\"cat\") to be able to specify the target property path of the join. It is possible to do the same eager joining for collections, e.g. if the Cat had a one-to-many to Dog instead." -msgstr "この例の中で、返される Cat は、 データベースへの余分処理なしで、 完全に初期化された dog プロパティを持ちます。 結合対象のプロパティへのパスを指定できるように、 別名(「cat」)を追加したことに注意してください。 コレクションの即時結合も同じようにできます。 たとえば、Cat が一対多で Dog を持っていた場合、次のようになります。" - -#: index.docbook:136 +#. Tag: programlisting +#: query_sql.xml:126 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:138 -msgid "At this stage we are reaching the limits of what is possible with native queries without starting to enhance the sql queries to make them usable in Hibernate; the problems starts to arise when returning multiple entities of the same type or when the default alias/column names are not enough." -msgstr "現在のところ、 Hibernateで使いやすくするためのSQLクエリの拡張なしに、 ネイティブクエリで何かを可能にする限界に来ています。 同じ型のエンティティを複数返す際や、デフォルトの別名や列名で十分ではない場合に、 問題は起こり始めます。" +#. Tag: para +#: query_sql.xml:128 +#, no-c-format +msgid "" +"In this example the returned Cat's will have their " +"dog property fully initialized without any extra " +"roundtrip to the database. Notice that we added a alias name (\"cat\") to be " +"able to specify the target property path of the join. It is possible to do " +"the same eager joining for collections, e.g. if the Cat " +"had a one-to-many to Dog instead." +msgstr "" +"この例の中で、返される Cat は、 データベースへの余分処理な" +"しで、 完全に初期化された dog プロパティを持ちます。 結合" +"対象のプロパティへのパスを指定できるように、 別名(「cat」)を追加したことに" +"注意してください。 コレクションの即時結合も同じようにできます。 たとえば、" +"Cat が一対多で Dog を持っていた場合、次" +"のようになります。" -#: index.docbook:146 +#. Tag: programlisting +#: query_sql.xml:136 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_sql.xml:138 +#, no-c-format +msgid "" +"At this stage we are reaching the limits of what is possible with native " +"queries without starting to enhance the sql queries to make them usable in " +"Hibernate; the problems starts to arise when returning multiple entities of " +"the same type or when the default alias/column names are not enough." +msgstr "" +"現在のところ、 Hibernateで使いやすくするためのSQLクエリの拡張なしに、 ネイ" +"ティブクエリで何かを可能にする限界に来ています。 同じ型のエンティティを複数返" +"す際や、デフォルトの別名や列名で十分ではない場合に、 問題は起こり始めます。" + +#. Tag: title +#: query_sql.xml:146 +#, no-c-format msgid "Returning multiple entities" msgstr "複数エンティティの取得" -#: index.docbook:148 -msgid "Until now the result set column names are assumed to be the same as the column names specified in the mapping document. This can be problematic for SQL queries which join multiple tables, since the same column names may appear in more than one table." -msgstr "ここまでは、リザルトセットのカラム名は、 マッピングファイルで指定されたカラム名と同じであると仮定していました。 複数のテーブルが同じカラム名を持つ場合があるため、 複数テーブルを結合するSQLクエリで問題となる場合があります。" - -#: index.docbook:153 -msgid "Column alias injection is needed in the following query (which most likely will fail):" -msgstr "下記のような(失敗しそうな)クエリでは、 カラム別名インジェクション(column alias injection)が必要です。" - -#: index.docbook:156 +#. Tag: para +#: query_sql.xml:148 +#, no-c-format msgid "" - "" +"Until now the result set column names are assumed to be the same as the " +"column names specified in the mapping document. This can be problematic for " +"SQL queries which join multiple tables, since the same column names may " +"appear in more than one table." msgstr "" - "" +"ここまでは、リザルトセットのカラム名は、 マッピングファイルで指定されたカラム" +"名と同じであると仮定していました。 複数のテーブルが同じカラム名を持つ場合があ" +"るため、 複数テーブルを結合するSQLクエリで問題となる場合があります。" -#: index.docbook:158 -msgid "The intention for this query is to return two Cat instances per row, a cat and its mother. This will fail since there is a conflict of names since they are mapped to the same column names and on some databases the returned column aliases will most likely be on the form \"c.ID\", \"c.NAME\", etc. which are not equal to the columns specificed in the mappings (\"ID\" and \"NAME\")." -msgstr "このクエリの意図は、 1行ごとに2つのCatインスタンス、つまり猫とその母親を返すということです。 同じカラム名にマッピングすることにより名前が衝突するため、このクエリは失敗します。 ベータベースによっては、返されるカラムの別名が \"c.ID\"、\"c.NAME\" などの形式であり、 マッピングで指定されたカラム(\"ID\" と \"NAME\")と等しくないため、失敗します。" +#. Tag: para +#: query_sql.xml:153 +#, no-c-format +msgid "" +"Column alias injection is needed in the following query (which most likely " +"will fail):" +msgstr "" +"下記のような(失敗しそうな)クエリでは、 カラム別名インジェクション(column " +"alias injection)が必要です。" -#: index.docbook:165 +#. Tag: programlisting +#: query_sql.xml:156 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_sql.xml:158 +#, no-c-format +msgid "" +"The intention for this query is to return two Cat instances per row, a cat " +"and its mother. This will fail since there is a conflict of names since they " +"are mapped to the same column names and on some databases the returned " +"column aliases will most likely be on the form \"c.ID\", \"c.NAME\", etc. " +"which are not equal to the columns specificed in the mappings (\"ID\" and " +"\"NAME\")." +msgstr "" +"このクエリの意図は、 1行ごとに2つのCatインスタンス、つまり猫とその母親を返" +"すということです。 同じカラム名にマッピングすることにより名前が衝突するため、" +"このクエリは失敗します。 ベータベースによっては、返されるカラムの別名が \"c." +"ID\"、\"c.NAME\" などの形式であり、 マッピングで指定されたカラム(\"ID\" と " +"\"NAME\")と等しくないため、失敗します。" + +#. Tag: para +#: query_sql.xml:165 +#, no-c-format msgid "The following form is not vulnerable to column name duplication:" msgstr "下記の形式は、カラム名が重複しても大丈夫です。" -#: index.docbook:168 +#. Tag: programlisting +#: query_sql.xml:168 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:174 -msgid "the SQL query string, with placeholders for Hibernate to inject column aliases" -msgstr "SQLクエリ文字列 (Hibernateがカラムの別名を挿入するためのプレースホルダを含む)" +#. Tag: para +#: query_sql.xml:174 +#, no-c-format +msgid "" +"the SQL query string, with placeholders for Hibernate to inject column " +"aliases" +msgstr "" +"SQLクエリ文字列 (Hibernateがカラムの別名を挿入するためのプレースホルダを含" +"む)" -#: index.docbook:179 +#. Tag: para +#: query_sql.xml:179 +#, no-c-format msgid "the entities returned by the query" msgstr "クエリによって返されるエンティティ" -#: index.docbook:183 -msgid "The {cat.*} and {mother.*} notation used above is a shorthand for \"all properties\". Alternatively, you may list the columns explicity, but even in this case we let Hibernate inject the SQL column aliases for each property. The placeholder for a column alias is just the property name qualified by the table alias. In the following example, we retrieve Cats and their mothers from a different table (cat_log) to the one declared in the mapping metadata. Notice that we may even use the property aliases in the where clause if we like." -msgstr "上記で使用している {cat.*} と {mother.*} という表記は、 「すべてのプロパティ」を表す省略形です。 代わりに、明示的にカラムを列挙してもよいですが、 その場合は、Hibernateに各プロパティに対応するSQLカラムの別名を挿入させるべきでしょう。 カラムの別名のためのプレースホルダは、テーブルの別名によって修飾されたプロパティ名です。 下記の例では、別のテーブル cat_log から マッピングメタデータで定義された Cat とその母親を復元します。 もし好むなら、where節の中でも、プロパティの別名を使えます。" - -#: index.docbook:192 +#. Tag: para +#: query_sql.xml:183 +#, no-c-format msgid "" - "" +"The {cat.*} and {mother.*} notation used above is a shorthand for \"all " +"properties\". Alternatively, you may list the columns explicity, but even in " +"this case we let Hibernate inject the SQL column aliases for each property. " +"The placeholder for a column alias is just the property name qualified by " +"the table alias. In the following example, we retrieve Cats and their " +"mothers from a different table (cat_log) to the one declared in the mapping " +"metadata. Notice that we may even use the property aliases in the where " +"clause if we like." msgstr "" - "" +"上記で使用している {cat.*} と {mother.*} という表記は、 「すべてのプロパ" +"ティ」を表す省略形です。 代わりに、明示的にカラムを列挙してもよいですが、 そ" +"の場合は、Hibernateに各プロパティに対応するSQLカラムの別名を挿入させるべきで" +"しょう。 カラムの別名のためのプレースホルダは、テーブルの別名によって修飾され" +"たプロパティ名です。 下記の例では、別のテーブル cat_log から マッピングメタ" +"データで定義された Cat とその母親を復元します。 もし好むなら、where節の中で" +"も、プロパティの別名を使えます。" -#: index.docbook:195 +#. Tag: programlisting +#: query_sql.xml:192 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: query_sql.xml:195 +#, no-c-format msgid "Alias and property references" msgstr "別名とプロパティのリファレンス" -#: index.docbook:197 -msgid "For most cases the above alias injection is needed, but for queries relating to more complex mappings like composite properties, inheritance discriminators, collections etc. there are some specific aliases to use to allow Hibernate to inject the proper aliases." -msgstr "多くの場合、上記のような別名インジェクションが必要です。 ただし、複合プロパティ、継承識別子、コレクションなどのような より複雑なマッピングと関連するクエリがなければです。 ある特定の別名を使用することにより、Hibernateは適切な別名を挿入できます。" +#. Tag: para +#: query_sql.xml:197 +#, no-c-format +msgid "" +"For most cases the above alias injection is needed, but for queries relating " +"to more complex mappings like composite properties, inheritance " +"discriminators, collections etc. there are some specific aliases to use to " +"allow Hibernate to inject the proper aliases." +msgstr "" +"多くの場合、上記のような別名インジェクションが必要です。 ただし、複合プロパ" +"ティ、継承識別子、コレクションなどのような より複雑なマッピングと関連するクエ" +"リがなければです。 ある特定の別名を使用することにより、Hibernateは適切な別名" +"を挿入できます。" -#: index.docbook:202 -msgid "The following table shows the different possibilities of using the alias injection. Note: the alias names in the result are examples, each alias will have a unique and probably different name when used." -msgstr "別名インジェクションとして使用できるものを下表に示します。 注意:下表の別名は一例です。 それぞれの別名は一意であり、使用する際にはおそらく異なる名前を持ちます。" +#. Tag: para +#: query_sql.xml:202 +#, no-c-format +msgid "" +"The following table shows the different possibilities of using the alias " +"injection. Note: the alias names in the result are examples, each alias will " +"have a unique and probably different name when used." +msgstr "" +"別名インジェクションとして使用できるものを下表に示します。 注意:下表の別名は" +"一例です。 それぞれの別名は一意であり、使用する際にはおそらく異なる名前を持ち" +"ます。" -#: index.docbook:208 +#. Tag: title +#: query_sql.xml:208 +#, no-c-format msgid "Alias injection names" msgstr "別名に挿入する名前" -#: index.docbook:219 +#. Tag: entry +#: query_sql.xml:219 +#, no-c-format msgid "Description" -msgstr "説明" +msgstr "説明" -#: index.docbook:221 +#. Tag: entry +#: query_sql.xml:221 +#, no-c-format msgid "Syntax" -msgstr "構文" +msgstr "構文" -#: index.docbook:223 +#. Tag: entry +#: query_sql.xml:223 +#, no-c-format msgid "Example" -msgstr "" +msgstr "例" -#: index.docbook:229 +#. Tag: entry +#: query_sql.xml:229 +#, no-c-format msgid "A simple property" msgstr "単純なプロパティ" -#: index.docbook:231 +#. Tag: literal +#: query_sql.xml:231 +#, no-c-format msgid "{[aliasname].[propertyname]" msgstr "{[aliasname].[propertyname]}" -#: index.docbook:233 +#. Tag: literal +#: query_sql.xml:233 +#, no-c-format msgid "A_NAME as {item.name}" msgstr "A_NAME as {item.name}" -#: index.docbook:237 +#. Tag: entry +#: query_sql.xml:237 +#, no-c-format msgid "A composite property" msgstr "複合プロパティ" -#: index.docbook:239 +#. Tag: literal +#: query_sql.xml:239 +#, no-c-format msgid "{[aliasname].[componentname].[propertyname]}" msgstr "{[aliasname].[componentname].[propertyname]}" -#: index.docbook:241 +#. Tag: literal +#: query_sql.xml:241 +#, no-c-format msgid "CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}" msgstr "CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}" -#: index.docbook:246 +#. Tag: entry +#: query_sql.xml:246 +#, no-c-format msgid "Discriminator of an entity" msgstr "エンティティのクラスを識別する値" -#: index.docbook:248 +#. Tag: literal +#: query_sql.xml:248 +#, no-c-format msgid "{[aliasname].class}" msgstr "{[aliasname].class}" -#: index.docbook:250 +#. Tag: literal +#: query_sql.xml:250 +#, no-c-format msgid "DISC as {item.class}" msgstr "DISC as {item.class}" -#: index.docbook:254 +#. Tag: entry +#: query_sql.xml:254 +#, no-c-format msgid "All properties of an entity" msgstr "エンティティの全プロパティ" -#: index.docbook:256, index.docbook:304 +#. Tag: literal +#: query_sql.xml:256 query_sql.xml:304 +#, no-c-format msgid "{[aliasname].*}" msgstr "{[aliasname].*}" -#: index.docbook:258 +#. Tag: literal +#: query_sql.xml:258 +#, no-c-format msgid "{item.*}" msgstr "{item.*}" -#: index.docbook:262 +#. Tag: entry +#: query_sql.xml:262 +#, no-c-format msgid "A collection key" msgstr "コレクションのキー" -#: index.docbook:264 +#. Tag: literal +#: query_sql.xml:264 +#, no-c-format msgid "{[aliasname].key}" msgstr "{[aliasname].key}" -#: index.docbook:266 +#. Tag: literal +#: query_sql.xml:266 +#, no-c-format msgid "ORGID as {coll.key}" msgstr "ORGID as {coll.key}" -#: index.docbook:270 +#. Tag: entry +#: query_sql.xml:270 +#, no-c-format msgid "The id of an collection" msgstr "コレクションのID" -#: index.docbook:272 +#. Tag: literal +#: query_sql.xml:272 +#, no-c-format msgid "{[aliasname].id}" msgstr "{[aliasname].id}" -#: index.docbook:274 +#. Tag: literal +#: query_sql.xml:274 +#, no-c-format msgid "EMPID as {coll.id}" msgstr "EMPID as {coll.id}" -#: index.docbook:278 +#. Tag: entry +#: query_sql.xml:278 +#, no-c-format msgid "The element of an collection" msgstr "コレクションの要素" -#: index.docbook:280 +#. Tag: literal +#: query_sql.xml:280 +#, no-c-format msgid "{[aliasname].element}" msgstr "{[aliasname].element}" -#: index.docbook:282 +#. Tag: literal +#: query_sql.xml:282 +#, no-c-format msgid "XID as {coll.element}" msgstr "XID as {coll.element}" -#: index.docbook:286 +#. Tag: entry +#: query_sql.xml:286 +#, no-c-format msgid "roperty of the element in the collection" msgstr "コレクションの要素のプロパティ" -#: index.docbook:288 +#. Tag: literal +#: query_sql.xml:288 +#, no-c-format msgid "{[aliasname].element.[propertyname]}" msgstr "{[aliasname].element.[propertyname]}" -#: index.docbook:290 +#. Tag: literal +#: query_sql.xml:290 +#, no-c-format msgid "NAME as {coll.element.name}" msgstr "NAME as {coll.element.name}" -#: index.docbook:294 +#. Tag: entry +#: query_sql.xml:294 +#, no-c-format msgid "All properties of the element in the collection" msgstr "コレクションの要素の全プロパティ" -#: index.docbook:296 +#. Tag: literal +#: query_sql.xml:296 +#, no-c-format msgid "{[aliasname].element.*}" msgstr "{[aliasname].element.*}" -#: index.docbook:298 +#. Tag: literal +#: query_sql.xml:298 +#, no-c-format msgid "{coll.element.*}" msgstr "{coll.element.*}" -#: index.docbook:302 +#. Tag: entry +#: query_sql.xml:302 +#, no-c-format msgid "All properties of the the collection" msgstr "コレクションの全プロパティ" -#: index.docbook:306 +#. Tag: literal +#: query_sql.xml:306 +#, no-c-format msgid "{coll.*}" msgstr "{coll.*}" -#: index.docbook:315 +#. Tag: title +#: query_sql.xml:315 +#, no-c-format msgid "Returning non-managed entities" msgstr "管理されていないエンティティの取得" -#: index.docbook:317 -msgid "It is possible to apply a ResultTransformer to native sql queries. Allowing it to e.g. return non-managed entities." -msgstr "ネイティブSQLクエリに ResultTransformer を適用できます。 下記のように、例えば、管理されていないエンティティを返します。" - -#: index.docbook:319 +#. Tag: para +#: query_sql.xml:317 +#, no-c-format msgid "" - "" +"It is possible to apply a ResultTransformer to native sql queries. Allowing " +"it to e.g. return non-managed entities." msgstr "" - "" +"ネイティブSQLクエリに ResultTransformer を適用できます。 下記のように、例え" +"ば、管理されていないエンティティを返します。" -#: index.docbook:329 +#. Tag: programlisting +#: query_sql.xml:319 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_sql.xml:329 +#, no-c-format msgid "a result transformer" msgstr "結果を変換したもの" -#: index.docbook:333 -msgid "The above query will return a list of CatDTO which has been instantiated and injected the values of NAME and BIRTHNAME into its corresponding properties or fields." -msgstr "上記のクエリは、インスタンス化し、NAME と BIRTHDATE の値を 対応するプロパティもしくはフィールドに挿入した CatDTO のリストを返します。" +#. Tag: para +#: query_sql.xml:333 +#, no-c-format +msgid "" +"The above query will return a list of CatDTO which has " +"been instantiated and injected the values of NAME and BIRTHNAME into its " +"corresponding properties or fields." +msgstr "" +"上記のクエリは、インスタンス化し、NAME と BIRTHDATE の値を 対応するプロパティ" +"もしくはフィールドに挿入した CatDTO のリストを返します。" -#: index.docbook:340 +#. Tag: title +#: query_sql.xml:340 +#, no-c-format msgid "Handling inheritance" msgstr "継承の制御" -#: index.docbook:342 -msgid "Native sql queries which query for entities that is mapped as part of an inheritance must include all properties for the baseclass and all it subclasses." -msgstr "継承の一部としてマッピングされたエンティティを問い合わせるネイティブSQLクエリは、 ベースのクラスとそのすべてのサブクラスのプロパティすべてを含まなければなりません。" +#. Tag: para +#: query_sql.xml:342 +#, no-c-format +msgid "" +"Native sql queries which query for entities that is mapped as part of an " +"inheritance must include all properties for the baseclass and all it " +"subclasses." +msgstr "" +"継承の一部としてマッピングされたエンティティを問い合わせるネイティブSQLクエリ" +"は、 ベースのクラスとそのすべてのサブクラスのプロパティすべてを含まなければな" +"りません。" -#: index.docbook:348 +#. Tag: title +#: query_sql.xml:348 +#, no-c-format msgid "Parameters" msgstr "パラメータ" -#: index.docbook:350 +#. Tag: para +#: query_sql.xml:350 +#, no-c-format msgid "Native sql queries support positional as well as named parameters:" -msgstr "ネイティブSQLクエリは、以下のように、 名前付きパラメータ(:name)と同様に位置パラメータをサポートします。" - -#: index.docbook:353 -msgid "" - "" msgstr "" - "" +"ネイティブSQLクエリは、以下のように、 名前付きパラメータ(:name)と同様に位置" +"パラメータをサポートします。" -#: index.docbook:361 +#. Tag: programlisting +#: query_sql.xml:353 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: query_sql.xml:361 +#, no-c-format msgid "Named SQL queries" msgstr "名前付きSQLクエリ" -#: index.docbook:363 -msgid "Named SQL queries may be defined in the mapping document and called in exactly the same way as a named HQL query. In this case, we do not need to call addEntity()." -msgstr "名前付きSQLクエリはマッピングドキュメントで定義することができ、 名前付きHQLクエリと全く同じ方法で呼ぶことができます。 この場合、addEntity() を呼び出す必要は ない です。" - -#: index.docbook:368 +#. Tag: para +#: query_sql.xml:363 +#, no-c-format msgid "" - "\n" - " \n" - " SELECT person.NAME AS {person.name},\n" - " person.AGE AS {person.age},\n" - " person.SEX AS {person.sex}\n" - " FROM PERSON person\n" - " WHERE person.NAME LIKE :namePattern\n" - "]]>" +"Named SQL queries may be defined in the mapping document and called in " +"exactly the same way as a named HQL query. In this case, we do " +"not need to call addEntity()." msgstr "" - "\n" - " \n" - " SELECT person.NAME AS {person.name},\n" - " person.AGE AS {person.age},\n" - " person.SEX AS {person.sex}\n" - " FROM PERSON person\n" - " WHERE person.NAME LIKE :namePattern\n" - "]]>" +"名前付きSQLクエリはマッピングドキュメントで定義することができ、 名前付きHQLク" +"エリと全く同じ方法で呼ぶことができます。 この場合、addEntity() を呼び出す必要は ない です。" -#: index.docbook:370 +#. Tag: programlisting +#: query_sql.xml:368 +#, no-c-format msgid "" - "" +"\n" +" \n" +" SELECT person.NAME AS {person.name},\n" +" person.AGE AS {person.age},\n" +" person.SEX AS {person.sex}\n" +" FROM PERSON person\n" +" WHERE person.NAME LIKE :namePattern\n" +"]]>" msgstr "" - "" -#: index.docbook:372 -msgid "The <return-join> and <load-collection> elements are used to join associations and define queries which initialize collections, respectively." -msgstr "関連を結合するためとコレクションを初期化するクエリを定義するために、それぞれ <return-join><load-collection> 要素を使います。" - -#: index.docbook:377 +#. Tag: programlisting +#: query_sql.xml:370 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " SELECT person.NAME AS {person.name},\n" - " person.AGE AS {person.age},\n" - " person.SEX AS {person.sex},\n" - " address.STREET AS {address.street},\n" - " address.CITY AS {address.city},\n" - " address.STATE AS {address.state},\n" - " address.ZIP AS {address.zip}\n" - " FROM PERSON person\n" - " JOIN ADDRESS address\n" - " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n" - " WHERE person.NAME LIKE :namePattern\n" - "]]>" +"" msgstr "" - "\n" - " \n" - " \n" - " SELECT person.NAME AS {person.name},\n" - " person.AGE AS {person.age},\n" - " person.SEX AS {person.sex},\n" - " address.STREET AS {address.street},\n" - " address.CITY AS {address.city},\n" - " address.STATE AS {address.state},\n" - " address.ZIP AS {address.zip}\n" - " FROM PERSON person\n" - " JOIN ADDRESS address\n" - " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n" - " WHERE person.NAME LIKE :namePattern\n" - "]]>" -#: index.docbook:379 -msgid "A named SQL query may return a scalar value. You must declare the column alias and Hibernate type using the <return-scalar> element:" -msgstr "名前付きSQLクエリはスカラ値を返すこともできます。 <return-scalar> 要素を使って、 列の別名とHibernateの型を宣言しなければなりません。" - -#: index.docbook:383 +#. Tag: para +#: query_sql.xml:372 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " SELECT p.NAME AS name,\n" - " p.AGE AS age,\n" - " FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n" - "]]>" +"The <return-join> and <load-" +"collection> elements are used to join associations and define " +"queries which initialize collections, respectively." msgstr "" - "\n" - " \n" - " \n" - " SELECT p.NAME AS name,\n" - " p.AGE AS age,\n" - " FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n" - "]]>" +"関連を結合するためとコレクションを初期化するクエリを定義するために、それぞれ " +"<return-join><load-collection> 要素を使います。" -#: index.docbook:385 -msgid "You can externalize the resultset mapping informations in a <resultset> element to either reuse them accross several named queries or through the setResultSetMapping() API." -msgstr "リザルトセットのマッピング情報を <resultset> に外出しすることができます。 複数の名前付きクエリで再利用したり、setResultSetMapping() APIを通して再利用したりできます。" - -#: index.docbook:390 +#. Tag: programlisting +#: query_sql.xml:377 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "\n" - "\n" - "\n" - " SELECT person.NAME AS {person.name},\n" - " person.AGE AS {person.age},\n" - " person.SEX AS {person.sex},\n" - " address.STREET AS {address.street},\n" - " address.CITY AS {address.city},\n" - " address.STATE AS {address.state},\n" - " address.ZIP AS {address.zip}\n" - " FROM PERSON person\n" - " JOIN ADDRESS address\n" - " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n" - " WHERE person.NAME LIKE :namePattern\n" - "]]>" +"\n" +" \n" +" \n" +" SELECT person.NAME AS {person.name},\n" +" person.AGE AS {person.age},\n" +" person.SEX AS {person.sex},\n" +" address.STREET AS {address.street},\n" +" address.CITY AS {address.city},\n" +" address.STATE AS {address.state},\n" +" address.ZIP AS {address.zip}\n" +" FROM PERSON person\n" +" JOIN ADDRESS address\n" +" ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n" +" WHERE person.NAME LIKE :namePattern\n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - "\n" - "\n" - "\n" - " SELECT person.NAME AS {person.name},\n" - " person.AGE AS {person.age},\n" - " person.SEX AS {person.sex},\n" - " address.STREET AS {address.street},\n" - " address.CITY AS {address.city},\n" - " address.STATE AS {address.state},\n" - " address.ZIP AS {address.zip}\n" - " FROM PERSON person\n" - " JOIN ADDRESS address\n" - " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n" - " WHERE person.NAME LIKE :namePattern\n" - "]]>" -#: index.docbook:392 -msgid "You can alternatively use the resultset mapping information in your hbm files directly in java code." -msgstr "代わりに、hbmファイル内のリザルトセットのマッピング情報を 直接Javaコードの中で使用できます。" - -#: index.docbook:395 +#. Tag: para +#: query_sql.xml:379 +#, no-c-format msgid "" - "" +"A named SQL query may return a scalar value. You must declare the column " +"alias and Hibernate type using the <return-scalar> " +"element:" msgstr "" - "" +"名前付きSQLクエリはスカラ値を返すこともできます。 <return-" +"scalar> 要素を使って、 列の別名とHibernateの型を宣言しなければな" +"りません。" -#: index.docbook:398 +#. Tag: programlisting +#: query_sql.xml:383 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" SELECT p.NAME AS name,\n" +" p.AGE AS age,\n" +" FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n" +"]]>" +msgstr "" + +#. Tag: para +#: query_sql.xml:385 +#, no-c-format +msgid "" +"You can externalize the resultset mapping informations in a <" +"resultset> element to either reuse them accross several named " +"queries or through the setResultSetMapping() API." +msgstr "" +"リザルトセットのマッピング情報を <resultset> に外出" +"しすることができます。 複数の名前付きクエリで再利用したり、" +"setResultSetMapping() APIを通して再利用したりできます。" + +#. Tag: programlisting +#: query_sql.xml:390 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"\n" +"\n" +"\n" +" SELECT person.NAME AS {person.name},\n" +" person.AGE AS {person.age},\n" +" person.SEX AS {person.sex},\n" +" address.STREET AS {address.street},\n" +" address.CITY AS {address.city},\n" +" address.STATE AS {address.state},\n" +" address.ZIP AS {address.zip}\n" +" FROM PERSON person\n" +" JOIN ADDRESS address\n" +" ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n" +" WHERE person.NAME LIKE :namePattern\n" +"]]>" +msgstr "" + +#. Tag: para +#: query_sql.xml:392 +#, no-c-format +msgid "" +"You can alternatively use the resultset mapping information in your hbm " +"files directly in java code." +msgstr "" +"代わりに、hbmファイル内のリザルトセットのマッピング情報を 直接Javaコードの中" +"で使用できます。" + +#. Tag: programlisting +#: query_sql.xml:395 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: query_sql.xml:398 +#, no-c-format msgid "Using return-property to explicitly specify column/alias names" msgstr "列と列の別名を明示的に指定するために return-property を使う" -#: index.docbook:401 -msgid "With <return-property> you can explicitly tell Hibernate what column aliases to use, instead of using the {}-syntax to let Hibernate inject its own aliases." -msgstr "別名を挿入するために {} 構文を使う代わりに、 <return-property> を使い、 どの列の別名を使うのかを明示できます。" - -#: index.docbook:406 +#. Tag: para +#: query_sql.xml:401 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " SELECT person.NAME AS myName,\n" - " person.AGE AS myAge,\n" - " person.SEX AS mySex,\n" - " FROM PERSON person WHERE person.NAME LIKE :name\n" - "\n" - "]]>" +"With <return-property> you can explicitly tell " +"Hibernate what column aliases to use, instead of using the {}-syntax to let Hibernate inject its own aliases." msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " SELECT person.NAME AS myName,\n" - " person.AGE AS myAge,\n" - " person.SEX AS mySex,\n" - " FROM PERSON person WHERE person.NAME LIKE :name\n" - "\n" - "]]>" +"別名を挿入するために {} 構文を使う代わりに、 <" +"return-property> を使い、 どの列の別名を使うのかを明示できます。" -#: index.docbook:408 -msgid "<return-property> also works with multiple columns. This solves a limitation with the {}-syntax which can not allow fine grained control of multi-column properties." -msgstr "<return-property> は複数の列も扱えます。 これは、複数列のプロパティをきめ細かく制御できないという、 {} 構文の制限を解決します。" - -#: index.docbook:413 +#. Tag: programlisting +#: query_sql.xml:406 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n" - " STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n" - " REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n" - " FROM EMPLOYMENT\n" - " WHERE EMPLOYER = :id AND ENDDATE IS NULL\n" - " ORDER BY STARTDATE ASC\n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" SELECT person.NAME AS myName,\n" +" person.AGE AS myAge,\n" +" person.SEX AS mySex,\n" +" FROM PERSON person WHERE person.NAME LIKE :name\n" +"\n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n" - " STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n" - " REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n" - " FROM EMPLOYMENT\n" - " WHERE EMPLOYER = :id AND ENDDATE IS NULL\n" - " ORDER BY STARTDATE ASC\n" - "]]>" -#: index.docbook:415 -msgid "Notice that in this example we used <return-property> in combination with the {}-syntax for injection. Allowing users to choose how they want to refer column and properties." -msgstr "この例では、挿入のための {} 構文といっしょに、 <return-property> を使っていることに注意してください。 列とプロパティをどのように参照するかを選べます。" +#. Tag: para +#: query_sql.xml:408 +#, no-c-format +msgid "" +"<return-property> also works with multiple columns. " +"This solves a limitation with the {}-syntax which can not " +"allow fine grained control of multi-column properties." +msgstr "" +"<return-property> は複数の列も扱えます。 これは、複" +"数列のプロパティをきめ細かく制御できないという、 {} 構文の" +"制限を解決します。" -#: index.docbook:420 -msgid "If your mapping has a discriminator you must use <return-discriminator> to specify the discriminator column." -msgstr "マッピングに discriminator が含まれている場合、 discriminator の列を指定するために、<return-discriminator> を使わなければなりません。" +#. Tag: programlisting +#: query_sql.xml:413 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n" +" STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n" +" REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n" +" FROM EMPLOYMENT\n" +" WHERE EMPLOYER = :id AND ENDDATE IS NULL\n" +" ORDER BY STARTDATE ASC\n" +"]]>" +msgstr "" -#: index.docbook:426 +#. Tag: para +#: query_sql.xml:415 +#, no-c-format +msgid "" +"Notice that in this example we used <return-property> in combination with the {}-syntax for injection. " +"Allowing users to choose how they want to refer column and properties." +msgstr "" +"この例では、挿入のための {} 構文といっしょに、 " +"<return-property> を使っていることに注意してくださ" +"い。 列とプロパティをどのように参照するかを選べます。" + +#. Tag: para +#: query_sql.xml:420 +#, no-c-format +msgid "" +"If your mapping has a discriminator you must use <return-" +"discriminator> to specify the discriminator column." +msgstr "" +"マッピングに discriminator が含まれている場合、 discriminator の列を指定する" +"ために、<return-discriminator> を使わなければなりません。" + +#. Tag: title +#: query_sql.xml:426 +#, no-c-format msgid "Using stored procedures for querying" msgstr "問い合わせするためにストアドプロシージャを使う" -#: index.docbook:428 -msgid "Hibernate 3 introduces support for queries via stored procedures and functions. Most of the following documentation is equivalent for both. The stored procedure/function must return a resultset as the first out-parameter to be able to work with Hibernate. An example of such a stored function in Oracle 9 and higher is as follows:" -msgstr "Hibernateはバージョン3から、ストアドプロシージャとストアド関数経由の問い合わせが サポートされました。 以降の文書の多くは、両方に当てはまります。 ストアドプロシージャやストアド関数をHibernateで使うためには、 1番目の出力パラメータとしてリザルトセットを返さなければなりません。 Oracle 9(もしくはそれ以上のバージョン)のストアドプロシージャの例を以下に示します。" - -#: index.docbook:434 +#. Tag: para +#: query_sql.xml:428 +#, no-c-format msgid "" - "" +"Hibernate 3 introduces support for queries via stored procedures and " +"functions. Most of the following documentation is equivalent for both. The " +"stored procedure/function must return a resultset as the first out-parameter " +"to be able to work with Hibernate. An example of such a stored function in " +"Oracle 9 and higher is as follows:" msgstr "" - "" +"Hibernateはバージョン3から、ストアドプロシージャとストアド関数経由の問い合わ" +"せが サポートされました。 以降の文書の多くは、両方に当てはまります。 ストアド" +"プロシージャやストアド関数をHibernateで使うためには、 1番目の出力パラメータと" +"してリザルトセットを返さなければなりません。 Oracle 9(もしくはそれ以上のバー" +"ジョン)のストアドプロシージャの例を以下に示します。" -#: index.docbook:436 +#. Tag: programlisting +#: query_sql.xml:434 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: query_sql.xml:436 +#, no-c-format msgid "To use this query in Hibernate you need to map it via a named query." -msgstr "Hibernateでこのクエリを使うためには、 名前付きクエリでマッピングする必要があります。" - -#: index.docbook:439 -msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " { ? = call selectAllEmployments() }\n" - "]]>" msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " { ? = call selectAllEmployments() }\n" - "]]>" +"Hibernateでこのクエリを使うためには、 名前付きクエリでマッピングする必要があ" +"ります。" -#: index.docbook:441 -msgid "Notice stored procedures currently only return scalars and entities. <return-join> and <load-collection> are not supported." -msgstr "注意:今のところ、ストアドプロシージャはスカラとエンティティを返すのみです。 <return-join><load-collection> はサポートされていません。" +#. Tag: programlisting +#: query_sql.xml:439 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" { ? = call selectAllEmployments() }\n" +"]]>" +msgstr "" -#: index.docbook:446 +#. Tag: para +#: query_sql.xml:441 +#, no-c-format +msgid "" +"Notice stored procedures currently only return scalars and entities. " +"<return-join> and <load-collection> are not supported." +msgstr "" +"注意:今のところ、ストアドプロシージャはスカラとエンティティを返すのみです。 " +"<return-join><load-collection> はサポートされていません。" + +#. Tag: title +#: query_sql.xml:446 +#, no-c-format msgid "Rules/limitations for using stored procedures" msgstr "ストアドプロシージャを使う上でのルールと制限" -#: index.docbook:448 -msgid "To use stored procedures with Hibernate the procedures/functions have to follow some rules. If they do not follow those rules they are not usable with Hibernate. If you still want to use these procedures you have to execute them via session.connection(). The rules are different for each database, since database vendors have different stored procedure semantics/syntax." -msgstr "Hibernateでストアドプロシージャや関数を使うためには、 そのプロシージャはいくつかのルールに準拠する必要があります。 ルールに準拠していないプロシージャは、Hibernateで使うことはできません。 それでも、準拠していないプロシージャを使いたいのであれば、 session.connection() を通じて実行しなければなりません。 ルールはデータベースごとに異なります。 ストアドプロシージャのセマンティックスとシンタックスは、 データベースベンダごとに異なるためです。" +#. Tag: para +#: query_sql.xml:448 +#, no-c-format +msgid "" +"To use stored procedures with Hibernate the procedures/functions have to " +"follow some rules. If they do not follow those rules they are not usable " +"with Hibernate. If you still want to use these procedures you have to " +"execute them via session.connection(). The rules are " +"different for each database, since database vendors have different stored " +"procedure semantics/syntax." +msgstr "" +"Hibernateでストアドプロシージャや関数を使うためには、 そのプロシージャはいく" +"つかのルールに準拠する必要があります。 ルールに準拠していないプロシージャは、" +"Hibernateで使うことはできません。 それでも、準拠していないプロシージャを使い" +"たいのであれば、 session.connection() を通じて実行しなけれ" +"ばなりません。 ルールはデータベースごとに異なります。 ストアドプロシージャの" +"セマンティックスとシンタックスは、 データベースベンダごとに異なるためです。" -#: index.docbook:455 -msgid "Stored procedure queries can't be paged with setFirstResult()/setMaxResults()." -msgstr "setFirstResult()/setMaxResults() を使って、 ストアドプロシージャクエリをページ分けすることはできません。" +#. Tag: para +#: query_sql.xml:455 +#, no-c-format +msgid "" +"Stored procedure queries can't be paged with setFirstResult()/" +"setMaxResults()." +msgstr "" +"setFirstResult()/setMaxResults() を使って、 ストアドプロ" +"シージャクエリをページ分けすることはできません。" -#: index.docbook:458 -msgid "Recommended call form is standard SQL92: { ? = call functionName(<parameters>) } or { ? = call procedureName(<parameters>}. Native call syntax is not supported." -msgstr "推奨する呼び出し方は、標準であるSQL92に従うことです。 { ? = call functionName(<parameters>) }{ ? = call procedureName(<parameters>) } です。 ネイティブな呼び出し構文はサポートされていません。" +#. Tag: para +#: query_sql.xml:458 +#, no-c-format +msgid "" +"Recommended call form is standard SQL92: { ? = call functionName" +"(<parameters>) } or { ? = call procedureName(<" +"parameters>}. Native call syntax is not supported." +msgstr "" +"推奨する呼び出し方は、標準であるSQL92に従うことです。 { ? = call " +"functionName(<parameters>) }{ ? = call " +"procedureName(<parameters>) } です。 ネイティブな呼び出し構文" +"はサポートされていません。" -#: index.docbook:463 +#. Tag: para +#: query_sql.xml:463 +#, no-c-format msgid "For Oracle the following rules apply:" msgstr "Oracleには下記のルールが適用されます。" -#: index.docbook:467 -msgid "A function must return a result set. The first parameter of a procedure must be an OUT that returns a result set. This is done by using a SYS_REFCURSOR type in Oracle 9 or 10. In Oracle you need to define a REF CURSOR type, see Oracle literature." -msgstr "関数はリザルトセットを返さなければなりません。 プロシージャの第一引数はリザルトセットを返すため、 OUT でなければなりません。 Oracle 9と10では、SYS_REFCURSOR を使うことによってできます。 Oracleでは REF CURSOR 型を定義する必要があります。 Oracleの文献を参照してください。" +#. Tag: para +#: query_sql.xml:467 +#, no-c-format +msgid "" +"A function must return a result set. The first parameter of a procedure must " +"be an OUT that returns a result set. This is done by " +"using a SYS_REFCURSOR type in Oracle 9 or 10. In Oracle " +"you need to define a REF CURSOR type, see Oracle " +"literature." +msgstr "" +"関数はリザルトセットを返さなければなりません。 プロシージャの第一引数はリザル" +"トセットを返すため、 OUT でなければなりません。 Oracle 9と" +"10では、SYS_REFCURSOR を使うことによってできます。 Oracle" +"では REF CURSOR 型を定義する必要があります。 Oracleの文献" +"を参照してください。" -#: index.docbook:476 +#. Tag: para +#: query_sql.xml:476 +#, no-c-format msgid "For Sybase or MS SQL server the following rules apply:" msgstr "SybaseとMS SQLサーバーに適用されるルールを下記に示します。" -#: index.docbook:480 -msgid "The procedure must return a result set. Note that since these servers can/will return multiple result sets and update counts, Hibernate will iterate the results and take the first result that is a result set as its return value. Everything else will be discarded." -msgstr "プロシージャはリザルトセットを返さなければなりません。 サーバーは複数のリザルトセットと更新カウントを返しますが、 Hibernateは1つ目のリザルトセットだけを返すことに注意してください。 その他はすべて捨てられます。" +#. Tag: para +#: query_sql.xml:480 +#, no-c-format +msgid "" +"The procedure must return a result set. Note that since these servers can/" +"will return multiple result sets and update counts, Hibernate will iterate " +"the results and take the first result that is a result set as its return " +"value. Everything else will be discarded." +msgstr "" +"プロシージャはリザルトセットを返さなければなりません。 サーバーは複数のリザル" +"トセットと更新カウントを返しますが、 Hibernateは1つ目のリザルトセットだけを返" +"すことに注意してください。 その他はすべて捨てられます。" -#: index.docbook:488 -msgid "If you can enable SET NOCOUNT ON in your procedure it will probably be more efficient, but this is not a requirement." -msgstr "プロシージャの中で SET NOCOUNT ON を有効にできれば、 おそらく効率がよくなるでしょう。 しかし、これは必要条件ではありません。" +#. Tag: para +#: query_sql.xml:488 +#, no-c-format +msgid "" +"If you can enable SET NOCOUNT ON in your procedure it " +"will probably be more efficient, but this is not a requirement." +msgstr "" +"プロシージャの中で SET NOCOUNT ON を有効にできれば、 おそ" +"らく効率がよくなるでしょう。 しかし、これは必要条件ではありません。" -#: index.docbook:498 +#. Tag: title +#: query_sql.xml:498 +#, no-c-format msgid "Custom SQL for create, update and delete" msgstr "作成、更新、削除のためのカスタムSQL" -#: index.docbook:500 -msgid "Hibernate3 can use custom SQL statements for create, update, and delete operations. The class and collection persisters in Hibernate already contain a set of configuration time generated strings (insertsql, deletesql, updatesql etc.). The mapping tags <sql-insert>, <sql-delete>, and <sql-update> override these strings:" -msgstr "Hibernate3は作成、更新、削除処理のためのカスタムSQL文を使用できます。 クラスとコレクションの永続化機構は、コンフィグレーション時に生成された文字列 (insertsql、deletesql、updatesqlなど)のセットをすでに保持しています。 これらの文字列より、 <sql-insert><sql-delete><sql-update> というマッピングタグが優先されます。" - -#: index.docbook:508 +#. Tag: para +#: query_sql.xml:500 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )\n" - " UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?\n" - " DELETE FROM PERSON WHERE ID=?\n" - "]]>" +"Hibernate3 can use custom SQL statements for create, update, and delete " +"operations. The class and collection persisters in Hibernate already contain " +"a set of configuration time generated strings (insertsql, deletesql, " +"updatesql etc.). The mapping tags <sql-insert>, " +"<sql-delete>, and <sql-update> override these strings:" msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )\n" - " UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?\n" - " DELETE FROM PERSON WHERE ID=?\n" - "]]>" +"Hibernate3は作成、更新、削除処理のためのカスタムSQL文を使用できます。 クラス" +"とコレクションの永続化機構は、コンフィグレーション時に生成された文字列 " +"(insertsql、deletesql、updatesqlなど)のセットをすでに保持しています。 これ" +"らの文字列より、 <sql-insert><sql-" +"delete><sql-update> というマッピング" +"タグが優先されます。" -#: index.docbook:510 -msgid "The SQL is directly executed in your database, so you are free to use any dialect you like. This will of course reduce the portability of your mapping if you use database specific SQL." -msgstr "SQLを直接データベースで実行するため、好みの方言を自由に使用できます。 データベース独自のSQLを使えば、当然マッピングのポータビリティが下がります。" - -#: index.docbook:514 -msgid "Stored procedures are supported if the callable attribute is set:" -msgstr "callable 属性をセットすれば、 ストアドプロシージャを使用できます。" - -#: index.docbook:517 +#. Tag: programlisting +#: query_sql.xml:508 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " {call createPerson (?, ?)}\n" - " {? = call deletePerson (?)}\n" - " {? = call updatePerson (?, ?)}\n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )\n" +" UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?\n" +" DELETE FROM PERSON WHERE ID=?\n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " {call createPerson (?, ?)}\n" - " {? = call deletePerson (?)}\n" - " {? = call updatePerson (?, ?)}\n" - "]]>" -#: index.docbook:519 -msgid "The order of the positional parameters are currently vital, as they must be in the same sequence as Hibernate expects them." -msgstr "今のところ、位置パラメータの順番はとても重要です。 すなわち、Hibernateが期待する順序でなければなりません。" - -#: index.docbook:522 -msgid "You can see the expected order by enabling debug logging for the org.hibernate.persister.entity level. With this level enabled Hibernate will print out the static SQL that is used to create, update, delete etc. entities. (To see the expected sequence, remember to not include your custom SQL in the mapping files as that will override the Hibernate generated static sql.)" -msgstr "org.hiberante.persister.entity レベルのデバッグログを 有効にすることによって、期待される順番を確かめられます。 このレベルを有効にすることにより、エンティティの作成、更新、削除などで 使用される静的なSQLが出力されます。 (期待される順序を確認するためには、Hibernateが生成する静的なSQLをオーバーライドする カスタムSQLをマッピングファイルに含めないことを忘れないでください。)" - -#: index.docbook:529 -msgid "The stored procedures are in most cases (read: better do it than not) required to return the number of rows inserted/updated/deleted, as Hibernate has some runtime checks for the success of the statement. Hibernate always registers the first statement parameter as a numeric output parameter for the CUD operations:" -msgstr "ストアドプロシージャは挿入/更新/削除された行数を返す必要があります (読み込みの場合は、返さないよりは返す方がよいです)。 実行時にHibernateがSQL文の成功をチェックするからです。 Hibernateは、CUD処理のための数値の出力パラメータとして、 SQL文の最初のパラメータをいつも記録します。" - -#: index.docbook:535 +#. Tag: para +#: query_sql.xml:510 +#, no-c-format msgid "" - "" +"The SQL is directly executed in your database, so you are free to use any " +"dialect you like. This will of course reduce the portability of your mapping " +"if you use database specific SQL." msgstr "" - "" +"SQLを直接データベースで実行するため、好みの方言を自由に使用できます。 データ" +"ベース独自のSQLを使えば、当然マッピングのポータビリティが下がります。" -#: index.docbook:539 +#. Tag: para +#: query_sql.xml:514 +#, no-c-format +msgid "" +"Stored procedures are supported if the callable attribute " +"is set:" +msgstr "" +"callable 属性をセットすれば、 ストアドプロシージャを使用で" +"きます。" + +#. Tag: programlisting +#: query_sql.xml:517 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" {call createPerson (?, ?)}\n" +" {? = call deletePerson (?)}\n" +" {? = call updatePerson (?, ?)}\n" +"]]>" +msgstr "" + +#. Tag: para +#: query_sql.xml:519 +#, no-c-format +msgid "" +"The order of the positional parameters are currently vital, as they must be " +"in the same sequence as Hibernate expects them." +msgstr "" +"今のところ、位置パラメータの順番はとても重要です。 すなわち、Hibernateが期待" +"する順序でなければなりません。" + +#. Tag: para +#: query_sql.xml:522 +#, no-c-format +msgid "" +"You can see the expected order by enabling debug logging for the " +"org.hibernate.persister.entity level. With this level " +"enabled Hibernate will print out the static SQL that is used to create, " +"update, delete etc. entities. (To see the expected sequence, remember to not " +"include your custom SQL in the mapping files as that will override the " +"Hibernate generated static sql.)" +msgstr "" +"org.hiberante.persister.entity レベルのデバッグログを 有効" +"にすることによって、期待される順番を確かめられます。 このレベルを有効にするこ" +"とにより、エンティティの作成、更新、削除などで 使用される静的なSQLが出力され" +"ます。 (期待される順序を確認するためには、Hibernateが生成する静的なSQLをオー" +"バーライドする カスタムSQLをマッピングファイルに含めないことを忘れないでくだ" +"さい。)" + +#. Tag: para +#: query_sql.xml:529 +#, no-c-format +msgid "" +"The stored procedures are in most cases (read: better do it than not) " +"required to return the number of rows inserted/updated/deleted, as Hibernate " +"has some runtime checks for the success of the statement. Hibernate always " +"registers the first statement parameter as a numeric output parameter for " +"the CUD operations:" +msgstr "" +"ストアドプロシージャは挿入/更新/削除された行数を返す必要があります (読み込み" +"の場合は、返さないよりは返す方がよいです)。 実行時にHibernateがSQL文の成功を" +"チェックするからです。 Hibernateは、CUD処理のための数値の出力パラメータとし" +"て、 SQL文の最初のパラメータをいつも記録します。" + +#. Tag: programlisting +#: query_sql.xml:535 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: query_sql.xml:539 +#, no-c-format msgid "Custom SQL for loading" msgstr "ロードのためのカスタムSQL" -#: index.docbook:541 +#. Tag: para +#: query_sql.xml:541 +#, no-c-format msgid "You may also declare your own SQL (or HQL) queries for entity loading:" -msgstr "エンティティを読み込むための独自のSQL(もしくはHQL)クエリも宣言できます。" - -#: index.docbook:544 -msgid "" - "\n" - " \n" - " SELECT NAME AS {pers.name}, ID AS {pers.id}\n" - " FROM PERSON\n" - " WHERE ID=?\n" - " FOR UPDATE\n" - "]]>" msgstr "" - "\n" - " \n" - " SELECT NAME AS {pers.name}, ID AS {pers.id}\n" - " FROM PERSON\n" - " WHERE ID=?\n" - " FOR UPDATE\n" - "]]>" +"エンティティを読み込むための独自のSQL(もしくはHQL)クエリも宣言できます。" -#: index.docbook:546 -msgid "This is just a named query declaration, as discussed earlier. You may reference this named query in a class mapping:" -msgstr "これは、まさに(以前議論した)名前付きクエリの宣言です。 この名前付きクエリをクラスのマッピングから参照できます。" - -#: index.docbook:549 +#. Tag: programlisting +#: query_sql.xml:544 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" SELECT NAME AS {pers.name}, ID AS {pers.id}\n" +" FROM PERSON\n" +" WHERE ID=?\n" +" FOR UPDATE\n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:551 +#. Tag: para +#: query_sql.xml:546 +#, no-c-format +msgid "" +"This is just a named query declaration, as discussed earlier. You may " +"reference this named query in a class mapping:" +msgstr "" +"これは、まさに(以前議論した)名前付きクエリの宣言です。 この名前付きクエリを" +"クラスのマッピングから参照できます。" + +#. Tag: programlisting +#: query_sql.xml:549 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: query_sql.xml:551 +#, no-c-format msgid "This even works with stored procedures." msgstr "これはストアドプロシージャでさえも動作します。" -#: index.docbook:553 +#. Tag: para +#: query_sql.xml:553 +#, no-c-format msgid "You may even define a query for collection loading:" msgstr "次のように、コレクションをロードするためのクエリさえ定義してよいです。" -#: index.docbook:555 +#. Tag: programlisting +#: query_sql.xml:555 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +"]]>" msgstr "" - "\n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:557 +#. Tag: programlisting +#: query_sql.xml:557 +#, no-c-format msgid "" - "\n" - " \n" - " SELECT {emp.*}\n" - " FROM EMPLOYMENT emp\n" - " WHERE EMPLOYER = :id\n" - " ORDER BY STARTDATE ASC, EMPLOYEE ASC\n" - "]]>" +"\n" +" \n" +" SELECT {emp.*}\n" +" FROM EMPLOYMENT emp\n" +" WHERE EMPLOYER = :id\n" +" ORDER BY STARTDATE ASC, EMPLOYEE ASC\n" +"]]>" msgstr "" - "\n" - " \n" - " SELECT {emp.*}\n" - " FROM EMPLOYMENT emp\n" - " WHERE EMPLOYER = :id\n" - " ORDER BY STARTDATE ASC, EMPLOYEE ASC\n" - "]]>" -#: index.docbook:559 -msgid "You could even define an entity loader that loads a collection by join fetching:" -msgstr "次のように、結合フェッチによりコレクションをロードする エンティティローダーを定義できます。" - -#: index.docbook:562 +#. Tag: para +#: query_sql.xml:559 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " SELECT NAME AS {pers.*}, {emp.*}\n" - " FROM PERSON pers\n" - " LEFT OUTER JOIN EMPLOYMENT emp\n" - " ON pers.ID = emp.PERSON_ID\n" - " WHERE ID=?\n" - "]]>" +"You could even define an entity loader that loads a collection by join " +"fetching:" msgstr "" - "\n" - " \n" - " \n" - " SELECT NAME AS {pers.*}, {emp.*}\n" - " FROM PERSON pers\n" - " LEFT OUTER JOIN EMPLOYMENT emp\n" - " ON pers.ID = emp.PERSON_ID\n" - " WHERE ID=?\n" - "]]>" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +"次のように、結合フェッチによりコレクションをロードする エンティティローダーを" +"定義できます。" +#. Tag: programlisting +#: query_sql.xml:562 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" SELECT NAME AS {pers.*}, {emp.*}\n" +" FROM PERSON pers\n" +" LEFT OUTER JOIN EMPLOYMENT emp\n" +" ON pers.ID = emp.PERSON_ID\n" +" WHERE ID=?\n" +"]]>" +msgstr "" diff --git a/documentation/manual/translations/ja-JP/content/session_api.po b/documentation/manual/translations/ja-JP/content/session_api.po index c8dc430618..234a52cf2d 100644 --- a/documentation/manual/translations/ja-JP/content/session_api.po +++ b/documentation/manual/translations/ja-JP/content/session_api.po @@ -1,1219 +1,2218 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: session_api.xml:5 +#, no-c-format msgid "Working with objects" msgstr "オブジェクトを扱う" -#: index.docbook:7 -msgid "Hibernate is a full object/relational mapping solution that not only shields the developer from the details of the underlying database management system, but also offers state management of objects. This is, contrary to the management of SQL statements in common JDBC/SQL persistence layers, a very natural object-oriented view of persistence in Java applications." -msgstr "Hibernate は完全なオブジェクト/リレーショナルマッピングソリューションであり、 データベース管理システムの詳細を開発者から隠蔽するだけでなく、 オブジェクトの 状態管理 も行います。 これは、JDBC/SQL永続層と同じようなSQL の管理とは異なり、 Javaアプリケーションにおける永続化に対する、とても自然なオブジェクト指向の考え方を提供します。" +#. Tag: para +#: session_api.xml:7 +#, no-c-format +msgid "" +"Hibernate is a full object/relational mapping solution that not only shields " +"the developer from the details of the underlying database management system, " +"but also offers state management of objects. This is, " +"contrary to the management of SQL statements in common " +"JDBC/SQL persistence layers, a very natural object-oriented view of " +"persistence in Java applications." +msgstr "" +"Hibernate は完全なオブジェクト/リレーショナルマッピングソリューションであ" +"り、 データベース管理システムの詳細を開発者から隠蔽するだけでなく、 オブジェ" +"クトの 状態管理 も行います。 これは、JDBC/SQL永続層と同" +"じようなSQL の管理とは異なり、 Javaアプリケーションにお" +"ける永続化に対する、とても自然なオブジェクト指向の考え方を提供します。" -#: index.docbook:16 -msgid "In other words, Hibernate application developers should always think about the state of their objects, and not necessarily about the execution of SQL statements. This part is taken care of by Hibernate and is only relevant for the application developer when tuning the performance of the system." -msgstr "言いかえれば、Hibernateを用いるアプリケーション開発者は、オブジェクトの 状態 については 常に意識すべきであり、SQL文の実行については必ずしもそうではありません。 この部分は、通常、Hibernateが処理し、システムのパフォーマンスをチューニングするときにだけ、 問題になってきます。" +#. Tag: para +#: session_api.xml:16 +#, no-c-format +msgid "" +"In other words, Hibernate application developers should always think about " +"the state of their objects, and not necessarily about " +"the execution of SQL statements. This part is taken care of by Hibernate and " +"is only relevant for the application developer when tuning the performance " +"of the system." +msgstr "" +"言いかえれば、Hibernateを用いるアプリケーション開発者は、オブジェクトの " +"状態 については 常に意識すべきであり、SQL文の実行につい" +"ては必ずしもそうではありません。 この部分は、通常、Hibernateが処理し、システ" +"ムのパフォーマンスをチューニングするときにだけ、 問題になってきます。" -#: index.docbook:24 +#. Tag: title +#: session_api.xml:24 +#, no-c-format msgid "Hibernate object states" msgstr "Hibernateにおけるオブジェクトの状態" -#: index.docbook:26 +#. Tag: para +#: session_api.xml:26 +#, no-c-format msgid "Hibernate defines and supports the following object states:" msgstr "Hibernateは次のようなオブジェクトの状態を定義し、サポートしています。" -#: index.docbook:32 -msgid "Transient - an object is transient if it has just been instantiated using the new operator, and it is not associated with a Hibernate Session. It has no persistent representation in the database and no identifier value has been assigned. Transient instances will be destroyed by the garbage collector if the application doesn't hold a reference anymore. Use the Hibernate Session to make an object persistent (and let Hibernate take care of the SQL statements that need to be executed for this transition)." -msgstr " 一時的(Transient) - new 演算子を使って インスタンス化されただけで、 Hibernateの Session に関連付けられていないオブジェクトは、 一時的(transient)です。 それは、データベースに永続的な表現を持たず、識別子となる値は割り当てられていません。 一時的なインスタンスは、アプリケーションがその参照をどこにも保持しない場合に、 ガベージコレクタによって破棄されます。 オブジェクトを永続的(persistent)な状態にするためには、Hibernateの Session を使いましょう。 (この状態遷移に必要となるSQL文の発行は、Hibernateに任せましょう。)" +#. Tag: para +#: session_api.xml:32 +#, no-c-format +msgid "" +"Transient - an object is transient if it has just been " +"instantiated using the new operator, and it is not " +"associated with a Hibernate Session. It has no persistent " +"representation in the database and no identifier value has been assigned. " +"Transient instances will be destroyed by the garbage collector if the " +"application doesn't hold a reference anymore. Use the Hibernate " +"Session to make an object persistent (and let Hibernate " +"take care of the SQL statements that need to be executed for this " +"transition)." +msgstr "" +" 一時的(Transient) - new 演算子を" +"使って インスタンス化されただけで、 Hibernateの Session に" +"関連付けられていないオブジェクトは、 一時的(transient)です。 それは、データ" +"ベースに永続的な表現を持たず、識別子となる値は割り当てられていません。 一時的" +"なインスタンスは、アプリケーションがその参照をどこにも保持しない場合に、 ガ" +"ベージコレクタによって破棄されます。 オブジェクトを永続的(persistent)な状態に" +"するためには、Hibernateの Session を使いましょう。 (この" +"状態遷移に必要となるSQL文の発行は、Hibernateに任せましょう。)" -#: index.docbook:44 -msgid "Persistent - a persistent instance has a representation in the database and an identifier value. It might just have been saved or loaded, however, it is by definition in the scope of a Session. Hibernate will detect any changes made to an object in persistent state and synchronize the state with the database when the unit of work completes. Developers don't execute manual UPDATE statements, or DELETE statements when an object should be made transient." -msgstr "永続的(Persistent) - 永続的なインスタンスはデータベースに 永続的な表現を持ち、識別子となる値を持っています。 それは、セーブされたり、ロードされたりするかもしれませんが、 定義上は、 Session のスコープの中に存在しています。 Hibernateは、作業単位(Unit of work)が完了したときに、 永続状態のオブジェクトに加えられた変更を検出し、 オブジェクトの状態とデータベースを同期します。 オブジェクトを一時的(transient)にするときは、開発者は、手作業で UPDATE 文や DELETE 文を実行しません。" +#. Tag: para +#: session_api.xml:44 +#, no-c-format +msgid "" +"Persistent - a persistent instance has a representation " +"in the database and an identifier value. It might just have been saved or " +"loaded, however, it is by definition in the scope of a Session. Hibernate will detect any changes made to an object in persistent " +"state and synchronize the state with the database when the unit of work " +"completes. Developers don't execute manual UPDATE " +"statements, or DELETE statements when an object should be " +"made transient." +msgstr "" +"永続的(Persistent) - 永続的なインスタンスはデータベース" +"に 永続的な表現を持ち、識別子となる値を持っています。 それは、セーブされた" +"り、ロードされたりするかもしれませんが、 定義上は、 Session のスコープの中に存在しています。 Hibernateは、作業単位(Unit of " +"work)が完了したときに、 永続状態のオブジェクトに加えられた変更を検出し、 オ" +"ブジェクトの状態とデータベースを同期します。 オブジェクトを一時的(transient)" +"にするときは、開発者は、手作業で UPDATE 文や " +"DELETE 文を実行しません。" -#: index.docbook:55 -msgid "Detached - a detached instance is an object that has been persistent, but its Session has been closed. The reference to the object is still valid, of course, and the detached instance might even be modified in this state. A detached instance can be reattached to a new Session at a later point in time, making it (and all the modifications) persistent again. This feature enables a programming model for long running units of work that require user think-time. We call them application transactions, i.e. a unit of work from the point of view of the user." -msgstr "分離(Detached) - 分離されたインスタンスとは、永続化されているが、 それと関連付いていた Session がクローズされているオブジェクトのことです。 そのオブジェクトへの参照は、依然として有効です。 そして、もちろん、分離された状態にあるオブジェクトは、修正することさえできます。 分離されたインスタンスは、もう一度永続化したい(そして、すべての変更を永続化したい)ときに、 新しい Session に再追加できます。 この機能は、ユーザが考える時間を必要とするような、長期間に及ぶ作業単位に対する プログラミングモデルを可能にします。 我々は、これを アプリケーションのトランザクション(application transactions) と呼んでいます。 すなわち、ユーザから見た作業単位だということです。" +#. Tag: para +#: session_api.xml:55 +#, no-c-format +msgid "" +"Detached - a detached instance is an object that has " +"been persistent, but its Session has been closed. The " +"reference to the object is still valid, of course, and the detached instance " +"might even be modified in this state. A detached instance can be reattached " +"to a new Session at a later point in time, making it (and " +"all the modifications) persistent again. This feature enables a programming " +"model for long running units of work that require user think-time. We call " +"them application transactions, i.e. a unit of work from " +"the point of view of the user." +msgstr "" +"分離(Detached) - 分離されたインスタンスとは、永続化され" +"ているが、 それと関連付いていた Session がクローズされてい" +"るオブジェクトのことです。 そのオブジェクトへの参照は、依然として有効です。 " +"そして、もちろん、分離された状態にあるオブジェクトは、修正することさえできま" +"す。 分離されたインスタンスは、もう一度永続化したい(そして、すべての変更を永" +"続化したい)ときに、 新しい Session に再追加できます。 こ" +"の機能は、ユーザが考える時間を必要とするような、長期間に及ぶ作業単位に対する " +"プログラミングモデルを可能にします。 我々は、これを アプリケーショ" +"ンのトランザクション(application transactions) と呼んでいます。 " +"すなわち、ユーザから見た作業単位だということです。" -#: index.docbook:69 -msgid "We'll now discuss the states and state transitions (and the Hibernate methods that trigger a transition) in more detail." -msgstr "これから、状態と状態遷移(そして、遷移のきっかけとなるHibernateのメソッド)について 、詳細に述べます。" +#. Tag: para +#: session_api.xml:69 +#, no-c-format +msgid "" +"We'll now discuss the states and state transitions (and the Hibernate " +"methods that trigger a transition) in more detail." +msgstr "" +"これから、状態と状態遷移(そして、遷移のきっかけとなるHibernateのメソッド)に" +"ついて 、詳細に述べます。" -#: index.docbook:77 +#. Tag: title +#: session_api.xml:77 +#, no-c-format msgid "Making objects persistent" msgstr "オブジェクトを永続状態にする" -#: index.docbook:79 -msgid "Newly instantiated instances of a a persistent class are considered transient by Hibernate. We can make a transient instance persistent by associating it with a session:" -msgstr "新しくインスタンス化された永続クラスのインスタンスは、 Hibernateでは 一時的(transient) と見なされます。 以下のように、セッションと関連づけることで、一時的なインスタンスを 永続状態(persistent) にできます。" - -#: index.docbook:86 +#. Tag: para +#: session_api.xml:79 +#, no-c-format msgid "" - "" +"Newly instantiated instances of a a persistent class are considered " +"transient by Hibernate. We can make a transient " +"instance persistent by associating it with a session:" msgstr "" - "" +"新しくインスタンス化された永続クラスのインスタンスは、 Hibernateでは " +"一時的(transient) と見なされます。 以下のように、セッ" +"ションと関連づけることで、一時的なインスタンスを 永続状態" +"(persistent) にできます。" -#: index.docbook:88 -msgid "If Cat has a generated identifier, the identifier is generated and assigned to the cat when save() is called. If Cat has an assigned identifier, or a composite key, the identifier should be assigned to the cat instance before calling save(). You may also use persist() instead of save(), with the semantics defined in the EJB3 early draft." -msgstr "Cat クラスの識別子が自動生成されるのであれば、 save() が呼ばれるときに、 識別子が生成され、 cat インスタンスに割り当てられます。 Cat の識別子が他から割り当てられる( assigned 識別子を持つ)か、複合キーであるなら、 save() を呼び出す前に、識別子を割り当てなければなりません。 save() の代わりに、EJB3 の初期ドラフトで定義された persist() を使うことも可能です。" - -#: index.docbook:100 -msgid "persist() makes a transient instance persistent. However, it doesn't guarantee that the identifier value will be assigned to the persistent instance immediately, the assignment might happen at flush time. persist() also guarantees that it will not execute an INSERT statement if it is called outside of transaction boundaries. This is useful in long-running conversations with an extended Session/persistence context." -msgstr "代わりに、識別子を引数にとる save() メソッドを使って、 識別子を割り当てることもできます。" - -#: index.docbook:111 -msgid "save() does guarantee to return an identifier. If an INSERT has to be executed to get the identifier ( e.g. \"identity\" generator, not \"sequence\"), this INSERT happens immediately, no matter if you are inside or outside of a transaction. This is problematic in a long-running conversation with an extended Session/persistence context." -msgstr "" - "" - -#: index.docbook:121 -msgid "Alternatively, you may assign the identifier using an overloaded version of save()." -msgstr "永続化するオブジェクトが関連オブジェクトを持っている場合 (例えば、前の例における kittens コレクションのように)、 外部キーカラムに、 NOT NULL 制約をつけない限りは、 これらの一連のオブジェクトをどんな順番で永続化してもかまいません。 外部キー制約を違反する恐れはありません。 しかし、 NOT NULL 制約がある場合、間違った順番でオブジェクトを save() してしまうと、 制約に違反するかもしれません。" - -#: index.docbook:126 +#. Tag: programlisting +#: session_api.xml:86 +#, no-c-format msgid "" - "" -msgstr "関連するオブジェクトを自動的に保存する、 Hibernateの 遷移的な永続化(transitive persistence) 機能を 使うつもりならば、そのような詳細を気にする必要はありません。 そして、 NOT NULL 制約の違反すら起こりません。 Hibernateがすべて面倒をみてくれます。遷移的な永続化は、この章の後半に書かれています。" +"" +msgstr "" -#: index.docbook:128 -msgid "If the object you make persistent has associated objects (e.g. the kittens collection in the previous example), these objects may be made persistent in any order you like unless you have a NOT NULL constraint upon a foreign key column. There is never a risk of violating foreign key constraints. However, you might violate a NOT NULL constraint if you save() the objects in the wrong order." +#. Tag: para +#: session_api.xml:88 +#, no-c-format +msgid "" +"If Cat has a generated identifier, the identifier is " +"generated and assigned to the cat when save() is called. If Cat has an assigned identifier, or a composite key, the identifier should be assigned " +"to the cat instance before calling save(). You may also use persist() instead of " +"save(), with the semantics defined in the EJB3 early " +"draft." +msgstr "" +"Cat クラスの識別子が自動生成されるのであれば、 " +"save() が呼ばれるときに、 識別子が生成され、 " +"cat インスタンスに割り当てられます。 Cat の識別子が他から割り当てられる( assigned 識別子" +"を持つ)か、複合キーであるなら、 save() を呼び出す前に、識" +"別子を割り当てなければなりません。 save() の代わりに、" +"EJB3 の初期ドラフトで定義された persist() を使うことも可能" +"です。" + +#. Tag: para +#: session_api.xml:100 +#, no-c-format +msgid "" +"persist() makes a transient instance persistent. However, " +"it doesn't guarantee that the identifier value will be assigned to the " +"persistent instance immediately, the assignment might happen at flush time. " +"persist() also guarantees that it will not execute an " +"INSERT statement if it is called outside of transaction " +"boundaries. This is useful in long-running conversations with an extended " +"Session/persistence context." +msgstr "" +"persist() makes a transient instance persistent. However, " +"it doesn't guarantee that the identifier value will be assigned to the " +"persistent instance immediately, the assignment might happen at flush time. " +"persist() also guarantees that it will not execute an " +"INSERT statement if it is called outside of transaction " +"boundaries. This is useful in long-running conversations with an extended " +"Session/persistence context." + +#. Tag: para +#: session_api.xml:111 +#, no-c-format +msgid "" +"save() does guarantee to return an identifier. If an " +"INSERT has to be executed to get the identifier ( e.g. \"identity\" " +"generator, not \"sequence\"), this INSERT happens immediately, no matter if " +"you are inside or outside of a transaction. This is problematic in a long-" +"running conversation with an extended Session/persistence context." +msgstr "" +"save() does guarantee to return an identifier. If an " +"INSERT has to be executed to get the identifier ( e.g. \"identity\" " +"generator, not \"sequence\"), this INSERT happens immediately, no matter if " +"you are inside or outside of a transaction. This is problematic in a long-" +"running conversation with an extended Session/persistence context." + +#. Tag: para +#: session_api.xml:121 +#, no-c-format +msgid "" +"Alternatively, you may assign the identifier using an overloaded version of " +"save()." +msgstr "" +"代わりに、識別子を引数にとる save() メソッドを使って、 識" +"別子を割り当てることもできます。" + +#. Tag: programlisting +#: session_api.xml:126 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:128 +#, no-c-format +msgid "" +"If the object you make persistent has associated objects (e.g. the " +"kittens collection in the previous example), these " +"objects may be made persistent in any order you like unless you have a " +"NOT NULL constraint upon a foreign key column. There is " +"never a risk of violating foreign key constraints. However, you might " +"violate a NOT NULL constraint if you save() the objects in the wrong order." +msgstr "" +"永続化するオブジェクトが関連オブジェクトを持っている場合 (例えば、前の例にお" +"ける kittens コレクションのように)、 外部キーカラムに、 " +"NOT NULL 制約をつけない限りは、 これらの一連のオブジェクト" +"をどんな順番で永続化してもかまいません。 外部キー制約を違反する恐れはありませ" +"ん。 しかし、 NOT NULL 制約がある場合、間違った順番でオブ" +"ジェクトを save() してしまうと、 制約に違反するかもしれま" +"せん。" + +#. Tag: para +#: session_api.xml:138 +#, no-c-format +msgid "" +"Usually you don't bother with this detail, as you'll very likely use " +"Hibernate's transitive persistence feature to save the " +"associated objects automatically. Then, even NOT NULL " +"constraint violations don't occur - Hibernate will take care of everything. " +"Transitive persistence is discussed later in this chapter." +msgstr "" +"関連するオブジェクトを自動的に保存する、 Hibernateの 遷移的な永続化" +"(transitive persistence) 機能を 使うつもりならば、そのような詳細を" +"気にする必要はありません。 そして、 NOT NULL 制約の違反す" +"ら起こりません。 Hibernateがすべて面倒をみてくれます。遷移的な永続化は、この" +"章の後半に書かれています。" + +#. Tag: title +#: session_api.xml:149 +#, no-c-format +msgid "Loading an object" msgstr "オブジェクトのロード" -#: index.docbook:138 -msgid "Usually you don't bother with this detail, as you'll very likely use Hibernate's transitive persistence feature to save the associated objects automatically. Then, even NOT NULL constraint violations don't occur - Hibernate will take care of everything. Transitive persistence is discussed later in this chapter." -msgstr "永続化されたインスタンスの識別子があらかじめ分かっているなら、 Sessionload() メソッドを使って、復元できます。 load() は、Class オブジェクトを引数にとり、 そのクラスのインスタンスを新たに生成し、状態をロードします。 そのインスタンスの状態は、永続(persistent)状態です。" - -#: index.docbook:149 -msgid "Loading an object" -msgstr "" - -#: index.docbook:151 -msgid "The load() methods of Session gives you a way to retrieve a persistent instance if you already know its identifier. load() takes a class object and will load the state into a newly instantiated instance of that class, in persistent state." +#. Tag: para +#: session_api.xml:151 +#, no-c-format +msgid "" +"The load() methods of Session gives " +"you a way to retrieve a persistent instance if you already know its " +"identifier. load() takes a class object and will load the " +"state into a newly instantiated instance of that class, in persistent state." msgstr "" - "" +"永続化されたインスタンスの識別子があらかじめ分かっているなら、 " +"Sessionload() メソッドを使って、復" +"元できます。 load() は、Class オブジェクトを引数にとり、 " +"そのクラスのインスタンスを新たに生成し、状態をロードします。 そのインスタンス" +"の状態は、永続(persistent)状態です。" -#: index.docbook:158 +#. Tag: programlisting +#: session_api.xml:158 +#, no-c-format msgid "" -msgstr "あるいは、以下のように、既存のインスタンスに状態をロードすることもできます。" - -#: index.docbook:160 -msgid "" - "" msgstr "" - "" -#: index.docbook:162 +#. Tag: programlisting +#: session_api.xml:160 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:162 +#, no-c-format msgid "Alternatively, you can load state into a given instance:" -msgstr "DBに該当する行が無い場合、 load() は回復不可能な例外を 投げることに注意しましょう。 そのクラスがプロキシを使ってマッピングされている場合、 load() は初期化されていないプロキシを返し、プロキシのメソッドが呼ばれるまで実際には データベースにアクセスしません。 もし、実際にデータベースからロードせずに、オブジェクトに対する関連を作りたい場合、 この振る舞いはとても役立ちます。 batch-size がクラスマッピングに定義されているならば、 複数のインスタンスを一括でロードすることが可能です。" - -#: index.docbook:166 -msgid "" - "" -msgstr "該当する行が存在することを確信できない場合は、 get() メソッドを使うべきです。 それは、データベースにすぐにアクセスし、該当する行が無い場合はnullを返します。" - -#: index.docbook:168 -msgid "Note that load() will throw an unrecoverable exception if there is no matching database row. If the class is mapped with a proxy, load() just returns an uninitialized proxy and does not actually hit the database until you invoke a method of the proxy. This behaviour is very useful if you wish to create an association to an object without actually loading it from the database. It also allows multiple instances to be loaded as a batch if batch-size is defined for the class mapping." msgstr "" - "" +"あるいは、以下のように、既存のインスタンスに状態をロードすることもできます。" -#: index.docbook:179 -msgid "If you are not certain that a matching row exists, you should use the get() method, which hits the database immediately and returns null if there is no matching row." -msgstr "LockMode を使えば、 SELECT ... FOR UPDATEというSQLを 使ってオブジェクトをロードすることができます。 詳細な情報は、APIドキュメントを参照してください。" - -#: index.docbook:185 +#. Tag: programlisting +#: session_api.xml:166 +#, no-c-format msgid "" - "" -msgstr "" +"" +msgstr "" -#: index.docbook:187 -msgid "You may even load an object using an SQL SELECT ... FOR UPDATE, using a LockMode. See the API documentation for more information." -msgstr "関連に対するカスケード方法として lockall を 指定しない限り、関連するインスタンスや含まれるコレクションは FOR UPDATE で復元 されない ことに注意しましょう。" +#. Tag: para +#: session_api.xml:168 +#, no-c-format +msgid "" +"Note that load() will throw an unrecoverable exception if " +"there is no matching database row. If the class is mapped with a proxy, " +"load() just returns an uninitialized proxy and does not " +"actually hit the database until you invoke a method of the proxy. This " +"behaviour is very useful if you wish to create an association to an object " +"without actually loading it from the database. It also allows multiple " +"instances to be loaded as a batch if batch-size is " +"defined for the class mapping." +msgstr "" +"DBに該当する行が無い場合、 load() は回復不可能な例外を 投" +"げることに注意しましょう。 そのクラスがプロキシを使ってマッピングされている場" +"合、 load() は初期化されていないプロキシを返し、プロキシの" +"メソッドが呼ばれるまで実際には データベースにアクセスしません。 もし、実際に" +"データベースからロードせずに、オブジェクトに対する関連を作りたい場合、 この振" +"る舞いはとても役立ちます。 batch-size がクラスマッピングに" +"定義されているならば、 複数のインスタンスを一括でロードすることが可能です。" -#: index.docbook:192 +#. Tag: para +#: session_api.xml:179 +#, no-c-format +msgid "" +"If you are not certain that a matching row exists, you should use the " +"get() method, which hits the database immediately and " +"returns null if there is no matching row." +msgstr "" +"該当する行が存在することを確信できない場合は、 get() メ" +"ソッドを使うべきです。 それは、データベースにすぐにアクセスし、該当する行が無" +"い場合はnullを返します。" + +#. Tag: programlisting +#: session_api.xml:185 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:187 +#, no-c-format +msgid "" +"You may even load an object using an SQL SELECT ... FOR UPDATE, using a LockMode. See the API documentation for " +"more information." +msgstr "" +"LockMode を使えば、 SELECT ... FOR UPDATEというSQLを 使ってオブジェクトをロードすることができます。 詳細な情報" +"は、APIドキュメントを参照してください。" + +#. Tag: programlisting +#: session_api.xml:192 +#, no-c-format msgid "" -msgstr "refresh() メソッドを使うことで、どんなときでも、オブジェクトやそのコレクションを リロードすることができます。 データベースのトリガがテーブルを更新した際に、 そのテーブルに対応するオブジェクトのプロパティを同期する場合、このメソッドが役に立ちます。" - -#: index.docbook:194 -msgid "Note that any associated instances or contained collections are not selected FOR UPDATE, unless you decide to specify lock or all as a cascade style for the association." msgstr "" - "" -#: index.docbook:201 -msgid "It is possible to re-load an object and all its collections at any time, using the refresh() method. This is useful when database triggers are used to initialize some of the properties of the object." -msgstr "大切な問題は、いつも次の点に関するものです。それは、Hibernateがデータベースから、 どのくらいの量を復元するのかと、どのくらいの数のSQLの SELECT 文が使われるのかです。 これは、 フェッチの戦略 によります。これについては、 で説明しています。" - -#: index.docbook:207 +#. Tag: para +#: session_api.xml:194 +#, no-c-format msgid "" - "" -msgstr "クエリ" +"Note that any associated instances or contained collections are " +"not selected FOR UPDATE, unless you " +"decide to specify lock or all as a " +"cascade style for the association." +msgstr "" +"関連に対するカスケード方法として lockall を 指定しない限り、関連するインスタンスや含まれるコレクションは " +"FOR UPDATE で復元 されない ことに注意" +"しましょう。" -#: index.docbook:209 -msgid "An important question usually appears at this point: How much does Hibernate load from the database and how many SQL SELECTs will it use? This depends on the fetching strategy and is explained in ." -msgstr "探したいオブジェクトの識別子が分からない場合は、クエリが必要になります。 Hibernateは使いやすくて強力なオブジェクト指向のクエリ言語 (HQL)をサポートしています。 プログラムによってクエリが作成できるように、Hibernateは洗練されたCriteriaとExampleクエリ機能(QBCとQBE)を サポートしています。ResultSetをオブジェクトに変換するHibernateのオプション機能を使うことで、 データベースのネイティブなSQLでクエリを表現することもできます。" +#. Tag: para +#: session_api.xml:201 +#, no-c-format +msgid "" +"It is possible to re-load an object and all its collections at any time, " +"using the refresh() method. This is useful when database " +"triggers are used to initialize some of the properties of the object." +msgstr "" +"refresh() メソッドを使うことで、どんなときでも、オブジェク" +"トやそのコレクションを リロードすることができます。 データベースのトリガが" +"テーブルを更新した際に、 そのテーブルに対応するオブジェクトのプロパティを同期" +"する場合、このメソッドが役に立ちます。" -#: index.docbook:219 +#. Tag: programlisting +#: session_api.xml:207 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:209 +#, no-c-format +msgid "" +"An important question usually appears at this point: How much does Hibernate " +"load from the database and how many SQL SELECTs will it " +"use? This depends on the fetching strategy and is " +"explained in ." +msgstr "" +"大切な問題は、いつも次の点に関するものです。それは、Hibernateがデータベースか" +"ら、 どのくらいの量を復元するのかと、どのくらいの数のSQLの SELECT 文が使われるのかです。 これは、 フェッチの戦略 " +"によります。これについては、 で説明し" +"ています。" + +#. Tag: title +#: session_api.xml:219 +#, no-c-format msgid "Querying" +msgstr "クエリ" + +#. Tag: para +#: session_api.xml:221 +#, no-c-format +msgid "" +"If you don't know the identifiers of the objects you are looking for, you " +"need a query. Hibernate supports an easy-to-use but powerful object oriented " +"query language (HQL). For programmatic query creation, Hibernate supports a " +"sophisticated Criteria and Example query feature (QBC and QBE). You may also " +"express your query in the native SQL of your database, with optional support " +"from Hibernate for result set conversion into objects." +msgstr "" +"探したいオブジェクトの識別子が分からない場合は、クエリが必要になります。 " +"Hibernateは使いやすくて強力なオブジェクト指向のクエリ言語 (HQL)をサポートして" +"います。 プログラムによってクエリが作成できるように、Hibernateは洗練された" +"CriteriaとExampleクエリ機能(QBCとQBE)を サポートしています。ResultSetをオブ" +"ジェクトに変換するHibernateのオプション機能を使うことで、 データベースのネイ" +"ティブなSQLでクエリを表現することもできます。" + +#. Tag: title +#: session_api.xml:231 +#, no-c-format +msgid "Executing queries" msgstr "クエリの実行" -#: index.docbook:221 -msgid "If you don't know the identifiers of the objects you are looking for, you need a query. Hibernate supports an easy-to-use but powerful object oriented query language (HQL). For programmatic query creation, Hibernate supports a sophisticated Criteria and Example query feature (QBC and QBE). You may also express your query in the native SQL of your database, with optional support from Hibernate for result set conversion into objects." -msgstr "HQLやネイティブなSQLクエリは、 org.hibernate.Query のインスタンスとして表現されます。 このインタフェースは、パラメータバインディングやResultSetのハンドリングや クエリの実行を行うメソッドを用意しています。 通常、 Query は、以下に示すように、 その時点の Session を使って取得します。" - -#: index.docbook:231 -msgid "Executing queries" -msgstr "" - "" - -#: index.docbook:233 -msgid "HQL and native SQL queries are represented with an instance of org.hibernate.Query. This interface offers methods for parameter binding, result set handling, and for the execution of the actual query. You always obtain a Query using the current Session:" -msgstr "クエリは、普通、 list() を呼び出すことによって実行されます。 クエリの結果は、メモリ上にあるコレクションにすべてロードされます。 クエリによって復元されたエンティティのインスタンスは、永続状態です。 もし、クエリがたった1個のインスタンスを返すと分かっているなら、 uniqueResult() メソッドが手っ取り早い方法です。 即時フェッチを利用したクエリの場合、ふつう、得られたコレクションには、 ルートのオブジェクトが重複して含まれています (しかし、ルートが持つコレクションは初期化(ロード)されています)。 この重複は Set を使って取り除くことができます。" - -#: index.docbook:240 +#. Tag: para +#: session_api.xml:233 +#, no-c-format msgid "" - "" +"HQL and native SQL queries are represented with an instance of org." +"hibernate.Query. This interface offers methods for parameter " +"binding, result set handling, and for the execution of the actual query. You " +"always obtain a Query using the current Session:" +msgstr "" +"HQLやネイティブなSQLクエリは、 org.hibernate.Query のイン" +"スタンスとして表現されます。 このインタフェースは、パラメータバインディングや" +"ResultSetのハンドリングや クエリの実行を行うメソッドを用意しています。 通" +"常、 Query は、以下に示すように、 その時点の " +"Session を使って取得します。" + +#. Tag: programlisting +#: session_api.xml:240 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:242 +#, no-c-format +msgid "" +"A query is usually executed by invoking list(), the " +"result of the query will be loaded completely into a collection in memory. " +"Entity instances retrieved by a query are in persistent state. The " +"uniqueResult() method offers a shortcut if you know your " +"query will only return a single object. Note that queries that make use of " +"eager fetching of collections usually return duplicates of the root objects " +"(but with their collections initialized). You can filter these duplicates " +"simply through a Set." +msgstr "" +"クエリは、普通、 list() を呼び出すことによって実行されま" +"す。 クエリの結果は、メモリ上にあるコレクションにすべてロードされます。 クエ" +"リによって復元されたエンティティのインスタンスは、永続状態です。 もし、クエリ" +"がたった1個のインスタンスを返すと分かっているなら、 uniqueResult() メソッドが手っ取り早い方法です。 即時フェッチを利用したクエリの場" +"合、ふつう、得られたコレクションには、 ルートのオブジェクトが重複して含まれて" +"います (しかし、ルートが持つコレクションは初期化(ロード)されています)。 こ" +"の重複は Set を使って取り除くことができます。" + +#. Tag: title +#: session_api.xml:254 +#, no-c-format +msgid "Iterating results" msgstr "結果をイテレートする" -#: index.docbook:242 -msgid "A query is usually executed by invoking list(), the result of the query will be loaded completely into a collection in memory. Entity instances retrieved by a query are in persistent state. The uniqueResult() method offers a shortcut if you know your query will only return a single object. Note that queries that make use of eager fetching of collections usually return duplicates of the root objects (but with their collections initialized). You can filter these duplicates simply through a Set." -msgstr "時々、 iterate() メソッドを使ってクエリを実行することで、 より良いパフォーマンスを得ることができます。 これは、通常、クエリによって得られた実際のエンティティのインスタンスが、 すでにセッションまたは二次キャッシュに存在することが期待できる場合だけです。 それらが、まだキャッシュされていないなら、 iterate() は、 list() よりも遅く、簡単なクエリに対しても多くのデータベースアクセスを 必要とします。そのアクセスとは、識別子だけを取得するための最初のselect1回と、 実際のインスタンスを初期化するために後から行うn回のselectのことです。" - -#: index.docbook:254 -msgid "Iterating results" +#. Tag: para +#: session_api.xml:256 +#, no-c-format +msgid "" +"Occasionally, you might be able to achieve better performance by executing " +"the query using the iterate() method. This will only " +"usually be the case if you expect that the actual entity instances returned " +"by the query will already be in the session or second-level cache. If they " +"are not already cached, iterate() will be slower than " +"list() and might require many database hits for a simple " +"query, usually 1 for the initial select which only " +"returns identifiers, and n additional selects to " +"initialize the actual instances." msgstr "" - "" +"時々、 iterate() メソッドを使ってクエリを実行することで、 " +"より良いパフォーマンスを得ることができます。 これは、通常、クエリによって得ら" +"れた実際のエンティティのインスタンスが、 すでにセッションまたは二次キャッシュ" +"に存在することが期待できる場合だけです。 それらが、まだキャッシュされていない" +"なら、 iterate() は、 list() よりも遅" +"く、簡単なクエリに対しても多くのデータベースアクセスを 必要とします。そのアク" +"セスとは、識別子だけを取得するための最初のselect1回と、 実際のインスタンスを" +"初期化するために後から行うn回のselectのことです。" -#: index.docbook:256 -msgid "Occasionally, you might be able to achieve better performance by executing the query using the iterate() method. This will only usually be the case if you expect that the actual entity instances returned by the query will already be in the session or second-level cache. If they are not already cached, iterate() will be slower than list() and might require many database hits for a simple query, usually 1 for the initial select which only returns identifiers, and n additional selects to initialize the actual instances." +#. Tag: programlisting +#: session_api.xml:268 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: session_api.xml:272 +#, no-c-format +msgid "Queries that return tuples" msgstr "オブジェクトの組(tuple)を返すクエリ" -#: index.docbook:268 +#. Tag: para +#: session_api.xml:274 +#, no-c-format msgid "" - "" -msgstr "Hibernateのクエリでは、時々、オブジェクトの組を返すことがあります。 その場合は、各タプルは配列として返されます。" - -#: index.docbook:272 -msgid "Queries that return tuples" +"Hibernate queries sometimes return tuples of objects, in which case each " +"tuple is returned as an array:" msgstr "" - "" +"Hibernateのクエリでは、時々、オブジェクトの組を返すことがあります。 その場合" +"は、各タプルは配列として返されます。" -#: index.docbook:274 -msgid "Hibernate queries sometimes return tuples of objects, in which case each tuple is returned as an array:" +#. Tag: programlisting +#: session_api.xml:279 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: session_api.xml:284 +#, no-c-format +msgid "Scalar results" msgstr "スカラーの結果" -#: index.docbook:279 +#. Tag: para +#: session_api.xml:286 +#, no-c-format msgid "" - "" -msgstr "クエリでは、 select 節でクラスのプロパティを指定できます。 SQLの集合関数を呼ぶこともできます。プロパティや集合関数は、 (永続状態のエンティティではなく)「スカラー値」であると見なされます。" - -#: index.docbook:284 -msgid "Scalar results" +"Queries may specify a property of a class in the select " +"clause. They may even call SQL aggregate functions. Properties or aggregates " +"are considered \"scalar\" results (and not entities in persistent state)." msgstr "" - "" +"クエリでは、 select 節でクラスのプロパティを指定できま" +"す。 SQLの集合関数を呼ぶこともできます。プロパティや集合関数は、 (永続状態の" +"エンティティではなく)「スカラー値」であると見なされます。" -#: index.docbook:286 -msgid "Queries may specify a property of a class in the select clause. They may even call SQL aggregate functions. Properties or aggregates are considered \"scalar\" results (and not entities in persistent state)." +#. Tag: programlisting +#: session_api.xml:292 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: session_api.xml:297 +#, no-c-format +msgid "Bind parameters" msgstr "パラメータのバインド" -#: index.docbook:292 +#. Tag: para +#: session_api.xml:299 +#, no-c-format msgid "" - "" -msgstr "Query は、名前付きのパラメータやJDBCスタイルの ? パラメータに値をバインドするためのメソッドを持っています。 JDBCとは違い、Hibernateはパラメータにゼロから番号を振っていきます。 名前付きのパラメータとは、クエリ文字列のなかにある :name 形式の識別子です。 名前付きパラメータの利点は次の通りです。" +"Methods on Query are provided for binding values to named " +"parameters or JDBC-style ? parameters. Contrary " +"to JDBC, Hibernate numbers parameters from zero. Named parameters " +"are identifiers of the form :name in the query string. " +"The advantages of named parameters are:" +msgstr "" +"Query は、名前付きのパラメータやJDBCスタイルの ?" +" パラメータに値をバインドするためのメソッドを持っています。 " +"JDBCとは違い、Hibernateはパラメータにゼロから番号を振っていきます。" +" 名前付きのパラメータとは、クエリ文字列のなかにある :" +"name 形式の識別子です。 名前付きパラメータの利点は次の通りです。" -#: index.docbook:297 -msgid "Bind parameters" +#. Tag: para +#: session_api.xml:309 +#, no-c-format +msgid "" +"named parameters are insensitive to the order they occur in the query string" msgstr "名前付きパラメータは、クエリ文字列に登場する順番と無関係です" -#: index.docbook:299 -msgid "Methods on Query are provided for binding values to named parameters or JDBC-style ? parameters. Contrary to JDBC, Hibernate numbers parameters from zero. Named parameters are identifiers of the form :name in the query string. The advantages of named parameters are:" +#. Tag: para +#: session_api.xml:315 +#, no-c-format +msgid "they may occur multiple times in the same query" msgstr "同じクエリ内に複数回登場することができます" -#: index.docbook:309 -msgid "named parameters are insensitive to the order they occur in the query string" +#. Tag: para +#: session_api.xml:320 +#, no-c-format +msgid "they are self-documenting" msgstr "自分自身を説明します" -#: index.docbook:315 -msgid "they may occur multiple times in the same query" -msgstr "" - "" - -#: index.docbook:320 -msgid "they are self-documenting" -msgstr "" - "" - -#: index.docbook:326 +#. Tag: programlisting +#: session_api.xml:326 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:328 +#. Tag: programlisting +#: session_api.xml:328 +#, no-c-format msgid "" - "" +"" +msgstr "" + +#. Tag: programlisting +#: session_api.xml:330 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: session_api.xml:335 +#, no-c-format +msgid "Pagination" msgstr "ページ分け" -#: index.docbook:330 +#. Tag: para +#: session_api.xml:337 +#, no-c-format msgid "" - "" -msgstr "ResultSetに制限(復元したい最大行数や復元したい最初の行)を加える必要があれば、 以下のように、 Query インターフェイスのメソッドを使います。" - -#: index.docbook:335 -msgid "Pagination" +"If you need to specify bounds upon your result set (the maximum number of " +"rows you want to retrieve and / or the first row you want to retrieve) you " +"should use methods of the Query interface:" msgstr "" - "" +"ResultSetに制限(復元したい最大行数や復元したい最初の行)を加える必要があれ" +"ば、 以下のように、 Query インターフェイスのメソッドを使い" +"ます。" -#: index.docbook:337 -msgid "If you need to specify bounds upon your result set (the maximum number of rows you want to retrieve and / or the first row you want to retrieve) you should use methods of the Query interface:" -msgstr "制限付きのクエリをDBMSのネイティブなSQLに変換する方法を、Hibernateは知っています。" - -#: index.docbook:343 +#. Tag: programlisting +#: session_api.xml:343 +#, no-c-format msgid "" - "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:345 +#, no-c-format +msgid "" +"Hibernate knows how to translate this limit query into the native SQL of " +"your DBMS." +msgstr "" +"制限付きのクエリをDBMSのネイティブなSQLに変換する方法を、Hibernateは知ってい" +"ます。" + +#. Tag: title +#: session_api.xml:353 +#, no-c-format +msgid "Scrollable iteration" msgstr "スクロール可能なイテレーション" -#: index.docbook:345 -msgid "Hibernate knows how to translate this limit query into the native SQL of your DBMS." -msgstr "JDBCドライバがスクロール可能な ResultSet をサポートしていれば、 Query インターフェイスを使って、 ScrollableResults オブジェクトを 取得できます。それを使うと、クエリの結果に対して柔軟にナビゲーションできます。" - -#: index.docbook:353 -msgid "Scrollable iteration" -msgstr "" - " i++ ) && cats.next() ) pageOfCats.add( cats.get(1) ); \n" - " \n" - "} \n" - "cats.close()]]>" - -#: index.docbook:355 -msgid "If your JDBC driver supports scrollable ResultSets, the Query interface may be used to obtain a ScrollableResults object, which allows flexible navigation of the query results." -msgstr "この機能にはオープン状態のデータベースコネクションが必要であることに注意してください。 もし、オフラインのページ分け機能が必要であれば、 setMaxResult() / setFirstResult() を使いましょう。" - -#: index.docbook:362 +#. Tag: para +#: session_api.xml:355 +#, no-c-format msgid "" - " i++ ) && cats.next() ) pageOfCats.add( cats.get(1) );\n" - "\n" - "}\n" - "cats.close()]]>" +"If your JDBC driver supports scrollable ResultSets, the " +"Query interface may be used to obtain a " +"ScrollableResults object, which allows flexible " +"navigation of the query results." +msgstr "" +"JDBCドライバがスクロール可能な ResultSet をサポートしてい" +"れば、 Query インターフェイスを使って、 " +"ScrollableResults オブジェクトを 取得できます。それを使う" +"と、クエリの結果に対して柔軟にナビゲーションできます。" + +#. Tag: programlisting +#: session_api.xml:362 +#, no-c-format +msgid "" +" i++ ) && cats.next() ) pageOfCats.add( cats.get" +"(1) );\n" +"\n" +"}\n" +"cats.close()]]>" +msgstr "" + +#. Tag: para +#: session_api.xml:364 +#, no-c-format +msgid "" +"Note that an open database connection (and cursor) is required for this " +"functionality, use setMaxResult()/setFirstResult" +"() if you need offline pagination functionality." +msgstr "" +"この機能にはオープン状態のデータベースコネクションが必要であることに注意して" +"ください。 もし、オフラインのページ分け機能が必要であれば、 " +"setMaxResult() / setFirstResult() を使" +"いましょう。" + +#. Tag: title +#: session_api.xml:373 +#, no-c-format +msgid "Externalizing named queries" msgstr "名前付きクエリの外出し" -#: index.docbook:364 -msgid "Note that an open database connection (and cursor) is required for this functionality, use setMaxResult()/setFirstResult() if you need offline pagination functionality." -msgstr "マッピングドキュメントに名前付きのクエリを定義することができます。 (マークアップと解釈される文字がクエリに含まれるなら、 CDATA セクションを 使うことを忘れないようにしましょう。)" - -#: index.docbook:373 -msgid "Externalizing named queries" -msgstr "" - " ? \n" - "] ]>]]>" - -#: index.docbook:375 -msgid "You may also define named queries in the mapping document. (Remember to use a CDATA section if your query contains characters that could be interpreted as markup.)" -msgstr "パラメータのバインディングと実行は、以下のようなプログラムで行われます。" - -#: index.docbook:381 +#. Tag: para +#: session_api.xml:375 +#, no-c-format msgid "" - " ?\n" - "] ]>]]>" +"You may also define named queries in the mapping document. (Remember to use " +"a CDATA section if your query contains characters that " +"could be interpreted as markup.)" msgstr "" - "" +"マッピングドキュメントに名前付きのクエリを定義することができます。 (マーク" +"アップと解釈される文字がクエリに含まれるなら、 CDATA セク" +"ションを 使うことを忘れないようにしましょう。)" -#: index.docbook:383 +#. Tag: programlisting +#: session_api.xml:381 +#, no-c-format +msgid "" +" ?\n" +"] ]>]]>" +msgstr "" + +#. Tag: para +#: session_api.xml:383 +#, no-c-format msgid "Parameter binding and executing is done programatically:" -msgstr "実際のプログラムコードは、使われるクエリ言語に依存していないことに注意しましょう。 メタデータには、ネイティブSQLクエリを定義することもできます。 また、既存のクエリをマッピングファイルに移すことで、 Hibernateに移行することもできます。" +msgstr "" +"パラメータのバインディングと実行は、以下のようなプログラムで行われます。" -#: index.docbook:387 +#. Tag: programlisting +#: session_api.xml:387 +#, no-c-format msgid "" - "" -msgstr "<hibernate-mapping> の中のクエリ定義は、クエリに対する ユニークな名前が必要なことにも注意してください。それに対して、 <class> の中の クエリ定義は、クラスの完全限定名が前に付けられるので、自動的にユニークな名前になります。 例: eg.Cat.ByNameAndMaximumWeight" +"" +msgstr "" -#: index.docbook:389 -msgid "Note that the actual program code is independent of the query language that is used, you may also define native SQL queries in metadata, or migrate existing queries to Hibernate by placing them in mapping files." +#. Tag: para +#: session_api.xml:389 +#, no-c-format +msgid "" +"Note that the actual program code is independent of the query language that " +"is used, you may also define native SQL queries in metadata, or migrate " +"existing queries to Hibernate by placing them in mapping files." +msgstr "" +"実際のプログラムコードは、使われるクエリ言語に依存していないことに注意しま" +"しょう。 メタデータには、ネイティブSQLクエリを定義することもできます。 また、" +"既存のクエリをマッピングファイルに移すことで、 Hibernateに移行することもでき" +"ます。" + +#. Tag: para +#: session_api.xml:395 +#, no-c-format +msgid "" +"Also note that a query declaration inside a <hibernate-" +"mapping> element requires a global unique name for the query, " +"while a query declaration inside a <class> element " +"is made unique automatically by prepending the fully qualified name of the " +"class, for example eg.Cat.ByNameAndMaximumWeight." +msgstr "" +"<hibernate-mapping> の中のクエリ定義は、クエリに対す" +"る ユニークな名前が必要なことにも注意してください。それに対して、 " +"<class> の中の クエリ定義は、クラスの完全限定名が前" +"に付けられるので、自動的にユニークな名前になります。 例: eg.Cat." +"ByNameAndMaximumWeight" + +#. Tag: title +#: session_api.xml:408 +#, no-c-format +msgid "Filtering collections" msgstr "コレクションのフィルタリング" -#: index.docbook:395 -msgid "Also note that a query declaration inside a <hibernate-mapping> element requires a global unique name for the query, while a query declaration inside a <class> element is made unique automatically by prepending the fully qualified name of the class, for example eg.Cat.ByNameAndMaximumWeight." -msgstr "コレクション フィルタ は、永続化されているコレクションや配列に適用される 特殊なタイプのクエリです。そのクエリ文字列では、コレクションのその時点での要素を意味する this を使います。" - -#: index.docbook:408 -msgid "Filtering collections" -msgstr "" - "" - -#: index.docbook:409 -msgid "A collection filter is a special type of query that may be applied to a persistent collection or array. The query string may refer to this, meaning the current collection element." -msgstr "返されるコレクションはBagとみなされます。そして、それはもとのコレクションのコピーになります。 元のコレクションは修正されません(これは、\"filter\"という名前の意味とは異なりますが、 期待される動きとは一致しています)。" - -#: index.docbook:415 +#. Tag: para +#: session_api.xml:409 +#, no-c-format msgid "" - "" -msgstr "フィルタには from 節が不要であることに気づくでしょう(必要なら、持つことも可能ですが)。 フィルタは、コレクションの要素自体を返して構いません。" - -#: index.docbook:417 -msgid "The returned collection is considered a bag, and it's a copy of the given collection. The original collection is not modified (this is contrary to the implication of the name \"filter\", but consistent with expected behavior)." +"A collection filter is a special type of query that may " +"be applied to a persistent collection or array. The query string may refer " +"to this, meaning the current collection element." msgstr "" - "" +"コレクション フィルタ は、永続化されているコレクションや" +"配列に適用される 特殊なタイプのクエリです。そのクエリ文字列では、コレクション" +"のその時点での要素を意味する this を使います。" -#: index.docbook:423 -msgid "Observe that filters do not require a from clause (though they may have one if required). Filters are not limited to returning the collection elements themselves." -msgstr "クエリを含まないフィルタも役に立ちます。 例えば、非常に大きなコレクションの部分集合をロードするために使えます。" - -#: index.docbook:428 +#. Tag: programlisting +#: session_api.xml:415 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:430 -msgid "Even an empty filter query is useful, e.g. to load a subset of elements in a huge collection:" +#. Tag: para +#: session_api.xml:417 +#, no-c-format +msgid "" +"The returned collection is considered a bag, and it's a copy of the given " +"collection. The original collection is not modified (this is contrary to the " +"implication of the name \"filter\", but consistent with expected behavior)." +msgstr "" +"返されるコレクションはBagとみなされます。そして、それはもとのコレクションのコ" +"ピーになります。 元のコレクションは修正されません(これは、\"filter\"という名" +"前の意味とは異なりますが、 期待される動きとは一致しています)。" + +#. Tag: para +#: session_api.xml:423 +#, no-c-format +msgid "" +"Observe that filters do not require a from clause (though " +"they may have one if required). Filters are not limited to returning the " +"collection elements themselves." +msgstr "" +"フィルタには from 節が不要であることに気づくでしょう(必要" +"なら、持つことも可能ですが)。 フィルタは、コレクションの要素自体を返して構い" +"ません。" + +#. Tag: programlisting +#: session_api.xml:428 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:430 +#, no-c-format +msgid "" +"Even an empty filter query is useful, e.g. to load a subset of elements in a " +"huge collection:" +msgstr "" +"クエリを含まないフィルタも役に立ちます。 例えば、非常に大きなコレクションの部" +"分集合をロードするために使えます。" + +#. Tag: programlisting +#: session_api.xml:435 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: session_api.xml:440 +#, no-c-format +msgid "Criteria queries" msgstr "クライテリアのクエリ" -#: index.docbook:435 +#. Tag: para +#: session_api.xml:442 +#, no-c-format msgid "" - "" -msgstr "HQLは非常に強力ですが、クエリ文字列を作るよりも、オブジェクト指向のAPIを使って 動的にクエリを作る方を好む開発者もいます。 こういった場合のために、Hibernateは直感的な Criteria クエリAPIを提供しています。" - -#: index.docbook:440 -msgid "Criteria queries" +"HQL is extremely powerful but some developers prefer to build queries " +"dynamically, using an object-oriented API, rather than building query " +"strings. Hibernate provides an intuitive Criteria query " +"API for these cases:" msgstr "" - "" +"HQLは非常に強力ですが、クエリ文字列を作るよりも、オブジェクト指向のAPIを使っ" +"て 動的にクエリを作る方を好む開発者もいます。 こういった場合のために、" +"Hibernateは直感的な Criteria クエリAPIを提供しています。" -#: index.docbook:442 -msgid "HQL is extremely powerful but some developers prefer to build queries dynamically, using an object-oriented API, rather than building query strings. Hibernate provides an intuitive Criteria query API for these cases:" -msgstr "CriteriaExample APIの詳細は、 に述べられています。" - -#: index.docbook:448 +#. Tag: programlisting +#: session_api.xml:448 +#, no-c-format msgid "" - "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:450 +#, no-c-format +msgid "" +"The Criteria and the associated Example API are discussed in more detail in ." +msgstr "" +"CriteriaExample APIの詳細は、 " +" に述べられています。" + +#. Tag: title +#: session_api.xml:458 +#, no-c-format +msgid "Queries in native SQL" msgstr "ネイティブSQLのクエリ" -#: index.docbook:450 -msgid "The Criteria and the associated Example API are discussed in more detail in ." -msgstr "createSQLQuery() を使って、SQLでクエリを表現することもできます。 そして、Hibernateに、ResultSet からオブジェクトへのマッピングをまかせます。 session.connection() を呼べばどんなときでも、直接、JDBC Connection を使用できることを覚えておきましょう。 もし、Hibernate APIを使うのであれば、下記のようにSQLの別名を括弧でくくらなければなりません。" - -#: index.docbook:458 -msgid "Queries in native SQL" -msgstr "" - "" - -#: index.docbook:460 -msgid "You may express a query in SQL, using createSQLQuery() and let Hibernate take care of the mapping from result sets to objects. Note that you may at any time call session.connection() and use the JDBC Connection directly. If you chose to use the Hibernate API, you must enclose SQL aliases in braces:" -msgstr "" - "" - -#: index.docbook:468 +#. Tag: para +#: session_api.xml:460 +#, no-c-format msgid "" - "" -msgstr "SQLクエリは、Hibernateクエリと同じように、名前付きのパラメータと位置パラメータを持つことができます。 HibernateにおけるネイティブなSQLクエリの詳細については、 を参照してください。" +"You may express a query in SQL, using createSQLQuery() " +"and let Hibernate take care of the mapping from result sets to objects. Note " +"that you may at any time call session.connection() and " +"use the JDBC Connection directly. If you chose to use the " +"Hibernate API, you must enclose SQL aliases in braces:" +msgstr "" +"createSQLQuery() を使って、SQLでクエリを表現することもでき" +"ます。 そして、Hibernateに、ResultSet からオブジェクトへのマッピングをまかせ" +"ます。 session.connection() を呼べばどんなときでも、直接、" +"JDBC Connection を使用できることを覚えておきましょう。 も" +"し、Hibernate APIを使うのであれば、下記のようにSQLの別名を括弧でくくらなけれ" +"ばなりません。" -#: index.docbook:470 +#. Tag: programlisting +#: session_api.xml:468 +#, no-c-format msgid "" - "" +"" +msgstr "" + +#. Tag: programlisting +#: session_api.xml:470 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:472 +#, no-c-format +msgid "" +"SQL queries may contain named and positional parameters, just like Hibernate " +"queries. More information about native SQL queries in Hibernate can be found " +"in ." +msgstr "" +"SQLクエリは、Hibernateクエリと同じように、名前付きのパラメータと位置パラメー" +"タを持つことができます。 HibernateにおけるネイティブなSQLクエリの詳細について" +"は、 を参照してください。" + +#. Tag: title +#: session_api.xml:483 +#, no-c-format +msgid "Modifying persistent objects" msgstr "永続オブジェクトの修正" -#: index.docbook:472 -msgid "SQL queries may contain named and positional parameters, just like Hibernate queries. More information about native SQL queries in Hibernate can be found in ." -msgstr "処理中の永続インスタンス (例: Session によって、 ロード、セーブ、作成、クエリされたオブジェクト)は、アプリケーションに操作されます。 その際に変更された永続状態は、 Sessionフラッシュ されるときに、永続化されます(これは、この章の後半で述べています)。 変更を永続化するために、特殊なメソッド( update() のようなもの。これは、別の目的で使用します)を 呼ぶ必要はありません。 オブジェクトの状態を更新する一番簡単な方法は、オブジェクトを load() し、 Session をオープンにしている間に、直接操作することです。" - -#: index.docbook:483 -msgid "Modifying persistent objects" -msgstr "" - "" - -#: index.docbook:485 -msgid "Transactional persistent instances (ie. objects loaded, saved, created or queried by the Session) may be manipulated by the application and any changes to persistent state will be persisted when the Session is flushed (discussed later in this chapter). There is no need to call a particular method (like update(), which has a different purpose) to make your modifications persistent. So the most straightforward way to update the state of an object is to load() it, and then manipulate it directly, while the Session is open:" -msgstr "(オブジェクトをロードするための)SQLの SELECT と(更新された状態を永続化するための) SQLの UPDATE が同じセッションで必要となるので、このプログラミングモデルは、 効率が悪くなる場合があります。 そのため、Hibernateは別の方法を用意しています。それは、インスタンスを分離する(detached)方法です。" - -#: index.docbook:496 +#. Tag: para +#: session_api.xml:485 +#, no-c-format msgid "" - "" -msgstr "Hibernateは、 UPDATE 文や DELETE 文を直接実行するAPIを用意していません。 Hibernateは、 状態管理 サービスであり、使われるSQL のことを開発者が考える必要はありません。 JDBCはSQL文を実行する完璧なAPIであり、 session.connection() を呼ぶことで いつでも、JDBC Connection を開発者は取得できます。 さらに、大量のデータ操作の考え方は、オンライントランザクション処理向きアプリケーションの オブジェクト/リレーショナルマッピングと衝突します。 しかし、Hibernateの今後のバージョンでは、大量データを処理する特別な機能を提供するかもしれません。 バッチ操作に利用できるいくつかの工夫については、 を参照してください。" +"Transactional persistent instances (ie. objects loaded, " +"saved, created or queried by the Session) may be " +"manipulated by the application and any changes to persistent state will be " +"persisted when the Session is flushed (discussed later in this chapter). There is no need to call a " +"particular method (like update(), which has a different " +"purpose) to make your modifications persistent. So the most straightforward " +"way to update the state of an object is to load() it, and " +"then manipulate it directly, while the Session is open:" +msgstr "" +"処理中の永続インスタンス (例: Session によって、 ロード、セーブ、作成、クエリされたオブジェクト)は、アプ" +"リケーションに操作されます。 その際に変更された永続状態は、 " +"Sessionフラッシュ されるときに、" +"永続化されます(これは、この章の後半で述べています)。 変更を永続化するため" +"に、特殊なメソッド( update() のようなもの。これは、別の目" +"的で使用します)を 呼ぶ必要はありません。 オブジェクトの状態を更新する一番簡" +"単な方法は、オブジェクトを load() し、 Session をオープンにしている間に、直接操作することです。" -#: index.docbook:498 -msgid "Sometimes this programming model is inefficient since it would require both an SQL SELECT (to load an object) and an SQL UPDATE (to persist its updated state) in the same session. Therefore Hibernate offers an alternate approach, using detached instances." +#. Tag: programlisting +#: session_api.xml:496 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:498 +#, no-c-format +msgid "" +"Sometimes this programming model is inefficient since it would require both " +"an SQL SELECT (to load an object) and an SQL " +"UPDATE (to persist its updated state) in the same " +"session. Therefore Hibernate offers an alternate approach, using detached " +"instances." +msgstr "" +"(オブジェクトをロードするための)SQLの SELECT と(更新さ" +"れた状態を永続化するための) SQLの UPDATE が同じセッション" +"で必要となるので、このプログラミングモデルは、 効率が悪くなる場合がありま" +"す。 そのため、Hibernateは別の方法を用意しています。それは、インスタンスを分" +"離する(detached)方法です。" + +#. Tag: emphasis +#: session_api.xml:506 +#, fuzzy, no-c-format +msgid "" +"Note that Hibernate does not offer its own API for direct execution of " +"UPDATE or DELETE statements. Hibernate " +"is a state management service, you don't have to think " +"in statements to use it. JDBC is a perfect API for " +"executing SQL statements, you can get a JDBC Connection " +"at any time by calling session.connection(). Furthermore, " +"the notion of mass operations conflicts with object/relational mapping for " +"online transaction processing-oriented applications. Future versions of " +"Hibernate may however provide special mass operation functions. See for some possible batch operation tricks." +msgstr "" +"Hibernateは、 文や 文を直接実行するAPIを用" +"意していません。 Hibernateは、 サービスであり、使われるSQL " +" のことを開発者が考える必要はありません。 JDBCはSQL文を実行す" +"る完璧なAPIであり、 を呼ぶことで いつでも、JDBC " +" を開発者は取得できます。 さらに、大量のデータ操作の考え方" +"は、オンライントランザクション処理向きアプリケーションの オブジェクト/リレー" +"ショナルマッピングと衝突します。 しかし、Hibernateの今後のバージョンでは、大" +"量データを処理する特別な機能を提供するかもしれません。 バッチ操作に利用できる" +"いくつかの工夫については、 を参照してください。" + +#. Tag: title +#: session_api.xml:521 +#, no-c-format +msgid "Modifying detached objects" msgstr "分離オブジェクトの修正" -#: index.docbook:506 -msgid "Note that Hibernate does not offer its own API for direct execution of UPDATE or DELETE statements. Hibernate is a state management service, you don't have to think in statements to use it. JDBC is a perfect API for executing SQL statements, you can get a JDBC Connection at any time by calling session.connection(). Furthermore, the notion of mass operations conflicts with object/relational mapping for online transaction processing-oriented applications. Future versions of Hibernate may however provide special mass operation functions. See for some possible batch operation tricks." -msgstr "多くのアプリケーションでは次のことが必要になります。 それは、あるトランザクションでオブジェクトを復元し、操作するためにそれをUI層に送り、 その後に、新しいトランザクションで変更をセーブするといったことです。 並行性の高い環境で、このタイプのアプローチを使うアプリケーションでは、 \"期間の長い\" 作業単位の隔離性を保証するために、バージョンデータが通常使われます。" - -#: index.docbook:521 -msgid "Modifying detached objects" -msgstr "Hibernateは、 Session.update()Session.merge() メソッドを 使って、分離インスタンスを再追加することで、このモデルに対応します。" - -#: index.docbook:523 -msgid "Many applications need to retrieve an object in one transaction, send it to the UI layer for manipulation, then save the changes in a new transaction. Applications that use this kind of approach in a high-concurrency environment usually use versioned data to ensure isolation for the \"long\" unit of work." -msgstr "" - "" - -#: index.docbook:530 -msgid "Hibernate supports this model by providing for reattachment of detached instances using the Session.update() or Session.merge() methods:" -msgstr "識別子catId を持つ Cat が、既に secondSession でロードされていた場合は、再追加しようとしたときに、例外が投げられます。" - -#: index.docbook:536 +#. Tag: para +#: session_api.xml:523 +#, no-c-format msgid "" - "" -msgstr "同じ識別子を持つ永続インスタンスをセッションが既に保持していないことを 確信できるなら update() を使いましょう。 そして、セッションの状態を考えずに、どんな場合でも変更をマージしたい場合は、 merge() を使いましょう。 すなわち、分離オブジェクトの再追加操作が、最初に実行されることを確実にするために、 通常は update() が新しいセッションのなかで最初に呼ばれるメソッドになります。" - -#: index.docbook:538 -msgid "If the Cat with identifier catId had already been loaded by secondSession when the application tried to reattach it, an exception would have been thrown." -msgstr "分離インスタンスから到達可能な、分離インスタンスをアプリケーションは個別に update() すべきです。それは、その状態を更新したい場合に 限り ます。 遷移的な永続化 を使えば、もちろん自動化できます。 を参照してください。" - -#: index.docbook:544 -msgid "Use update() if you are sure that the session does not contain an already persistent instance with the same identifier, and merge() if you want to merge your modifications at any time without consideration of the state of the session. In other words, update() is usually the first method you would call in a fresh session, ensuring that reattachment of your detached instances is the first operation that is executed." -msgstr "メソッドでもまた、新しいセッションにオブジェクトを再関連付けできます。 しかし、分離インスタンスは無修正でなければなりません。" - -#: index.docbook:553 -msgid "The application should individually update() detached instances reachable from the given detached instance if and only if it wants their state also updated. This can be automated of course, using transitive persistence, see ." +"Many applications need to retrieve an object in one transaction, send it to " +"the UI layer for manipulation, then save the changes in a new transaction. " +"Applications that use this kind of approach in a high-concurrency " +"environment usually use versioned data to ensure isolation for the \"long\" " +"unit of work." msgstr "" - "" +"多くのアプリケーションでは次のことが必要になります。 それは、あるトランザク" +"ションでオブジェクトを復元し、操作するためにそれをUI層に送り、 その後に、新し" +"いトランザクションで変更をセーブするといったことです。 並行性の高い環境で、こ" +"のタイプのアプローチを使うアプリケーションでは、 \"期間の長い\" 作業単位の隔" +"離性を保証するために、バージョンデータが通常使われます。" -#: index.docbook:560 -msgid "The lock() method also allows an application to reassociate an object with a new session. However, the detached instance has to be unmodified!" -msgstr "lock() は、さまざまな LockMode とともに使うことができます。 詳細は、APIドキュメントとトランザクション処理の章を参照してください。 再追加のときにだけ、 lock() が使われるわけではありません。" - -#: index.docbook:565 +#. Tag: para +#: session_api.xml:530 +#, no-c-format msgid "" - "" -msgstr "期間の長い作業単位の、その他のモデルは、 で述べています。" +"Hibernate supports this model by providing for reattachment of detached " +"instances using the Session.update() or Session." +"merge() methods:" +msgstr "" +"Hibernateは、 Session.update()Session.merge()" +" メソッドを 使って、分離インスタンスを再追加することで、このモデル" +"に対応します。" -#: index.docbook:567 -msgid "Note that lock() can be used with various LockModes, see the API documentation and the chapter on transaction handling for more information. Reattachment is not the only usecase for lock()." +#. Tag: programlisting +#: session_api.xml:536 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:538 +#, no-c-format +msgid "" +"If the Cat with identifier catId had " +"already been loaded by secondSession when the application " +"tried to reattach it, an exception would have been thrown." +msgstr "" +"識別子catId を持つ Cat が、既に " +"secondSession でロードされていた場合は、再追加しようとした" +"ときに、例外が投げられます。" + +#. Tag: para +#: session_api.xml:544 +#, no-c-format +msgid "" +"Use update() if you are sure that the session does not " +"contain an already persistent instance with the same identifier, and " +"merge() if you want to merge your modifications at any " +"time without consideration of the state of the session. In other words, " +"update() is usually the first method you would call in a " +"fresh session, ensuring that reattachment of your detached instances is the " +"first operation that is executed." +msgstr "" +"同じ識別子を持つ永続インスタンスをセッションが既に保持していないことを 確信で" +"きるなら update() を使いましょう。 そして、セッションの状" +"態を考えずに、どんな場合でも変更をマージしたい場合は、 merge() を使いましょう。 すなわち、分離オブジェクトの再追加操作が、最初に実" +"行されることを確実にするために、 通常は update() が新しい" +"セッションのなかで最初に呼ばれるメソッドになります。" + +#. Tag: para +#: session_api.xml:553 +#, no-c-format +msgid "" +"The application should individually update() detached " +"instances reachable from the given detached instance if and only if it wants their state also updated. This can be automated of " +"course, using transitive persistence, see ." +msgstr "" +"分離インスタンスから到達可能な、分離インスタンスをアプリケーションは個別に " +"update() すべきです。それは、その状態を更新したい場合に " +"限り ます。 遷移的な永続化 を使え" +"ば、もちろん自動化できます。 を参" +"照してください。" + +#. Tag: para +#: session_api.xml:560 +#, no-c-format +msgid "" +"The lock() method also allows an application to " +"reassociate an object with a new session. However, the detached instance has " +"to be unmodified!" +msgstr "" +"メソッドでもまた、新しいセッションにオブジェクトを再関連付けできます。 しか" +"し、分離インスタンスは無修正でなければなりません。" + +#. Tag: programlisting +#: session_api.xml:565 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:567 +#, no-c-format +msgid "" +"Note that lock() can be used with various " +"LockModes, see the API documentation and the chapter on " +"transaction handling for more information. Reattachment is not the only " +"usecase for lock()." +msgstr "" +"lock() は、さまざまな LockMode とともに" +"使うことができます。 詳細は、APIドキュメントとトランザクション処理の章を参照" +"してください。 再追加のときにだけ、 lock() が使われるわけ" +"ではありません。" + +#. Tag: para +#: session_api.xml:574 +#, no-c-format +msgid "" +"Other models for long units of work are discussed in ." +msgstr "" +"期間の長い作業単位の、その他のモデルは、 で述べています。" + +#. Tag: title +#: session_api.xml:581 +#, no-c-format +msgid "Automatic state detection" msgstr "自動的な状態検出" -#: index.docbook:574 -msgid "Other models for long units of work are discussed in ." -msgstr "Hibernateのユーザは次の2つのケースのどちらにも使える汎用的なメソッドを要求していました。 それは、新しい識別子を生成して一時的なインスタンスをセーブすることと、 その時点の識別子と関連づいている分離インスタンスを更新/再追加することのできるメソッドです。 saveOrUpdate() はこのような機能を実現したメソッドです。" - -#: index.docbook:581 -msgid "Automatic state detection" -msgstr "" - "" - -#: index.docbook:583 -msgid "Hibernate users have requested a general purpose method that either saves a transient instance by generating a new identifier or updates/reattaches the detached instances associated with its current identifier. The saveOrUpdate() method implements this functionality." -msgstr "saveOrUpdate() の使用方法と意味は、 新しいユーザにとって混乱を招くかもしれません。 まず第一に、あるセッションで使用したインスタンスを別の新しいセッションで使おうとしない限り、 update()saveOrUpdate()merge() を使う必要はありません。 アプリケーション全体を通じて、これらのメソッドを全く使わないこともあります。" - -#: index.docbook:590 +#. Tag: para +#: session_api.xml:583 +#, no-c-format msgid "" - "" -msgstr "通常、 update()saveOrUpdate() は次のシナリオで 使われます。" +"Hibernate users have requested a general purpose method that either saves a " +"transient instance by generating a new identifier or updates/reattaches the " +"detached instances associated with its current identifier. The " +"saveOrUpdate() method implements this functionality." +msgstr "" +"Hibernateのユーザは次の2つのケースのどちらにも使える汎用的なメソッドを要求し" +"ていました。 それは、新しい識別子を生成して一時的なインスタンスをセーブするこ" +"とと、 その時点の識別子と関連づいている分離インスタンスを更新/再追加すること" +"のできるメソッドです。 saveOrUpdate() はこのような機能を実" +"現したメソッドです。" -#: index.docbook:592 -msgid "The usage and semantics of saveOrUpdate() seems to be confusing for new users. Firstly, so long as you are not trying to use instances from one session in another new session, you should not need to use update(), saveOrUpdate(), or merge(). Some whole applications will never use either of these methods." +#. Tag: programlisting +#: session_api.xml:590 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:592 +#, no-c-format +msgid "" +"The usage and semantics of saveOrUpdate() seems to be " +"confusing for new users. Firstly, so long as you are not trying to use " +"instances from one session in another new session, you should not need to " +"use update(), saveOrUpdate(), or " +"merge(). Some whole applications will never use either of " +"these methods." +msgstr "" +"saveOrUpdate() の使用方法と意味は、 新しいユーザにとって混" +"乱を招くかもしれません。 まず第一に、あるセッションで使用したインスタンスを別" +"の新しいセッションで使おうとしない限り、 update() や " +"saveOrUpdate()merge() を使う必要は" +"ありません。 アプリケーション全体を通じて、これらのメソッドを全く使わないこと" +"もあります。" + +#. Tag: para +#: session_api.xml:600 +#, no-c-format +msgid "" +"Usually update() or saveOrUpdate() are " +"used in the following scenario:" +msgstr "" +"通常、 update()saveOrUpdate() は次" +"のシナリオで 使われます。" + +#. Tag: para +#: session_api.xml:607 +#, no-c-format +msgid "the application loads an object in the first session" msgstr "アプリケーションが最初のセッションでオブジェクトをロードします。" -#: index.docbook:600 -msgid "Usually update() or saveOrUpdate() are used in the following scenario:" +#. Tag: para +#: session_api.xml:612 +#, no-c-format +msgid "the object is passed up to the UI tier" msgstr "オブジェクトがUI層に送られます。" -#: index.docbook:607 -msgid "the application loads an object in the first session" +#. Tag: para +#: session_api.xml:617 +#, no-c-format +msgid "some modifications are made to the object" msgstr "オブジェクトに対して変更が加えられます。" -#: index.docbook:612 -msgid "the object is passed up to the UI tier" +#. Tag: para +#: session_api.xml:622 +#, no-c-format +msgid "the object is passed back down to the business logic tier" msgstr "オブジェクトがビジネスロジック層に送られます。" -#: index.docbook:617 -msgid "some modifications are made to the object" -msgstr "アプリケーションは、2番目のセッションで update() を呼ぶことで、これらの変更を永続化します。" +#. Tag: para +#: session_api.xml:627 +#, no-c-format +msgid "" +"the application persists these modifications by calling update() in a second session" +msgstr "" +"アプリケーションは、2番目のセッションで update() を呼ぶこ" +"とで、これらの変更を永続化します。" -#: index.docbook:622 -msgid "the object is passed back down to the business logic tier" +#. Tag: para +#: session_api.xml:634 +#, no-c-format +msgid "saveOrUpdate() does the following:" msgstr "saveOrUpdate() は以下のことを行います。" -#: index.docbook:627 -msgid "the application persists these modifications by calling update() in a second session" -msgstr "オブジェクトがこのセッションで、すでに永続化されていれば、何もしません。" - -#: index.docbook:634 -msgid "saveOrUpdate() does the following:" -msgstr "そのセッションに関連づいている別のオブジェクトが同じ識別子を持っているなら、 例外を投げます。" - -#: index.docbook:640 +#. Tag: para +#: session_api.xml:640 +#, no-c-format msgid "if the object is already persistent in this session, do nothing" -msgstr "オブジェクトの識別子が値を持たないならば、 save() します。" +msgstr "" +"オブジェクトがこのセッションで、すでに永続化されていれば、何もしません。" -#: index.docbook:645 -msgid "if another object associated with the session has the same identifier, throw an exception" -msgstr "オブジェクトの識別子が値を持ち、その値が新たにインスタンス化されたオブジェクトのための値である場合、 そのオブジェクトを save() します。" +#. Tag: para +#: session_api.xml:645 +#, no-c-format +msgid "" +"if another object associated with the session has the same identifier, throw " +"an exception" +msgstr "" +"そのセッションに関連づいている別のオブジェクトが同じ識別子を持っているなら、 " +"例外を投げます。" -#: index.docbook:651 +#. Tag: para +#: session_api.xml:651 +#, no-c-format msgid "if the object has no identifier property, save() it" -msgstr "オブジェクトが( <version><timestamp> によって) バージョンづけされていて、バージョンのプロパティが値を持ち、 その値が新しくインスタンス化されたオブジェクトのための値である場合、 そのオブジェクトを save() します。" +msgstr "" +"オブジェクトの識別子が値を持たないならば、 save() します。" -#: index.docbook:656 -msgid "if the object's identifier has the value assigned to a newly instantiated object, save() it" -msgstr "そうでない場合は、そのオブジェクトを update() します。" +#. Tag: para +#: session_api.xml:656 +#, no-c-format +msgid "" +"if the object's identifier has the value assigned to a newly instantiated " +"object, save() it" +msgstr "" +"オブジェクトの識別子が値を持ち、その値が新たにインスタンス化されたオブジェク" +"トのための値である場合、 そのオブジェクトを save() しま" +"す。" -#: index.docbook:662 -msgid "if the object is versioned (by a <version> or <timestamp>), and the version property value is the same value assigned to a newly instantiated object, save() it" +#. Tag: para +#: session_api.xml:662 +#, no-c-format +msgid "" +"if the object is versioned (by a <version> or " +"<timestamp>), and the version property value is the " +"same value assigned to a newly instantiated object, save() it" +msgstr "" +"オブジェクトが( <version><" +"timestamp> によって) バージョンづけされていて、バージョンのプロ" +"パティが値を持ち、 その値が新しくインスタンス化されたオブジェクトのための値で" +"ある場合、 そのオブジェクトを save() します。" + +#. Tag: para +#: session_api.xml:670 +#, no-c-format +msgid "otherwise update() the object" +msgstr "" +"そうでない場合は、そのオブジェクトを update() します。" + +#. Tag: para +#: session_api.xml:676 +#, no-c-format +msgid "and merge() is very different:" msgstr "そして、 merge() は以下のようにとても異なります。" -#: index.docbook:670 -msgid "otherwise update() the object" -msgstr "同じ識別子を持つ永続化インスタンスがその時点でセッションと関連付いているならば、 引数で受け取ったオブジェクトの状態を永続化インスタンスにコピーします。" +#. Tag: para +#: session_api.xml:682 +#, no-c-format +msgid "" +"if there is a persistent instance with the same identifier currently " +"associated with the session, copy the state of the given object onto the " +"persistent instance" +msgstr "" +"同じ識別子を持つ永続化インスタンスがその時点でセッションと関連付いているなら" +"ば、 引数で受け取ったオブジェクトの状態を永続化インスタンスにコピーします。" -#: index.docbook:676 -msgid "and merge() is very different:" -msgstr "永続化インスタンスがその時点でセッションに関連付いていないなら、 データベースからそれをロードするか、あるいは、新しい永続化インスタンスを作成します。" +#. Tag: para +#: session_api.xml:689 +#, no-c-format +msgid "" +"if there is no persistent instance currently associated with the session, " +"try to load it from the database, or create a new persistent instance" +msgstr "" +"永続化インスタンスがその時点でセッションに関連付いていないなら、 データベース" +"からそれをロードするか、あるいは、新しい永続化インスタンスを作成します。" -#: index.docbook:682 -msgid "if there is a persistent instance with the same identifier currently associated with the session, copy the state of the given object onto the persistent instance" +#. Tag: para +#: session_api.xml:695 +#, no-c-format +msgid "the persistent instance is returned" msgstr "永続化インスタンスが返されます。" -#: index.docbook:689 -msgid "if there is no persistent instance currently associated with the session, try to load it from the database, or create a new persistent instance" -msgstr "引数として与えたインスタンスはセッションと関連を持ちません。 それは、分離状態のままです。" +#. Tag: para +#: session_api.xml:700 +#, no-c-format +msgid "" +"the given instance does not become associated with the session, it remains " +"detached" +msgstr "" +"引数として与えたインスタンスはセッションと関連を持ちません。 それは、分離状態" +"のままです。" -#: index.docbook:695 -msgid "the persistent instance is returned" +#. Tag: title +#: session_api.xml:710 +#, no-c-format +msgid "Deleting persistent objects" msgstr "永続オブジェクトの削除" -#: index.docbook:700 -msgid "the given instance does not become associated with the session, it remains detached" -msgstr "Session.delete() はオブジェクトの状態をデータベースから削除します。 もちろん、削除したオブジェクトをアプリケーションが保持したままでもよいです。 そのため、 delete() は永続インスタンスを一時的にするものと考えるのが一番です。" +#. Tag: para +#: session_api.xml:712 +#, no-c-format +msgid "" +"Session.delete() will remove an object's state from the " +"database. Of course, your application might still hold a reference to a " +"deleted object. It's best to think of delete() as making " +"a persistent instance transient." +msgstr "" +"Session.delete() はオブジェクトの状態をデータベースから削" +"除します。 もちろん、削除したオブジェクトをアプリケーションが保持したままでも" +"よいです。 そのため、 delete() は永続インスタンスを一時的" +"にするものと考えるのが一番です。" -#: index.docbook:710 -msgid "Deleting persistent objects" -msgstr "" - -#: index.docbook:712 -msgid "Session.delete() will remove an object's state from the database. Of course, your application might still hold a reference to a deleted object. It's best to think of delete() as making a persistent instance transient." -msgstr "外部キー制約に違反するリスクもなく、好きな順番でオブジェクトを削除することができます。 ただし、間違った順番でオブジェクトを削除すると、外部キーカラムの NOT NULL 制約に違反する可能性があります。 例えば、親オブジェクトを削除したときに、子供オブジェクトを削除し忘れた場合です。" - -#: index.docbook:719 +#. Tag: programlisting +#: session_api.xml:719 +#, no-c-format msgid "" +msgstr "" + +#. Tag: para +#: session_api.xml:721 +#, no-c-format +msgid "" +"You may delete objects in any order you like, without risk of foreign key " +"constraint violations. It is still possible to violate a NOT NULL constraint on a foreign key column by deleting objects in the wrong " +"order, e.g. if you delete the parent, but forget to delete the children." +msgstr "" +"外部キー制約に違反するリスクもなく、好きな順番でオブジェクトを削除することが" +"できます。 ただし、間違った順番でオブジェクトを削除すると、外部キーカラムの " +"NOT NULL 制約に違反する可能性があります。 例えば、親オブ" +"ジェクトを削除したときに、子供オブジェクトを削除し忘れた場合です。" + +#. Tag: title +#: session_api.xml:732 +#, no-c-format +msgid "Replicating object between two different datastores" msgstr "異なる二つのデータストア間でのオブジェクトのレプリケーション" -#: index.docbook:721 -msgid "You may delete objects in any order you like, without risk of foreign key constraint violations. It is still possible to violate a NOT NULL constraint on a foreign key column by deleting objects in the wrong order, e.g. if you delete the parent, but forget to delete the children." -msgstr "永続インスタンスのグラフを別のデータストアに永続化する場合に、 識別子の値を再生成せずにすむと便利な場合があります。" - -#: index.docbook:732 -msgid "Replicating object between two different datastores" -msgstr "" - "" - -#: index.docbook:734 -msgid "It is occasionally useful to be able to take a graph of persistent instances and make them persistent in a different datastore, without regenerating identifier values." -msgstr "レプリケーション先のデータベースに行が既にある場合、 replicate() が衝突をどのように扱うかを ReplicationMode で指定します。" - -#: index.docbook:740 +#. Tag: para +#: session_api.xml:734 +#, no-c-format msgid "" - "" -msgstr "ReplicationMode.IGNORE - 同じ識別子を持つ行がデータベースに存在するなら、 そのオブジェクトを無視します。" +"It is occasionally useful to be able to take a graph of persistent instances " +"and make them persistent in a different datastore, without regenerating " +"identifier values." +msgstr "" +"永続インスタンスのグラフを別のデータストアに永続化する場合に、 識別子の値を再" +"生成せずにすむと便利な場合があります。" -#: index.docbook:742 -msgid "The ReplicationMode determines how replicate() will deal with conflicts with existing rows in the database." -msgstr "ReplicationMode.OVERWRITE - 同じ識別子を持つ既存の行を すべて上書きします。" +#. Tag: programlisting +#: session_api.xml:740 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:749 -msgid "ReplicationMode.IGNORE - ignore the object when there is an existing database row with the same identifier" -msgstr "ReplicationMode.EXCEPTION - 同じ識別子を持つ行がデータベースに存在するなら、 例外を投げます。" +#. Tag: para +#: session_api.xml:742 +#, no-c-format +msgid "" +"The ReplicationMode determines how replicate() will deal with conflicts with existing rows in the database." +msgstr "" +"レプリケーション先のデータベースに行が既にある場合、 replicate() が衝突をどのように扱うかを ReplicationMode で指定" +"します。" -#: index.docbook:755 -msgid "ReplicationMode.OVERWRITE - overwrite any existing database row with the same identifier" -msgstr "ReplicationMode.LATEST_VERSION - 行に保存されているバージョン番号が、 引数のオブジェクトのバージョン番号より古いならば、その行を上書きします。" +#. Tag: para +#: session_api.xml:749 +#, no-c-format +msgid "" +"ReplicationMode.IGNORE - ignore the object when there is " +"an existing database row with the same identifier" +msgstr "" +"ReplicationMode.IGNORE - 同じ識別子を持つ行がデータベース" +"に存在するなら、 そのオブジェクトを無視します。" -#: index.docbook:761 -msgid "ReplicationMode.EXCEPTION - throw an exception if there is an existing database row with the same identifier" -msgstr "次のようなケースで、この機能を使用します。 異なるデータベースインスタンスに入れられたデータの同期、 製品更新時におけるシステム設定情報の更新、非ACIDトランザクションのなかで加えられた変更のロールバックなどです。" +#. Tag: para +#: session_api.xml:755 +#, no-c-format +msgid "" +"ReplicationMode.OVERWRITE - overwrite any existing " +"database row with the same identifier" +msgstr "" +"ReplicationMode.OVERWRITE - 同じ識別子を持つ既存の行を す" +"べて上書きします。" -#: index.docbook:767 -msgid "ReplicationMode.LATEST_VERSION - overwrite the row if its version number is earlier than the version number of the object, or ignore the object otherwise" +#. Tag: para +#: session_api.xml:761 +#, no-c-format +msgid "" +"ReplicationMode.EXCEPTION - throw an exception if there " +"is an existing database row with the same identifier" +msgstr "" +"ReplicationMode.EXCEPTION - 同じ識別子を持つ行がデータベー" +"スに存在するなら、 例外を投げます。" + +#. Tag: para +#: session_api.xml:767 +#, no-c-format +msgid "" +"ReplicationMode.LATEST_VERSION - overwrite the row if its " +"version number is earlier than the version number of the object, or ignore " +"the object otherwise" +msgstr "" +"ReplicationMode.LATEST_VERSION - 行に保存されているバー" +"ジョン番号が、 引数のオブジェクトのバージョン番号より古いならば、その行を上書" +"きします。" + +#. Tag: para +#: session_api.xml:775 +#, no-c-format +msgid "" +"Usecases for this feature include reconciling data entered into different " +"database instances, upgrading system configuration information during " +"product upgrades, rolling back changes made during non-ACID transactions and " +"more." +msgstr "" +"次のようなケースで、この機能を使用します。 異なるデータベースインスタンスに入" +"れられたデータの同期、 製品更新時におけるシステム設定情報の更新、非ACIDトラン" +"ザクションのなかで加えられた変更のロールバックなどです。" + +#. Tag: title +#: session_api.xml:784 +#, no-c-format +msgid "Flushing the Session" msgstr "セッションのフラッシュ" -#: index.docbook:775 -msgid "Usecases for this feature include reconciling data entered into different database instances, upgrading system configuration information during product upgrades, rolling back changes made during non-ACID transactions and more." -msgstr "JDBCコネクションの状態とメモリ上のオブジェクトの状態を同期させるために必要な SQL文を Session が実行することがときどきあります。 この処理 flush は、デフォルトでは次のときに起こります。" +#. Tag: para +#: session_api.xml:786 +#, no-c-format +msgid "" +"From time to time the Session will execute the SQL " +"statements needed to synchronize the JDBC connection's state with the state " +"of objects held in memory. This process, flush, occurs " +"by default at the following points" +msgstr "" +"JDBCコネクションの状態とメモリ上のオブジェクトの状態を同期させるために必要な " +"SQL文を Session が実行することがときどきあります。 この処" +"理 flush は、デフォルトでは次のときに起こります。" -#: index.docbook:784 -msgid "Flushing the Session" +#. Tag: para +#: session_api.xml:795 +#, no-c-format +msgid "before some query executions" msgstr "クエリを実行する前" -#: index.docbook:786 -msgid "From time to time the Session will execute the SQL statements needed to synchronize the JDBC connection's state with the state of objects held in memory. This process, flush, occurs by default at the following points" +#. Tag: para +#: session_api.xml:800 +#, no-c-format +msgid "from org.hibernate.Transaction.commit()" msgstr "org.hibernate.Transaction.commit() を実行したとき" -#: index.docbook:795 -msgid "before some query executions" +#. Tag: para +#: session_api.xml:805 +#, no-c-format +msgid "from Session.flush()" msgstr "Session.flush() を実行したとき" -#: index.docbook:800 -msgid "from org.hibernate.Transaction.commit()" +#. Tag: para +#: session_api.xml:811 +#, no-c-format +msgid "The SQL statements are issued in the following order" msgstr "SQL文は以下の順番で発行されます。" -#: index.docbook:805 -msgid "from Session.flush()" -msgstr "すべてのエンティティの挿入。これは、 Session.save() を使ってセーブした オブジェクトの順に実行していきます。" +#. Tag: para +#: session_api.xml:817 +#, no-c-format +msgid "" +"all entity insertions, in the same order the corresponding objects were " +"saved using Session.save()" +msgstr "" +"すべてのエンティティの挿入。これは、 Session.save() を使っ" +"てセーブした オブジェクトの順に実行していきます。" -#: index.docbook:811 -msgid "The SQL statements are issued in the following order" +#. Tag: para +#: session_api.xml:823 +#, no-c-format +msgid "all entity updates" msgstr "すべてのエンティティの更新" -#: index.docbook:817 -msgid "all entity insertions, in the same order the corresponding objects were saved using Session.save()" +#. Tag: para +#: session_api.xml:828 +#, no-c-format +msgid "all collection deletions" msgstr "すべてのコレクションの削除" -#: index.docbook:823 -msgid "all entity updates" +#. Tag: para +#: session_api.xml:833 +#, no-c-format +msgid "all collection element deletions, updates and insertions" msgstr "すべてのコレクションの要素に対する削除、更新、挿入" -#: index.docbook:828 -msgid "all collection deletions" +#. Tag: para +#: session_api.xml:838 +#, no-c-format +msgid "all collection insertions" msgstr "すべてのコレクションの挿入" -#: index.docbook:833 -msgid "all collection element deletions, updates and insertions" -msgstr "すべてのエンティティの削除。これは、Session.delete() を使って 削除したオブジェクトの順に実行していきます。" - -#: index.docbook:838 -msgid "all collection insertions" -msgstr "(1つ例外があります。 native ID 生成を使ったオブジェクトは、 それらがセーブされたときに挿入されます。)" - -#: index.docbook:843 -msgid "all entity deletions, in the same order the corresponding objects were deleted using Session.delete()" -msgstr "明示的に flush() するときを除いて、 いつ Session がJDBCをコールするのかについて 絶対的な保証はありません。ただし、それらが実行される 順番 だけは 保証されます。 また、Hibernate は、 Query.list(..) が古いデータや間違ったデータ返さないことを 保証しています。" - -#: index.docbook:850 -msgid "(An exception is that objects using native ID generation are inserted when they are saved.)" -msgstr "フラッシュが頻繁に起こらないようにデフォルトの振る舞いを変えることができます。 FlushMode クラスは3つの異なるモードを定義します。 それは、コミット時にだけフラッシュするモード (Hibernateの Transaction APIが使われる場合だけです)、 説明のあった処理順に基づいて自動でフラッシュするモード、 flush() が明示的に呼ばれない限りフラッシュしないモードの3つです。 最後のモードは、作業単位が長期間に及ぶ場合に役に立ちます ( を参照してください)。" - -#: index.docbook:855 -msgid "Except when you explicity flush(), there are absolutely no guarantees about when the Session executes the JDBC calls, only the order in which they are executed. However, Hibernate does guarantee that the Query.list(..) will never return stale data; nor will they return the wrong data." -msgstr "" - "" - -#: index.docbook:863 -msgid "It is possible to change the default behavior so that flush occurs less frequently. The FlushMode class defines three different modes: only flush at commit time (and only when the Hibernate Transaction API is used), flush automatically using the explained routine, or never flush unless flush() is called explicitly. The last mode is useful for long running units of work, where a Session is kept open and disconnected for a long time (see )." -msgstr "フラッシュのとき、例外が発生するかもしれません。 (例えば、DML操作が制約を違反するような場合です。) 例外処理を理解するためには、Hibernateのトランザクションの振る舞いを理解する必要があるため、 で説明します。" - -#: index.docbook:873 +#. Tag: para +#: session_api.xml:843 +#, no-c-format msgid "" - "" +"all entity deletions, in the same order the corresponding objects were " +"deleted using Session.delete()" +msgstr "" +"すべてのエンティティの削除。これは、Session.delete() を" +"使って 削除したオブジェクトの順に実行していきます。" + +#. Tag: para +#: session_api.xml:850 +#, no-c-format +msgid "" +"(An exception is that objects using native ID generation " +"are inserted when they are saved.)" +msgstr "" +"(1つ例外があります。 native ID 生成を使ったオブジェクト" +"は、 それらがセーブされたときに挿入されます。)" + +#. Tag: para +#: session_api.xml:855 +#, no-c-format +msgid "" +"Except when you explicity flush(), there are absolutely " +"no guarantees about when the Session " +"executes the JDBC calls, only the order in which they " +"are executed. However, Hibernate does guarantee that the Query.list" +"(..) will never return stale data; nor will they return the wrong " +"data." +msgstr "" +"明示的に flush() するときを除いて、 いつSession がJDBCをコールするのかについて 絶対的な保" +"証はありません。ただし、それらが実行される 順番 だけは " +"保証されます。 また、Hibernate は、 Query.list(..) が古い" +"データや間違ったデータ返さないことを 保証しています。" + +#. Tag: para +#: session_api.xml:863 +#, no-c-format +msgid "" +"It is possible to change the default behavior so that flush occurs less " +"frequently. The FlushMode class defines three different " +"modes: only flush at commit time (and only when the Hibernate " +"Transaction API is used), flush automatically using the " +"explained routine, or never flush unless flush() is " +"called explicitly. The last mode is useful for long running units of work, " +"where a Session is kept open and disconnected for a long " +"time (see )." +msgstr "" +"フラッシュが頻繁に起こらないようにデフォルトの振る舞いを変えることができま" +"す。 FlushMode クラスは3つの異なるモードを定義します。 そ" +"れは、コミット時にだけフラッシュするモード (Hibernateの " +"Transaction APIが使われる場合だけです)、 説明のあった処理" +"順に基づいて自動でフラッシュするモード、 flush() が明示的" +"に呼ばれない限りフラッシュしないモードの3つです。 最後のモードは、作業単位が" +"長期間に及ぶ場合に役に立ちます ( を参照してください)。" + +#. Tag: programlisting +#: session_api.xml:873 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: session_api.xml:875 +#, no-c-format +msgid "" +"During flush, an exception might occur (e.g. if a DML operation violates a " +"constraint). Since handling exceptions involves some understanding of " +"Hibernate's transactional behavior, we discuss it in ." +msgstr "" +"フラッシュのとき、例外が発生するかもしれません。 (例えば、DML操作が制約を違" +"反するような場合です。) 例外処理を理解するためには、Hibernateのトランザク" +"ションの振る舞いを理解する必要があるため、 " +"で説明します。" + +#. Tag: title +#: session_api.xml:884 +#, no-c-format +msgid "Transitive persistence" msgstr "連鎖的な永続化" -#: index.docbook:875 -msgid "During flush, an exception might occur (e.g. if a DML operation violates a constraint). Since handling exceptions involves some understanding of Hibernate's transactional behavior, we discuss it in ." -msgstr "個々のオブジェクトをセーブしたり、削除したり、再追加したりすることは かなり面倒です。特に、関連するオブジェクトを扱うような場合には際立ちます。 よくあるのは、親子関係を扱うケースです。 以下の例を考えてみましょう。" +#. Tag: para +#: session_api.xml:886 +#, no-c-format +msgid "" +"It is quite cumbersome to save, delete, or reattach individual objects, " +"especially if you deal with a graph of associated objects. A common case is " +"a parent/child relationship. Consider the following example:" +msgstr "" +"個々のオブジェクトをセーブしたり、削除したり、再追加したりすることは かなり面" +"倒です。特に、関連するオブジェクトを扱うような場合には際立ちます。 よくあるの" +"は、親子関係を扱うケースです。 以下の例を考えてみましょう。" -#: index.docbook:884 -msgid "Transitive persistence" -msgstr "もし、親子関係の子が値型なら(例えば、住所や文字列のコレクション)、 それらのライフサイクルは親に依存しており、便利な状態変化の\"カスケード\"を使うために、 追加の作業は必要はありません。 親がセーブされたとき、値型の子オブジェクトも同じようにセーブされますし、 親が削除されたときは、子も削除されます。その他の操作も同じです。 コレクションから1つの子を削除するような操作でもうまくいきます。 すなわち、Hibernateはこの削除操作を検出すると、 値型のオブジェクトは参照を共有できないので、データベースからその子供を削除します。" +#. Tag: para +#: session_api.xml:892 +#, no-c-format +msgid "" +"If the children in a parent/child relationship would be value typed (e.g. a " +"collection of addresses or strings), their life cycle would depend on the " +"parent and no further action would be required for convenient \"cascading\" " +"of state changes. When the parent is saved, the value-typed child objects " +"are saved as well, when the parent is deleted, the children will be deleted, " +"etc. This even works for operations such as the removal of a child from the " +"collection; Hibernate will detect this and, since value-typed objects can't " +"have shared references, delete the child from the database." +msgstr "" +"もし、親子関係の子が値型なら(例えば、住所や文字列のコレクション)、 それらの" +"ライフサイクルは親に依存しており、便利な状態変化の\"カスケード\"を使うため" +"に、 追加の作業は必要はありません。 親がセーブされたとき、値型の子オブジェク" +"トも同じようにセーブされますし、 親が削除されたときは、子も削除されます。その" +"他の操作も同じです。 コレクションから1つの子を削除するような操作でもうまくい" +"きます。 すなわち、Hibernateはこの削除操作を検出すると、 値型のオブジェクトは" +"参照を共有できないので、データベースからその子供を削除します。" -#: index.docbook:886 -msgid "It is quite cumbersome to save, delete, or reattach individual objects, especially if you deal with a graph of associated objects. A common case is a parent/child relationship. Consider the following example:" -msgstr "ここで、親と子が値型でなくエンティティであるとして同じシナリオを考えてみましょう。 (例えば、カテゴリーと品目の関係や親と子の猫の関係です。) エンティティは、それ自身がライフサイクルを持ち、参照の共有をサポートします。 (そのため、コレクションからエンティティを削除することは、 エンティティ自身の削除を意味しません。) また、エンティティは、デフォルトでは、関連する他のエンティティへ 状態をカスケードすることはありません。 Hibernateは 到達可能性による永続化 をデフォルトでは実行しません。" +#. Tag: para +#: session_api.xml:903 +#, no-c-format +msgid "" +"Now consider the same scenario with parent and child objects being entities, " +"not value-types (e.g. categories and items, or parent and child cats). " +"Entities have their own life cycle, support shared references (so removing " +"an entity from the collection does not mean it can be deleted), and there is " +"by default no cascading of state from one entity to any other associated " +"entities. Hibernate does not implement persistence by " +"reachability by default." +msgstr "" +"ここで、親と子が値型でなくエンティティであるとして同じシナリオを考えてみま" +"しょう。 (例えば、カテゴリーと品目の関係や親と子の猫の関係です。) エンティ" +"ティは、それ自身がライフサイクルを持ち、参照の共有をサポートします。 (そのた" +"め、コレクションからエンティティを削除することは、 エンティティ自身の削除を意" +"味しません。) また、エンティティは、デフォルトでは、関連する他のエンティティ" +"へ 状態をカスケードすることはありません。 Hibernateは 到達可能性に" +"よる永続化 をデフォルトでは実行しません。" -#: index.docbook:892 -msgid "If the children in a parent/child relationship would be value typed (e.g. a collection of addresses or strings), their life cycle would depend on the parent and no further action would be required for convenient \"cascading\" of state changes. When the parent is saved, the value-typed child objects are saved as well, when the parent is deleted, the children will be deleted, etc. This even works for operations such as the removal of a child from the collection; Hibernate will detect this and, since value-typed objects can't have shared references, delete the child from the database." -msgstr "HibernateのSessionの基本操作( persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), evict(), replicate() が含まれます)に対して、 それぞれに対応するカスケードスタイルがあります。 それぞれのカスケードスタイルには、 create, merge, save-update, delete, lock, refresh, evict, replicate という名前がついています。 もし、関連に沿ってカスケードさせたい操作があるなら、マッピングファイルにそう指定しなければなりません。 例えば、以下のようにします。" +#. Tag: para +#: session_api.xml:912 +#, no-c-format +msgid "" +"For each basic operation of the Hibernate session - including " +"persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), " +"evict(), replicate() - there is a corresponding cascade style. " +"Respectively, the cascade styles are named create, merge, save-" +"update, delete, lock, refresh, evict, replicate. If you want an " +"operation to be cascaded along an association, you must indicate that in the " +"mapping document. For example:" +msgstr "" +"HibernateのSessionの基本操作( persist(), merge(), saveOrUpdate(), " +"delete(), lock(), refresh(), evict(), replicate() が含まれます)に" +"対して、 それぞれに対応するカスケードスタイルがあります。 それぞれのカスケー" +"ドスタイルには、 create, merge, save-update, delete, lock, refresh, " +"evict, replicate という名前がついています。 もし、関連に沿ってカス" +"ケードさせたい操作があるなら、マッピングファイルにそう指定しなければなりませ" +"ん。 例えば、以下のようにします。" -#: index.docbook:903 -msgid "Now consider the same scenario with parent and child objects being entities, not value-types (e.g. categories and items, or parent and child cats). Entities have their own life cycle, support shared references (so removing an entity from the collection does not mean it can be deleted), and there is by default no cascading of state from one entity to any other associated entities. Hibernate does not implement persistence by reachability by default." -msgstr "]]>" +#. Tag: programlisting +#: session_api.xml:921 +#, no-c-format +msgid "]]>" +msgstr "" -#: index.docbook:912 -msgid "For each basic operation of the Hibernate session - including persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), evict(), replicate() - there is a corresponding cascade style. Respectively, the cascade styles are named create, merge, save-update, delete, lock, refresh, evict, replicate. If you want an operation to be cascaded along an association, you must indicate that in the mapping document. For example:" +#. Tag: para +#: session_api.xml:923 +#, no-c-format +msgid "Cascade styles my be combined:" msgstr "カスケードスタイルは、組み合わせることができます。" -#: index.docbook:921 -msgid "]]>" -msgstr "]]>" +#. Tag: programlisting +#: session_api.xml:927 +#, no-c-format +msgid "" +"]]>" +msgstr "" -#: index.docbook:923 -msgid "Cascade styles my be combined:" -msgstr "すべての 操作を関連に沿ってカスケードするよう指定するときは、 cascade=\"all\" を使います。 デフォルトの cascade=\"none\" は、どの操作もカスケードしないことを意味します。" +#. Tag: para +#: session_api.xml:929 +#, no-c-format +msgid "" +"You may even use cascade=\"all\" to specify that " +"all operations should be cascaded along the " +"association. The default cascade=\"none\" specifies that " +"no operations are to be cascaded." +msgstr "" +"すべての 操作を関連に沿ってカスケードするよう指定すると" +"きは、 cascade=\"all\" を使います。 デフォルトの " +"cascade=\"none\" は、どの操作もカスケードしないことを意味" +"します。" -#: index.docbook:927 -msgid "]]>" -msgstr "特殊なカスケードスタイル delete-orphan は、一対多関連にだけ 適用できます。 これは、関連から削除された子供のオブジェクトに対して、 delete() 操作が適用されることを意味します。" +#. Tag: para +#: session_api.xml:935 +#, no-c-format +msgid "" +"A special cascade style, delete-orphan, applies only to " +"one-to-many associations, and indicates that the delete() " +"operation should be applied to any child object that is removed from the " +"association." +msgstr "" +"特殊なカスケードスタイル delete-orphan は、一対多関連にだ" +"け 適用できます。 これは、関連から削除された子供のオブジェクトに対して、 " +"delete() 操作が適用されることを意味します。" -#: index.docbook:929 -msgid "You may even use cascade=\"all\" to specify that all operations should be cascaded along the association. The default cascade=\"none\" specifies that no operations are to be cascaded." +#. Tag: para +#: session_api.xml:942 +#, no-c-format +msgid "Recommendations:" msgstr "おすすめ:" -#: index.docbook:935 -msgid "A special cascade style, delete-orphan, applies only to one-to-many associations, and indicates that the delete() operation should be applied to any child object that is removed from the association." -msgstr "普通、 <many-to-one><many-to-many> 関連に対しては、 カスケードを設定する意味はありません。 <one-to-one><one-to-many> 関連に対しては、 カスケードが役に立つことがあります。" +#. Tag: para +#: session_api.xml:948 +#, no-c-format +msgid "" +"It doesn't usually make sense to enable cascade on a <many-to-" +"one> or <many-to-many> association. " +"Cascade is often useful for <one-to-one> and " +"<one-to-many> associations." +msgstr "" +"普通、 <many-to-one><many-to-" +"many> 関連に対しては、 カスケードを設定する意味はありません。 " +"<one-to-one><one-to-many> 関連に対しては、 カスケードが役に立つことがあります。" -#: index.docbook:942 -msgid "Recommendations:" -msgstr "子供オブジェクトの寿命が親オブジェクトの寿命に制限を受けるならば、 cascade=\"all,delete-orphan\" を指定し、 子供オブジェクトを ライフサイクルオブジェクト にします。" +#. Tag: para +#: session_api.xml:956 +#, no-c-format +msgid "" +"If the child object's lifespan is bounded by the lifespan of the parent " +"object, make it a life cycle object by specifying " +"cascade=\"all,delete-orphan\"." +msgstr "" +"子供オブジェクトの寿命が親オブジェクトの寿命に制限を受けるならば、 " +"cascade=\"all,delete-orphan\" を指定し、 子供オブジェクト" +"を ライフサイクルオブジェクト にします。" -#: index.docbook:948 -msgid "It doesn't usually make sense to enable cascade on a <many-to-one> or <many-to-many> association. Cascade is often useful for <one-to-one> and <one-to-many> associations." -msgstr ". それ以外の場合は、カスケードはほとんど必要ないでしょう。 しかし、同じトランザクションのなかで親と子が一緒に動作することが多いと思い、 いくらかのコードを書く手間を省きたいのであれば、 cascade=\"persist,merge,save-update\" を使うことを考えましょう。" +#. Tag: para +#: session_api.xml:963 +#, no-c-format +msgid "" +"Otherwise, you might not need cascade at all. But if you think that you will " +"often be working with the parent and children together in the same " +"transaction, and you want to save yourself some typing, consider using " +"cascade=\"persist,merge,save-update\"." +msgstr "" +". それ以外の場合は、カスケードはほとんど必要ないでしょう。 しかし、同じトラン" +"ザクションのなかで親と子が一緒に動作することが多いと思い、 いくらかのコードを" +"書く手間を省きたいのであれば、 cascade=\"persist,merge,save-update" +"\" を使うことを考えましょう。" -#: index.docbook:956 -msgid "If the child object's lifespan is bounded by the lifespan of the parent object, make it a life cycle object by specifying cascade=\"all,delete-orphan\"." -msgstr "cascade=\"all\" でマッピングした関連(単値関連やコレクション)は、 親子 スタイルの関連とマークされます。 それは、親のセーブ/更新/削除が、子のセーブ/更新/削除を引き起こす関係のことです。" +#. Tag: para +#: session_api.xml:971 +#, no-c-format +msgid "" +"Mapping an association (either a single valued association, or a collection) " +"with cascade=\"all\" marks the association as a " +"parent/child style relationship where save/update/" +"delete of the parent results in save/update/delete of the child or children." +msgstr "" +"cascade=\"all\" でマッピングした関連(単値関連やコレクショ" +"ン)は、 親子 スタイルの関連とマークされます。 それは、" +"親のセーブ/更新/削除が、子のセーブ/更新/削除を引き起こす関係のことです。" -#: index.docbook:963 -msgid "Otherwise, you might not need cascade at all. But if you think that you will often be working with the parent and children together in the same transaction, and you want to save yourself some typing, consider using cascade=\"persist,merge,save-update\"." -msgstr "さらに、永続化された親が子を単に参照しているだけで、子のセーブ/更新を引き起こします。 しかし、このメタファーは不完全です。親から参照されなくなった子は、自動的に削除 されません 。 ただし、 cascade=\"delete-orphan\" でマッピングされた <one-to-many> 関連を 除いてです。 親子関係のカスケード操作の正確な意味は以下のようになります。" +#. Tag: para +#: session_api.xml:977 +#, no-c-format +msgid "" +"Futhermore, a mere reference to a child from a persistent parent will result " +"in save/update of the child. This metaphor is incomplete, however. A child " +"which becomes unreferenced by its parent is not " +"automatically deleted, except in the case of a <one-to-many> association mapped with cascade=\"delete-orphan\". The precise semantics of cascading operations for a parent/child " +"relationship are as follows:" +msgstr "" +"さらに、永続化された親が子を単に参照しているだけで、子のセーブ/更新を引き起こ" +"します。 しかし、このメタファーは不完全です。親から参照されなくなった子は、自" +"動的に削除 されません 。 ただし、 cascade=" +"\"delete-orphan\" でマッピングされた <one-to-many> 関連を 除いてです。 親子関係のカスケード操作の正確な意味は以下のよう" +"になります。" -#: index.docbook:971 -msgid "Mapping an association (either a single valued association, or a collection) with cascade=\"all\" marks the association as a parent/child style relationship where save/update/delete of the parent results in save/update/delete of the child or children." -msgstr "親が persist() に渡されたならば、 すべての子は persist() に渡されます。" +#. Tag: para +#: session_api.xml:988 +#, no-c-format +msgid "" +"If a parent is passed to persist(), all children are " +"passed to persist()" +msgstr "" +"親が persist() に渡されたならば、 すべての子は " +"persist() に渡されます。" -#: index.docbook:977 -msgid "Futhermore, a mere reference to a child from a persistent parent will result in save/update of the child. This metaphor is incomplete, however. A child which becomes unreferenced by its parent is not automatically deleted, except in the case of a <one-to-many> association mapped with cascade=\"delete-orphan\". The precise semantics of cascading operations for a parent/child relationship are as follows:" -msgstr "merge() に渡されたならば、 すべての子は merge() に渡されます。" +#. Tag: para +#: session_api.xml:994 +#, no-c-format +msgid "" +"If a parent is passed to merge(), all children are passed " +"to merge()" +msgstr "" +"merge() に渡されたならば、 すべての子は merge() に渡されます。" -#: index.docbook:988 -msgid "If a parent is passed to persist(), all children are passed to persist()" -msgstr "親が save()update()saveOrUpdate() に渡されたならば、すべての子は saveOrUpdate() に渡されます。" +#. Tag: para +#: session_api.xml:1000 +#, no-c-format +msgid "" +"If a parent is passed to save(), update() or saveOrUpdate(), all children are passed to " +"saveOrUpdate()" +msgstr "" +"親が save()update() 、 " +"saveOrUpdate() に渡されたならば、すべての子は " +"saveOrUpdate() に渡されます。" -#: index.docbook:994 -msgid "If a parent is passed to merge(), all children are passed to merge()" -msgstr "一時的または分離状態の子が、永続化された親に参照されたならば、 saveOrUpdate() に渡されます。" +#. Tag: para +#: session_api.xml:1006 +#, no-c-format +msgid "" +"If a transient or detached child becomes referenced by a persistent parent, " +"it is passed to saveOrUpdate()" +msgstr "" +"一時的または分離状態の子が、永続化された親に参照されたならば、 " +"saveOrUpdate() に渡されます。" -#: index.docbook:1000 -msgid "If a parent is passed to save(), update() or saveOrUpdate(), all children are passed to saveOrUpdate()" -msgstr "親が削除されたならば、すべての子は、 delete() に渡されます。" +#. Tag: para +#: session_api.xml:1012 +#, no-c-format +msgid "" +"If a parent is deleted, all children are passed to delete()" +msgstr "" +"親が削除されたならば、すべての子は、 delete() に渡されま" +"す。" -#: index.docbook:1006 -msgid "If a transient or detached child becomes referenced by a persistent parent, it is passed to saveOrUpdate()" -msgstr "子が永続化された親から参照されなくなったときは、 特に何も起こりません 。 よって、アプリケーションが必要であれば、明示的に削除する必要があります。 ただし、 cascade=\"delete-orphan\" の場合を除きます。 この場合、「親のない」子は削除されます。" +#. Tag: para +#: session_api.xml:1017 +#, no-c-format +msgid "" +"If a child is dereferenced by a persistent parent, nothing special " +"happens - the application should explicitly delete the child if " +"necessary - unless cascade=\"delete-orphan\", in which " +"case the \"orphaned\" child is deleted." +msgstr "" +"子が永続化された親から参照されなくなったときは、 特に何も起こりませ" +"ん 。 よって、アプリケーションが必要であれば、明示的に削除する必要" +"があります。 ただし、 cascade=\"delete-orphan\" の場合を除" +"きます。 この場合、「親のない」子は削除されます。" -#: index.docbook:1012 -msgid "If a parent is deleted, all children are passed to delete()" -msgstr "最後に、操作のカスケードがオブジェクトグラフに適用されるのは、 コールした時 あるいは、 flushした時 であることに注意してください。 すべての操作は、その操作が実行されたときに、到達可能な関連するエンティティに対して カスケードが可能ならカスケードします。 しかし、 save-upatedelete-orphan は、 Session がflushしている間に、 すべての到達可能な関連するエンティティに伝播します。" +#. Tag: para +#: session_api.xml:1026 +#, no-c-format +msgid "" +"Finally, note that cascading of operations can be applied to an object graph " +"at call time or at flush time. All " +"operations, if enabled, are cascaded to associated entities reachable when " +"the operation is executed. However, save-upate and " +"delete-orphan are transitive for all associated entities " +"reachable during flush of the Session." +msgstr "" +"最後に、操作のカスケードがオブジェクトグラフに適用されるのは、 コー" +"ルした時 あるいは、 flushした時 であることに" +"注意してください。 すべての操作は、その操作が実行されたときに、到達可能な関連" +"するエンティティに対して カスケードが可能ならカスケードします。 しかし、 " +"save-upatedelete-orphan は、 " +"Session がflushしている間に、 すべての到達可能な関連するエ" +"ンティティに伝播します。" -#: index.docbook:1017 -msgid "If a child is dereferenced by a persistent parent, nothing special happens - the application should explicitly delete the child if necessary - unless cascade=\"delete-orphan\", in which case the \"orphaned\" child is deleted." +#. Tag: title +#: session_api.xml:1038 +#, no-c-format +msgid "Using metadata" msgstr "メタデータの使用" -#: index.docbook:1026 -msgid "Finally, note that cascading of operations can be applied to an object graph at call time or at flush time. All operations, if enabled, are cascaded to associated entities reachable when the operation is executed. However, save-upate and delete-orphan are transitive for all associated entities reachable during flush of the Session." -msgstr "Hibernateは、すべてのエンティティと値型の非常にリッチなメタレベルのモデルを必要とします。 ときどき、このモデルはアプリケーションにとってとても役に立ちます。 例えば、アプリケーションは、Hibernateのメタデータを使って、\"賢い\" ディープコピーアルゴリズムを 実装できるかもしません。そのアルゴリズムとは、どのオブジェクトがコピーされるべきか(例:可変の値型)や どのオブジェクトはコピーされないべきか(例:不変な値型や可能なら関連するエンティティ)を 判断できるものです。" - -#: index.docbook:1038 -msgid "Using metadata" -msgstr "HibernateはClassMetadataCollectionMetadata インタフェースと Type 階層を通してメタデータを公開します。 メタデータインターフェイスのインスタンスは、 SessionFactory から得られます。" - -#: index.docbook:1040 -msgid "Hibernate requires a very rich meta-level model of all entity and value types. From time to time, this model is very useful to the application itself. For example, the application might use Hibernate's metadata to implement a \"smart\" deep-copy algorithm that understands which objects should be copied (eg. mutable value types) and which should not (eg. immutable value types and, possibly, associated entities)." -msgstr "" - "" - -#: index.docbook:1047 -msgid "Hibernate exposes metadata via the ClassMetadata and CollectionMetadata interfaces and the Type hierarchy. Instances of the metadata interfaces may be obtained from the SessionFactory." -msgstr "" - -#: index.docbook:1054 +#. Tag: para +#: session_api.xml:1040 +#, no-c-format msgid "" - "" +"Hibernate requires a very rich meta-level model of all entity and value " +"types. From time to time, this model is very useful to the application " +"itself. For example, the application might use Hibernate's metadata to " +"implement a \"smart\" deep-copy algorithm that understands which objects " +"should be copied (eg. mutable value types) and which should not (eg. " +"immutable value types and, possibly, associated entities)." +msgstr "" +"Hibernateは、すべてのエンティティと値型の非常にリッチなメタレベルのモデルを必" +"要とします。 ときどき、このモデルはアプリケーションにとってとても役に立ちま" +"す。 例えば、アプリケーションは、Hibernateのメタデータを使って、\"賢い\" " +"ディープコピーアルゴリズムを 実装できるかもしません。そのアルゴリズムとは、ど" +"のオブジェクトがコピーされるべきか(例:可変の値型)や どのオブジェクトはコ" +"ピーされないべきか(例:不変な値型や可能なら関連するエンティティ)を 判断でき" +"るものです。" + +#. Tag: para +#: session_api.xml:1047 +#, no-c-format +msgid "" +"Hibernate exposes metadata via the ClassMetadata and " +"CollectionMetadata interfaces and the Type hierarchy. Instances of the metadata interfaces may be obtained " +"from the SessionFactory." +msgstr "" +"HibernateはClassMetadataCollectionMetadata インタフェースと Type 階層を通してメタデータを公" +"開します。 メタデータインターフェイスのインスタンスは、 " +"SessionFactory から得られます。" + +#. Tag: programlisting +#: session_api.xml:1054 +#, no-c-format +msgid "" +"" msgstr "" -msgid "ROLES_OF_TRANSLATORS" -msgstr "" +#~ msgid "UPDATE" +#~ msgstr "UPDATE" -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#~ msgid "DELETE" +#~ msgstr "DELETE" +#~ msgid "state management" +#~ msgstr "状態管理" + +#~ msgid "statements" +#~ msgstr "文" + +#~ msgid "Connection" +#~ msgstr "session.connection()" + +#~ msgid "session.connection()" +#~ msgstr "Connection" diff --git a/documentation/manual/translations/ja-JP/content/toolset_guide.po b/documentation/manual/translations/ja-JP/content/toolset_guide.po index 34b8d335d3..c4284639d0 100644 --- a/documentation/manual/translations/ja-JP/content/toolset_guide.po +++ b/documentation/manual/translations/ja-JP/content/toolset_guide.po @@ -1,742 +1,1198 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: toolset_guide.xml:5 +#, no-c-format msgid "Toolset Guide" msgstr "Toolset Guide ツールセットガイド" -#: index.docbook:7 -msgid "Roundtrip engineering with Hibernate is possible using a set of Eclipse plugins, commandline tools, as well as Ant tasks." -msgstr "Hibernateを使ったラウンドトリップエンジニアリングは、 Eclipseプラグインやコマンドラインツール、もちろんAntタスクを使うことで可能です。" +#. Tag: para +#: toolset_guide.xml:7 +#, no-c-format +msgid "" +"Roundtrip engineering with Hibernate is possible using a set of Eclipse " +"plugins, commandline tools, as well as Ant tasks." +msgstr "" +"Hibernateを使ったラウンドトリップエンジニアリングは、 Eclipseプラグインやコマ" +"ンドラインツール、もちろんAntタスクを使うことで可能です。" -#: index.docbook:12 -msgid "The Hibernate Tools currently include plugins for the Eclipse IDE as well as Ant tasks for reverse engineering of existing databases:" -msgstr "Hibernate Tools は現在、既存データベースのリバースエンジニアリングのAntタスクに加えて、EclipseIDEのプラグインを含みます。" +#. Tag: para +#: toolset_guide.xml:12 +#, no-c-format +msgid "" +"The Hibernate Tools currently include plugins for the " +"Eclipse IDE as well as Ant tasks for reverse engineering of existing " +"databases:" +msgstr "" +"Hibernate Tools は現在、既存データベースのリバースエンジ" +"ニアリングのAntタスクに加えて、EclipseIDEのプラグインを含みます。" -#: index.docbook:18 -msgid "Mapping Editor: An editor for Hibernate XML mapping files, supporting auto-completion and syntax highlighting. It also supports semantic auto-completion for class names and property/field names, making it much more versatile than a normal XML editor." -msgstr "マッピングエディタ: HibernateのXMLマッピングファイル用のエディタで、 自動補完と構文強調表示をサポートしています。クラス名やプロパティ/フィールド名に対する自動補完もサポートし、 通常のXMLエディタよりも強力です。" +#. Tag: para +#: toolset_guide.xml:18 +#, no-c-format +msgid "" +"Mapping Editor: An editor for Hibernate XML mapping " +"files, supporting auto-completion and syntax highlighting. It also supports " +"semantic auto-completion for class names and property/field names, making it " +"much more versatile than a normal XML editor." +msgstr "" +"マッピングエディタ: HibernateのXMLマッピングファイル用の" +"エディタで、 自動補完と構文強調表示をサポートしています。クラス名やプロパ" +"ティ/フィールド名に対する自動補完もサポートし、 通常のXMLエディタよりも強力で" +"す。" -#: index.docbook:23 -msgid "Console: The console is a new view in Eclipse. In addition to a tree overview of your console configurations, you also get an interactive view of your persistent classes and their relationships. The console allows you to execute HQL queries against your database and browse the result directly in Eclipse." -msgstr "Console: コンソールはエクリプスの新しいビューです。 コンソールコンフィギュレーションのツリーオーバービューに加えて、永続クラスとその関連の相互作用ビューも得られます。 データベースにHQLを実行し、結果を直接エクリプス上で見ることができます。" +#. Tag: para +#: toolset_guide.xml:23 +#, no-c-format +msgid "" +"Console: The console is a new view in Eclipse. In " +"addition to a tree overview of your console configurations, you also get an " +"interactive view of your persistent classes and their relationships. The " +"console allows you to execute HQL queries against your database and browse " +"the result directly in Eclipse." +msgstr "" +"Console: コンソールはエクリプスの新しいビューです。 コン" +"ソールコンフィギュレーションのツリーオーバービューに加えて、永続クラスとその" +"関連の相互作用ビューも得られます。 データベースにHQLを実行し、結果を直接エク" +"リプス上で見ることができます。" -#: index.docbook:30 -msgid "Development Wizards: Several wizards are provided with the Hibernate Eclipse tools; you can use a wizard to quickly generate Hibernate configuration (cfg.xml) files, or you may even completely reverse engineer an existing database schema into POJO source files and Hibernate mapping files. The reverse engineering wizard supports customizable templates." -msgstr "開発ウィザード HibernateのEclipseツールはいくつかのウィザードを提供します。 ウィザードを使ってHibernateの設定ファイル(cfg.xml)をすばやく生成したり、 既存のデータベーススキーマをPOJOのソースファイルとHibernateのマッピングファイルへと、 完全にリバースエンジニアリングすることができます。 リバースエンジニアリングウィザードはカスタマイズ可能なテンプレートをサポートします。" +#. Tag: para +#: toolset_guide.xml:30 +#, no-c-format +msgid "" +"Development Wizards: Several wizards are provided with " +"the Hibernate Eclipse tools; you can use a wizard to quickly generate " +"Hibernate configuration (cfg.xml) files, or you may even completely reverse " +"engineer an existing database schema into POJO source files and Hibernate " +"mapping files. The reverse engineering wizard supports customizable " +"templates." +msgstr "" +"開発ウィザード HibernateのEclipseツールはいくつかのウィ" +"ザードを提供します。 ウィザードを使ってHibernateの設定ファイル(cfg.xml)をすば" +"やく生成したり、 既存のデータベーススキーマをPOJOのソースファイルとHibernate" +"のマッピングファイルへと、 完全にリバースエンジニアリングすることができま" +"す。 リバースエンジニアリングウィザードはカスタマイズ可能なテンプレートをサ" +"ポートします。" -#: index.docbook:38 +#. Tag: emphasis +#: toolset_guide.xml:38 +#, no-c-format msgid "Ant Tasks:" msgstr "Ant Tasks:" -#: index.docbook:43 -msgid "Please refer to the Hibernate Tools package and it's documentation for more information." -msgstr "より詳しい情報は Hibernate Tools パッケージとそのドキュメントを参照してください。" +#. Tag: para +#: toolset_guide.xml:43 +#, no-c-format +msgid "" +"Please refer to the Hibernate Tools package and it's " +"documentation for more information." +msgstr "" +"より詳しい情報は Hibernate Tools パッケージとそのドキュ" +"メントを参照してください。" -#: index.docbook:48 -msgid "However, the Hibernate main package comes bundled with an integrated tool (it can even be used from \"inside\" Hibernate on-the-fly): SchemaExport aka hbm2ddl." -msgstr "しかし、Hibernateのメインパッケージは SchemaExport 、 別名 hbm2ddl も含みます(Hibernate内でオンザフライで使用できます)。" +#. Tag: para +#: toolset_guide.xml:48 +#, no-c-format +msgid "" +"However, the Hibernate main package comes bundled with an integrated tool " +"(it can even be used from \"inside\" Hibernate on-the-fly): " +"SchemaExport aka hbm2ddl." +msgstr "" +"しかし、Hibernateのメインパッケージは SchemaExport 、 別" +"名 hbm2ddl も含みます(Hibernate内でオンザフライで使用でき" +"ます)。" -#: index.docbook:55 +#. Tag: title +#: toolset_guide.xml:55 +#, no-c-format msgid "Automatic schema generation" msgstr "スキーマの自動生成" -#: index.docbook:57 -msgid "DDL may be generated from your mapping files by a Hibernate utility. The generated schema includes referential integrity constraints (primary and foreign keys) for entity and collection tables. Tables and sequences are also created for mapped identifier generators." -msgstr "DDLはHibernateユーティリティによりマッピングファイルから生成することができます。 生成されたスキーマはエンティティやコレクションのテーブルに対する参照整合性制約(主キーと外部キー)を含みます。 テーブルとシーケンスはマッピングする識別子ジェネレータに対して生成されます。" +#. Tag: para +#: toolset_guide.xml:57 +#, no-c-format +msgid "" +"DDL may be generated from your mapping files by a Hibernate utility. The " +"generated schema includes referential integrity constraints (primary and " +"foreign keys) for entity and collection tables. Tables and sequences are " +"also created for mapped identifier generators." +msgstr "" +"DDLはHibernateユーティリティによりマッピングファイルから生成することができま" +"す。 生成されたスキーマはエンティティやコレクションのテーブルに対する参照整合" +"性制約(主キーと外部キー)を含みます。 テーブルとシーケンスはマッピングする識別" +"子ジェネレータに対して生成されます。" -#: index.docbook:64 -msgid "You must specify a SQL Dialect via the hibernate.dialect property when using this tool, as DDL is highly vendor specific." -msgstr "DDLはベンダー依存なので、このツールを使うときは、hibernate.dialect プロパティでSQLの 方言 を指定 しなければなりません 。" +#. Tag: para +#: toolset_guide.xml:64 +#, no-c-format +msgid "" +"You must specify a SQL Dialect via " +"the hibernate.dialect property when using this tool, as " +"DDL is highly vendor specific." +msgstr "" +"DDLはベンダー依存なので、このツールを使うときは、hibernate.dialect プロパティでSQLの 方言 を指定 しなけれ" +"ばなりません 。" -#: index.docbook:70 +#. Tag: para +#: toolset_guide.xml:70 +#, no-c-format msgid "First, customize your mapping files to improve the generated schema." -msgstr "まず、生成されるスキーマを改善するように、マッピングファイルをカスタマイズしてください。" +msgstr "" +"まず、生成されるスキーマを改善するように、マッピングファイルをカスタマイズし" +"てください。" -#: index.docbook:75 +#. Tag: title +#: toolset_guide.xml:75 +#, no-c-format msgid "Customizing the schema" msgstr "スキーマのカスタマイズ" -#: index.docbook:77 -msgid "Many Hibernate mapping elements define optional attributes named length, precision and scale. You may set the length, precision and scale of a column with this attribute." -msgstr "多くのHibernateのマッピング要素では、オプションの length という名の属性を定義しています。 この属性でカラム長を設定することができます(またはNUMERIC/DECIMAL型のデータの精度を設定できます)。" +#. Tag: para +#: toolset_guide.xml:77 +#, no-c-format +msgid "" +"Many Hibernate mapping elements define optional attributes named " +"length, precision and scale. You may set the length, precision and scale of a column with this " +"attribute." +msgstr "" +"多くのHibernateのマッピング要素では、オプションの length " +"という名の属性を定義しています。 この属性でカラム長を設定することができます" +"(またはNUMERIC/DECIMAL型のデータの精度を設定できます)。" -#: index.docbook:84 +#. Tag: programlisting +#: toolset_guide.xml:84 +#, no-c-format msgid "]]>" -msgstr "not-null 属性(テーブルのカラムへ NOT NULL 制約を生成する)と unique 属性(テーブルのカラムへ UNIQUE 制約を生成する)が設定できるタグもあります。" +msgstr "" -#: index.docbook:85 +#. Tag: programlisting +#: toolset_guide.xml:85 +#, no-c-format msgid "]]>" -msgstr "]]>" - -#: index.docbook:87 -msgid "Some tags also accept a not-null attribute (for generating a NOT NULL constraint on table columns) and a unique attribute (for generating UNIQUE constraint on table columns)." -msgstr "]]>" - -#: index.docbook:93 -msgid "]]>" -msgstr "unique-key 属性はカラムをグループ化して一つのキー制約にするために使われます。 現在、unique-key 属性で指定された値は制約の指定には 使われず 、 マッピングファイルでカラムをグループ化することにのみ使われます。" - -#: index.docbook:95 -msgid "]]>" msgstr "" - " \n" - "]]>" -#: index.docbook:97 -msgid "A unique-key attribute may be used to group columns in a single unique key constraint. Currently, the specified value of the unique-key attribute is not used to name the constraint in the generated DDL, only to group the columns in the mapping file." -msgstr "index 属性はマッピングするカラムを使って生成したインデックスの名前を指定します。 複数カラムを1つのインデックスにグループ化できます。単に、同じインデックス名を指定するだけです。" - -#: index.docbook:105 +#. Tag: para +#: toolset_guide.xml:87 +#, no-c-format msgid "" - "\n" - "]]>" +"Some tags also accept a not-null attribute (for " +"generating a NOT NULL constraint on table columns) and a " +"unique attribute (for generating UNIQUE constraint on table columns)." msgstr "" - " \n" - "]]>" +"not-null 属性(テーブルのカラムへ NOT NULL 制約を生成する)と unique 属性(テーブルのカラム" +"へ UNIQUE 制約を生成する)が設定できるタグもあります。" -#: index.docbook:107 -msgid "An index attribute specifies the name of an index that will be created using the mapped column or columns. Multiple columns may be grouped into the same index, simply by specifying the same index name." -msgstr "foreign-key 属性は、生成された外部キー制約の名前をオーバーライドするために使用できます。" - -#: index.docbook:113 +#. Tag: programlisting +#: toolset_guide.xml:93 +#, no-c-format msgid "" - "\n" - "]]>" -msgstr "]]>" - -#: index.docbook:115 -msgid "A foreign-key attribute may be used to override the name of any generated foreign key constraint." -msgstr "多くのマッピング要素は、子 <column> 要素を記述できます。これは複数カラム型のマッピングには特に有用です。" - -#: index.docbook:120 -msgid "]]>" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:122 -msgid "Many mapping elements also accept a child <column> element. This is particularly useful for mapping multi-column types:" -msgstr "default 属性はカラムのデフォルト値を指定します (マッピングしたクラスの新しいインスタンスを保存する前に、 マッピングしたプロパティへ同じ値を代入すべきです)。" - -#: index.docbook:127 +#. Tag: programlisting +#: toolset_guide.xml:95 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - "]]>" +"]]>" msgstr "" - " \n" - " \n" - "]]>" -#: index.docbook:129 -msgid "The default attribute lets you specify a default value for a column (you should assign the same value to the mapped property before saving a new instance of the mapped class)." -msgstr "" - " \n" - " \n" - "]]>" - -#: index.docbook:135 +#. Tag: para +#: toolset_guide.xml:97 +#, no-c-format msgid "" - "\n" - " \n" - "]]>" -msgstr "sql-type 属性で、デフォルトのHibernate型からSQLのデータ型へのマッピングをオーバーライドできます。" - -#: index.docbook:137 -msgid "" - "\n" - " \n" - "]]>" +"A unique-key attribute may be used to group columns in a " +"single unique key constraint. Currently, the specified value of the " +"unique-key attribute is not used to " +"name the constraint in the generated DDL, only to group the columns in the " +"mapping file." msgstr "" - " \n" - " \n" - "]]>" +"unique-key 属性はカラムをグループ化して一つのキー制約にす" +"るために使われます。 現在、unique-key 属性で指定された値は" +"制約の指定には 使われず 、 マッピングファイルでカラムを" +"グループ化することにのみ使われます。" -#: index.docbook:139 -msgid "The sql-type attribute allows the user to override the default mapping of a Hibernate type to SQL datatype." +#. Tag: programlisting +#: toolset_guide.xml:105 +#, no-c-format +msgid "" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: toolset_guide.xml:107 +#, no-c-format +msgid "" +"An index attribute specifies the name of an index that " +"will be created using the mapped column or columns. Multiple columns may be " +"grouped into the same index, simply by specifying the same index name." +msgstr "" +"index 属性はマッピングするカラムを使って生成したインデック" +"スの名前を指定します。 複数カラムを1つのインデックスにグループ化できます。単" +"に、同じインデックス名を指定するだけです。" + +#. Tag: programlisting +#: toolset_guide.xml:113 +#, no-c-format +msgid "" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: toolset_guide.xml:115 +#, no-c-format +msgid "" +"A foreign-key attribute may be used to override the name " +"of any generated foreign key constraint." +msgstr "" +"foreign-key 属性は、生成された外部キー制約の名前をオーバー" +"ライドするために使用できます。" + +#. Tag: programlisting +#: toolset_guide.xml:120 +#, no-c-format +msgid "" +"]]>" +msgstr "" + +#. Tag: para +#: toolset_guide.xml:122 +#, no-c-format +msgid "" +"Many mapping elements also accept a child <column> " +"element. This is particularly useful for mapping multi-column types:" +msgstr "" +"多くのマッピング要素は、子 <column> 要素を記述できま" +"す。これは複数カラム型のマッピングには特に有用です。" + +#. Tag: programlisting +#: toolset_guide.xml:127 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: toolset_guide.xml:129 +#, no-c-format +msgid "" +"The default attribute lets you specify a default value " +"for a column (you should assign the same value to the mapped property before " +"saving a new instance of the mapped class)." +msgstr "" +"default 属性はカラムのデフォルト値を指定します (マッピング" +"したクラスの新しいインスタンスを保存する前に、 マッピングしたプロパティへ同じ" +"値を代入すべきです)。" + +#. Tag: programlisting +#: toolset_guide.xml:135 +#, no-c-format +msgid "" +"\n" +" \n" +"]]>" +msgstr "" + +#. Tag: programlisting +#: toolset_guide.xml:137 +#, no-c-format +msgid "" +"\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: toolset_guide.xml:139 +#, no-c-format +msgid "" +"The sql-type attribute allows the user to override the " +"default mapping of a Hibernate type to SQL datatype." +msgstr "" +"sql-type 属性で、デフォルトのHibernate型からSQLのデータ型" +"へのマッピングをオーバーライドできます。" + +#. Tag: programlisting +#: toolset_guide.xml:144 +#, no-c-format +msgid "" +"\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: toolset_guide.xml:146 +#, no-c-format +msgid "" +"The check attribute allows you to specify a check " +"constraint." msgstr "check 属性でチェック制約を指定することができます。" -#: index.docbook:144 +#. Tag: programlisting +#: toolset_guide.xml:150 +#, no-c-format msgid "" - "\n" - " \n" - "]]>" +"\n" +" 10\"/>\n" +"]]>" msgstr "" - " \n" - " 10\"/> \n" - "]]>" -#: index.docbook:146 -msgid "The check attribute allows you to specify a check constraint." +#. Tag: programlisting +#: toolset_guide.xml:152 +#, no-c-format +msgid "" +"\n" +" ...\n" +" \n" +"]]>" msgstr "" - " \n" - " ... \n" - " \n" - "]]>" -#: index.docbook:150 -msgid "" - "\n" - " 10\"/>\n" - "]]>" -msgstr "まとめ" - -#: index.docbook:152 -msgid "" - "\n" - " ...\n" - " \n" - "]]>" -msgstr "属性" - -#: index.docbook:156 +#. Tag: title +#: toolset_guide.xml:156 +#, no-c-format msgid "Summary" -msgstr "" +msgstr "まとめ" -#: index.docbook:163 +#. Tag: entry +#: toolset_guide.xml:163 +#, no-c-format msgid "Attribute" -msgstr "説明" +msgstr "属性" -#: index.docbook:164 +#. Tag: entry +#: toolset_guide.xml:164 +#, no-c-format msgid "Values" +msgstr "値" + +#. Tag: entry +#: toolset_guide.xml:165 +#, no-c-format +msgid "Interpretation" +msgstr "説明" + +#. Tag: literal +#: toolset_guide.xml:170 +#, no-c-format +msgid "length" msgstr "length" -#: index.docbook:165 -msgid "Interpretation" -msgstr "数値" +#. Tag: entry +#: toolset_guide.xml:171 toolset_guide.xml:176 toolset_guide.xml:181 +#, no-c-format +msgid "number" +msgstr "数値" -#: index.docbook:170 -msgid "length" +#. Tag: entry +#: toolset_guide.xml:172 +#, no-c-format +msgid "column length" msgstr "カラムの長さ" -#: index.docbook:171, index.docbook:176, index.docbook:181 -msgid "number" +#. Tag: literal +#: toolset_guide.xml:175 +#, no-c-format +msgid "precision" msgstr "precision" -#: index.docbook:172 -msgid "column length" -msgstr "数値" - -#: index.docbook:175 -msgid "precision" +#. Tag: entry +#: toolset_guide.xml:177 +#, no-c-format +msgid "column decimal precision" msgstr "カラムのDECIMAL型の精度(precision)" -#: index.docbook:177 -msgid "column decimal precision" -msgstr "数値" - -#: index.docbook:180 +#. Tag: literal +#: toolset_guide.xml:180 +#, no-c-format msgid "scale" +msgstr "scale" + +#. Tag: entry +#: toolset_guide.xml:182 +#, no-c-format +msgid "column decimal scale" msgstr "カラムのDECIMAL型のスケール(scale)" -#: index.docbook:182 -msgid "column decimal scale" +#. Tag: literal +#: toolset_guide.xml:185 +#, no-c-format +msgid "not-null" +msgstr "not-null" + +#. Tag: literal +#: toolset_guide.xml:186 toolset_guide.xml:191 +#, no-c-format +msgid "true|false" msgstr "true|false" -#: index.docbook:185 -msgid "not-null" +#. Tag: entry +#: toolset_guide.xml:187 +#, no-c-format +msgid "specfies that the column should be non-nullable" msgstr "カラムがnull値を取らないことを指定します" -#: index.docbook:186, index.docbook:191 -msgid "true|false" +#. Tag: literal +#: toolset_guide.xml:190 +#, no-c-format +msgid "unique" msgstr "unique" -#: index.docbook:187 -msgid "specfies that the column should be non-nullable" -msgstr "true|false" - -#: index.docbook:190 -msgid "unique" +#. Tag: entry +#: toolset_guide.xml:192 +#, no-c-format +msgid "specifies that the column should have a unique constraint" msgstr "カラムがユニーク制約を持つことを指定します" -#: index.docbook:192 -msgid "specifies that the column should have a unique constraint" +#. Tag: literal +#: toolset_guide.xml:195 +#, no-c-format +msgid "index" +msgstr "index" + +#. Tag: literal +#: toolset_guide.xml:196 +#, no-c-format +msgid "index_name" msgstr "インデックス名" -#: index.docbook:195 -msgid "index" +#. Tag: entry +#: toolset_guide.xml:197 +#, no-c-format +msgid "specifies the name of a (multi-column) index" msgstr "(複数カラムの)インデックスの名前を指定します" -#: index.docbook:196 -msgid "index_name" +#. Tag: literal +#: toolset_guide.xml:200 +#, no-c-format +msgid "unique-key" msgstr "unique-key" -#: index.docbook:197 -msgid "specifies the name of a (multi-column) index" +#. Tag: literal +#: toolset_guide.xml:201 +#, no-c-format +msgid "unique_key_name" msgstr "ユニークキー名" -#: index.docbook:200 -msgid "unique-key" +#. Tag: entry +#: toolset_guide.xml:202 +#, no-c-format +msgid "specifies the name of a multi-column unique constraint" msgstr "複数カラムのユニーク制約の名前を指定します" -#: index.docbook:201 -msgid "unique_key_name" +#. Tag: literal +#: toolset_guide.xml:205 +#, no-c-format +msgid "foreign-key" msgstr "foreign-key" -#: index.docbook:202 -msgid "specifies the name of a multi-column unique constraint" +#. Tag: literal +#: toolset_guide.xml:206 +#, no-c-format +msgid "foreign_key_name" msgstr "外部キー名" -#: index.docbook:205 -msgid "foreign-key" -msgstr "<one-to-one>、<many-to-one>、<many-to-many>マッピング要素を使って、 関連に対し生成された外部キー制約の名前を指定します。 SchemaExportinverse=\"true\" 側を考慮しないことに注意してください。" +#. Tag: entry +#: toolset_guide.xml:207 +#, fuzzy, no-c-format +msgid "" +"specifies the name of the foreign key constraint generated for an " +"association, for a <one-to-one>, <many-" +"to-one>, <key>, or <many-" +"to-many> mapping element. Note that inverse=\"true\" sides will not be considered by SchemaExport." +msgstr "" +"specifies the name of the foreign key constraint generated for an " +"association, for a , , , or " +" mapping element. Note that sides will not " +"be considered by ." -#: index.docbook:206 -msgid "foreign_key_name" +#. Tag: literal +#: toolset_guide.xml:217 +#, no-c-format +msgid "sql-type" msgstr "sql-type" -#: index.docbook:207 -msgid "specifies the name of the foreign key constraint generated for an association, for a <one-to-one>, <many-to-one>, <key>, or <many-to-many> mapping element. Note that inverse=\"true\" sides will not be considered by SchemaExport." +#. Tag: literal +#: toolset_guide.xml:218 +#, no-c-format +msgid "SQL column type" msgstr "SQLのカラム型" -#: index.docbook:217 -msgid "sql-type" -msgstr "デフォルトのカラム型をオーバーライドします( <column> 要素の属性のみ)" +#. Tag: entry +#: toolset_guide.xml:219 +#, fuzzy, no-c-format +msgid "" +"overrides the default column type (attribute of <column> element only)" +msgstr "" +"デフォルトのカラム型をオーバーライドします( 要素の属性のみ)" -#: index.docbook:218 -msgid "SQL column type" +#. Tag: literal +#: toolset_guide.xml:225 +#, no-c-format +msgid "default" msgstr "default" -#: index.docbook:219 -msgid "overrides the default column type (attribute of <column> element only)" +#. Tag: entry +#: toolset_guide.xml:226 toolset_guide.xml:233 +#, no-c-format +msgid "SQL expression" msgstr "SQL式" -#: index.docbook:225 -msgid "default" +#. Tag: entry +#: toolset_guide.xml:227 +#, no-c-format +msgid "specify a default value for the column" msgstr "カラムのデフォルト値を指定します" -#: index.docbook:226, index.docbook:233 -msgid "SQL expression" +#. Tag: literal +#: toolset_guide.xml:232 +#, no-c-format +msgid "check" msgstr "check" -#: index.docbook:227 -msgid "specify a default value for the column" -msgstr "SQL式" - -#: index.docbook:232 -msgid "check" +#. Tag: entry +#: toolset_guide.xml:234 +#, no-c-format +msgid "create an SQL check constraint on either column or table" msgstr "カラムかテーブルにSQLのチェック制約を作成します" -#: index.docbook:234 -msgid "create an SQL check constraint on either column or table" -msgstr "" - " \n" - " Current customers only \n" - " ... \n" - "]]>" - -#: index.docbook:242 -msgid "The <comment> element allows you to specify comments for the generated schema." -msgstr "" - " \n" - " \n" - " Balance in USD \n" - " \n" - "]]>" - -#: index.docbook:247 +#. Tag: para +#: toolset_guide.xml:242 +#, no-c-format msgid "" - "\n" - " Current customers only\n" - " ...\n" - "]]>" -msgstr "これにより、生成したDDLに comment on tablecomment on column 文が書かれます。" +"The <comment> element allows you to specify " +"comments for the generated schema." +msgstr "" +"<comment> 要素で生成するスキーマにコメントを指定する" +"ことができます。" -#: index.docbook:249 +#. Tag: programlisting +#: toolset_guide.xml:247 +#, no-c-format msgid "" - "\n" - " \n" - " Balance in USD\n" - " \n" - "]]>" +"\n" +" Current customers only\n" +" ...\n" +"]]>" +msgstr "" + +#. Tag: programlisting +#: toolset_guide.xml:249 +#, no-c-format +msgid "" +"\n" +" \n" +" Balance in USD\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: toolset_guide.xml:251 +#, no-c-format +msgid "" +"This results in a comment on table or comment on " +"column statement in the generated DDL (where supported)." +msgstr "" +"これにより、生成したDDLに comment on table や " +"comment on column 文が書かれます。" + +#. Tag: title +#: toolset_guide.xml:260 +#, no-c-format +msgid "Running the tool" msgstr "ツールの実行" -#: index.docbook:251 -msgid "This results in a comment on table or comment on column statement in the generated DDL (where supported)." -msgstr "SchemaExport は標準出力に対してDDLスクリプトを書き出し、DDL文を実行したりもします。" +#. Tag: para +#: toolset_guide.xml:262 +#, no-c-format +msgid "" +"The SchemaExport tool writes a DDL script to standard out " +"and/or executes the DDL statements." +msgstr "" +"SchemaExport は標準出力に対してDDLスクリプトを書き出し、" +"DDL文を実行したりもします。" -#: index.docbook:260 -msgid "Running the tool" -msgstr "java -cp hibernate_classpaths org.hibernate.tool.hbm2ddl.SchemaExport options mapping_files" +#. Tag: para +#: toolset_guide.xml:267 +#, no-c-format +msgid "" +"java -cp hibernate_classpaths " +"org.hibernate.tool.hbm2ddl.SchemaExport options " +"mapping_files" +msgstr "" -#: index.docbook:262 -msgid "The SchemaExport tool writes a DDL script to standard out and/or executes the DDL statements." -msgstr "SchemaExport Command Line Options SchemaExport のコマンドラインオプション" +#. Tag: title +#: toolset_guide.xml:273 +#, no-c-format +msgid "SchemaExport Command Line Options" +msgstr "" +"SchemaExport Command Line Options SchemaExport のコマンドラインオプション" -#: index.docbook:267 -msgid "java -cp hibernate_classpaths org.hibernate.tool.hbm2ddl.SchemaExport options mapping_files" +#. Tag: entry +#: toolset_guide.xml:279 toolset_guide.xml:429 toolset_guide.xml:498 +#, no-c-format +msgid "Option" msgstr "オプション" -#: index.docbook:273 -msgid "SchemaExport Command Line Options" -msgstr "説明" +#. Tag: entry +#: toolset_guide.xml:280 toolset_guide.xml:367 toolset_guide.xml:430 +#: toolset_guide.xml:499 +#, no-c-format +msgid "Description" +msgstr "説明" -#: index.docbook:279, index.docbook:429, index.docbook:498 -msgid "Option" +#. Tag: literal +#: toolset_guide.xml:285 toolset_guide.xml:435 +#, no-c-format +msgid "--quiet" msgstr "--quiet" -#: index.docbook:280, index.docbook:367, index.docbook:430, index.docbook:499 -msgid "Description" -msgstr "スクリプトを標準出力に出力しません" +#. Tag: entry +#: toolset_guide.xml:286 toolset_guide.xml:436 +#, fuzzy, no-c-format +msgid "don't output the script to stdout" +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"スクリプトを標準出力に出力しません\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"標準出力にスクリプトを出力しません" -#: index.docbook:285, index.docbook:435 -msgid "--quiet" +#. Tag: literal +#: toolset_guide.xml:289 +#, no-c-format +msgid "--drop" msgstr "--drop" -#: index.docbook:286, index.docbook:436 -msgid "don't output the script to stdout" +#. Tag: entry +#: toolset_guide.xml:290 +#, no-c-format +msgid "only drop the tables" msgstr "テーブルの削除だけを行います" -#: index.docbook:289 -msgid "--drop" +#. Tag: literal +#: toolset_guide.xml:293 +#, no-c-format +msgid "--create" msgstr "--create" -#: index.docbook:290 -msgid "only drop the tables" +#. Tag: entry +#: toolset_guide.xml:294 +#, no-c-format +msgid "only create the tables" msgstr "テーブルの生成のみを行います。" -#: index.docbook:293 -msgid "--create" +#. Tag: literal +#: toolset_guide.xml:297 toolset_guide.xml:439 +#, no-c-format +msgid "--text" msgstr "--text" -#: index.docbook:294 -msgid "only create the tables" +#. Tag: entry +#: toolset_guide.xml:298 +#, no-c-format +msgid "don't export to the database" msgstr "データベースにエクスポートしません" -#: index.docbook:297, index.docbook:439 -msgid "--text" +#. Tag: literal +#: toolset_guide.xml:301 +#, no-c-format +msgid "--output=my_schema.ddl" msgstr "--output=my_schema.ddl" -#: index.docbook:298 -msgid "don't export to the database" +#. Tag: entry +#: toolset_guide.xml:302 +#, no-c-format +msgid "output the ddl script to a file" msgstr "DDLスクリプトをファイルに出力します" -#: index.docbook:301 -msgid "--output=my_schema.ddl" +#. Tag: literal +#: toolset_guide.xml:305 toolset_guide.xml:443 toolset_guide.xml:504 +#, no-c-format +msgid "--naming=eg.MyNamingStrategy" msgstr "--naming=eg.MyNamingStrategy" -#: index.docbook:302 -msgid "output the ddl script to a file" -msgstr "NamingStrategy を選択します" - -#: index.docbook:305, index.docbook:443, index.docbook:504 -msgid "--naming=eg.MyNamingStrategy" -msgstr "--config=hibernate.cfg.xml" - -#: index.docbook:306, index.docbook:444, index.docbook:505 +#. Tag: entry +#: toolset_guide.xml:306 toolset_guide.xml:444 toolset_guide.xml:505 +#, fuzzy, no-c-format msgid "select a NamingStrategy" -msgstr "XMLファイルからHibernateの定義情報を読み込みます" - -#: index.docbook:309, index.docbook:451, index.docbook:512 -msgid "--config=hibernate.cfg.xml" -msgstr "--properties=hibernate.properties" - -#: index.docbook:310 -msgid "read Hibernate configuration from an XML file" -msgstr "ファイルからデータベースプロパティを読み込みます" - -#: index.docbook:313, index.docbook:447, index.docbook:508 -msgid "--properties=hibernate.properties" -msgstr "--format" - -#: index.docbook:314, index.docbook:448, index.docbook:509 -msgid "read database properties from a file" -msgstr "スクリプト内に生成するSQLを読みやすいようにフォーマットします" - -#: index.docbook:317 -msgid "--format" -msgstr "--delimiter=x" - -#: index.docbook:318 -msgid "format the generated SQL nicely in the script" -msgstr "スクリプトの行区切り文字を設定します" - -#: index.docbook:321 -msgid "--delimiter=;" -msgstr "アプリケーションに SchemaExport を組み込むこともできます:" - -#: index.docbook:322 -msgid "set an end of line delimiter for the script" -msgstr "" - "" - -#: index.docbook:328 -msgid "You may even embed SchemaExport in your application:" -msgstr "プロパティ" - -#: index.docbook:332 -msgid "" - "" -msgstr "次のように、データベースのプロパティを指定することができます。" - -#: index.docbook:337 -msgid "Properties" -msgstr "-D <property> を使って、システムプロパティとして" - -#: index.docbook:339 -msgid "Database properties may be specified" msgstr "hibernate.properties ファイル内で" -#: index.docbook:345 -msgid "as system properties with -D<property>" +#. Tag: literal +#: toolset_guide.xml:309 toolset_guide.xml:451 toolset_guide.xml:512 +#, no-c-format +msgid "--config=hibernate.cfg.xml" +msgstr "--config=hibernate.cfg.xml" + +#. Tag: entry +#: toolset_guide.xml:310 +#, no-c-format +msgid "read Hibernate configuration from an XML file" +msgstr "XMLファイルからHibernateの定義情報を読み込みます" + +#. Tag: literal +#: toolset_guide.xml:313 toolset_guide.xml:447 toolset_guide.xml:508 +#, no-c-format +msgid "--properties=hibernate.properties" +msgstr "--properties=hibernate.properties" + +#. Tag: entry +#: toolset_guide.xml:314 toolset_guide.xml:448 toolset_guide.xml:509 +#, fuzzy, no-c-format +msgid "read database properties from a file" +msgstr "" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"ファイルからデータベースプロパティを読み込みます\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"ファイルからデータベースプロパティを読み込みます\n" +"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +"ファイルからデータベースのプロパティを読み込みます" + +#. Tag: literal +#: toolset_guide.xml:317 +#, no-c-format +msgid "--format" +msgstr "--format" + +#. Tag: entry +#: toolset_guide.xml:318 +#, no-c-format +msgid "format the generated SQL nicely in the script" +msgstr "スクリプト内に生成するSQLを読みやすいようにフォーマットします" + +#. Tag: literal +#: toolset_guide.xml:321 +#, no-c-format +msgid "--delimiter=;" +msgstr "--delimiter=x" + +#. Tag: entry +#: toolset_guide.xml:322 +#, no-c-format +msgid "set an end of line delimiter for the script" +msgstr "スクリプトの行区切り文字を設定します" + +#. Tag: para +#: toolset_guide.xml:328 +#, no-c-format +msgid "You may even embed SchemaExport in your application:" +msgstr "" +"アプリケーションに SchemaExport を組み込むこともできます:" + +#. Tag: programlisting +#: toolset_guide.xml:332 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: toolset_guide.xml:337 +#, no-c-format +msgid "Properties" +msgstr "プロパティ" + +#. Tag: para +#: toolset_guide.xml:339 +#, no-c-format +msgid "Database properties may be specified" +msgstr "次のように、データベースのプロパティを指定することができます。" + +#. Tag: para +#: toolset_guide.xml:345 +#, no-c-format +msgid "" +"as system properties with -D<property>" +msgstr "" +"-D<property> を使って、システム" +"プロパティとして" + +#. Tag: para +#: toolset_guide.xml:348 +#, no-c-format +msgid "in hibernate.properties" +msgstr "hibernate.properties ファイル内で" + +#. Tag: para +#: toolset_guide.xml:351 +#, no-c-format +msgid "in a named properties file with --properties" msgstr "--properties を使って指定したプロパティファイル内で" -#: index.docbook:348 -msgid "in hibernate.properties" +#. Tag: para +#: toolset_guide.xml:355 +#, no-c-format +msgid "The needed properties are:" msgstr "必要なプロパティは以下のものです:" -#: index.docbook:351 -msgid "in a named properties file with --properties" +#. Tag: title +#: toolset_guide.xml:360 +#, no-c-format +msgid "SchemaExport Connection Properties" msgstr "SchemaExportコネクションプロパティ" -#: index.docbook:355 -msgid "The needed properties are:" +#. Tag: entry +#: toolset_guide.xml:366 +#, no-c-format +msgid "Property Name" msgstr "プロパティ名" -#: index.docbook:360 -msgid "SchemaExport Connection Properties" -msgstr "説明" - -#: index.docbook:366 -msgid "Property Name" +#. Tag: literal +#: toolset_guide.xml:372 +#, no-c-format +msgid "hibernate.connection.driver_class" msgstr "hibernate.connection.driver_class" -#: index.docbook:372 -msgid "hibernate.connection.driver_class" +#. Tag: entry +#: toolset_guide.xml:373 +#, no-c-format +msgid "jdbc driver class" +msgstr "jdbcのドライバークラス" + +#. Tag: literal +#: toolset_guide.xml:376 +#, no-c-format +msgid "hibernate.connection.url" msgstr "hibernate.connection.url" -#: index.docbook:373 -msgid "jdbc driver class" +#. Tag: entry +#: toolset_guide.xml:377 +#, no-c-format +msgid "jdbc url" msgstr "jdbcのurl" -#: index.docbook:376 -msgid "hibernate.connection.url" +#. Tag: literal +#: toolset_guide.xml:380 +#, no-c-format +msgid "hibernate.connection.username" msgstr "hibernate.connection.username" -#: index.docbook:377 -msgid "jdbc url" +#. Tag: entry +#: toolset_guide.xml:381 +#, no-c-format +msgid "database user" msgstr "データベースのユーザ" -#: index.docbook:380 -msgid "hibernate.connection.username" +#. Tag: literal +#: toolset_guide.xml:384 +#, no-c-format +msgid "hibernate.connection.password" msgstr "hibernate.connection.password" -#: index.docbook:381 -msgid "database user" +#. Tag: entry +#: toolset_guide.xml:385 +#, no-c-format +msgid "user password" msgstr "ユーザパスワード" -#: index.docbook:384 -msgid "hibernate.connection.password" +#. Tag: literal +#: toolset_guide.xml:388 +#, no-c-format +msgid "hibernate.dialect" msgstr "hibernate.dialect" -#: index.docbook:385 -msgid "user password" +#. Tag: entry +#: toolset_guide.xml:389 +#, no-c-format +msgid "dialect" msgstr "データベース方言" -#: index.docbook:388 -msgid "hibernate.dialect" +#. Tag: title +#: toolset_guide.xml:398 +#, no-c-format +msgid "Using Ant" msgstr "Antを使用する" -#: index.docbook:389 -msgid "dialect" -msgstr "Antのビルドスクリプトから SchemaExport を呼び出すことができます。:" - -#: index.docbook:398 -msgid "Using Ant" +#. Tag: para +#: toolset_guide.xml:400 +#, no-c-format +msgid "" +"You can call SchemaExport from your Ant build script:" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"Antのビルドスクリプトから SchemaExport を呼び出すことがで" +"きます。:" -#: index.docbook:400 -msgid "You can call SchemaExport from your Ant build script:" +#. Tag: programlisting +#: toolset_guide.xml:404 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: title +#: toolset_guide.xml:409 +#, no-c-format +msgid "Incremental schema updates" msgstr "インクリメンタルなスキーマ更新" -#: index.docbook:404 +#. Tag: para +#: toolset_guide.xml:411 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -msgstr "SchemaUpdate ツールは既存のスキーマをインクリメンタルに更新します。 SchemaUpdate はJDBCのメタデータAPIに強く依存します。 そのため、すべてのJDBCドライバでうまくいくとは限らないことに注意してください。" +"The SchemaUpdate tool will update an existing schema with " +"\"incremental\" changes. Note that SchemaUpdate depends " +"heavily upon the JDBC metadata API, so it will not work with all JDBC " +"drivers." +msgstr "" +"SchemaUpdate ツールは既存のスキーマをインクリメンタルに更" +"新します。 SchemaUpdate はJDBCのメタデータAPIに強く依存し" +"ます。 そのため、すべてのJDBCドライバでうまくいくとは限らないことに注意してく" +"ださい。" -#: index.docbook:409 -msgid "Incremental schema updates" -msgstr "java -cp hibernate_classpaths org.hibernate.tool.hbm2ddl.SchemaUpdate options mapping_files" +#. Tag: para +#: toolset_guide.xml:417 +#, no-c-format +msgid "" +"java -cp hibernate_classpaths " +"org.hibernate.tool.hbm2ddl.SchemaUpdate options " +"mapping_files" +msgstr "" -#: index.docbook:411 -msgid "The SchemaUpdate tool will update an existing schema with \"incremental\" changes. Note that SchemaUpdate depends heavily upon the JDBC metadata API, so it will not work with all JDBC drivers." +#. Tag: title +#: toolset_guide.xml:423 +#, no-c-format +msgid "SchemaUpdate Command Line Options" msgstr "SchemaUpdate のコマンドライン・オプション" -#: index.docbook:417 -msgid "java -cp hibernate_classpaths org.hibernate.tool.hbm2ddl.SchemaUpdate options mapping_files" -msgstr "オプション" - -#: index.docbook:423 -msgid "SchemaUpdate Command Line Options" -msgstr "説明" - -#: index.docbook:440 +#. Tag: entry +#: toolset_guide.xml:440 +#, no-c-format msgid "don't export the script to the database" -msgstr "NamingStrategy を選択します。" +msgstr "データベースにスクリプトをエクスポートしません" -#: index.docbook:452, index.docbook:513 +#. Tag: entry +#: toolset_guide.xml:452 toolset_guide.xml:513 +#, fuzzy, no-c-format msgid "specify a .cfg.xml file" -msgstr "" - "" +msgstr " ファイルを指定します" -#: index.docbook:458 +#. Tag: para +#: toolset_guide.xml:458 +#, no-c-format msgid "You may embed SchemaUpdate in your application:" +msgstr "" +"アプリケーションに SchemaUpdate を組み込むことができま" +"す。:" + +#. Tag: programlisting +#: toolset_guide.xml:462 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: toolset_guide.xml:467 +#, no-c-format +msgid "Using Ant for incremental schema updates" msgstr "インクリメンタルなスキーマ更新に対するAntの使用" -#: index.docbook:462 -msgid "" - "" -msgstr "Antスクリプトから SchemaUpdate を呼び出すことができます:" - -#: index.docbook:467 -msgid "Using Ant for incremental schema updates" -msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" - -#: index.docbook:469 +#. Tag: para +#: toolset_guide.xml:469 +#, no-c-format msgid "You can call SchemaUpdate from the Ant script:" +msgstr "" +"Antスクリプトから SchemaUpdate を呼び出すことができます:" + +#. Tag: programlisting +#: toolset_guide.xml:473 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: title +#: toolset_guide.xml:478 +#, no-c-format +msgid "Schema validation" msgstr "Schema validation" -#: index.docbook:473 +#. Tag: para +#: toolset_guide.xml:480 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -msgstr "SchemaValidator ツールは、既存のデータベーススキーマと作成したマッピングドキュメントが\"一致する\"ことを検証します。 SchemaValidator はJDBCのメタデータAPIに強く依存することに注意してください。そのため、すべてのJDBCドライバーで作動するものではありません。このツールはテスト時に非常に有用です。" +"The SchemaValidator tool will validate that the existing " +"database schema \"matches\" your mapping documents. Note that " +"SchemaValidator depends heavily upon the JDBC metadata " +"API, so it will not work with all JDBC drivers. This tool is extremely " +"useful for testing." +msgstr "" +"SchemaValidator ツールは、既存のデータベーススキーマと作成" +"したマッピングドキュメントが\"一致する\"ことを検証します。 " +"SchemaValidator はJDBCのメタデータAPIに強く依存することに" +"注意してください。そのため、すべてのJDBCドライバーで作動するものではありませ" +"ん。このツールはテスト時に非常に有用です。" -#: index.docbook:478 -msgid "Schema validation" -msgstr "java -cp hibernate_classpaths org.hibernate.tool.hbm2ddl.SchemaValidator options mapping_files" +#. Tag: para +#: toolset_guide.xml:486 +#, no-c-format +msgid "" +"java -cp hibernate_classpaths " +"org.hibernate.tool.hbm2ddl.SchemaValidator " +"options mapping_files" +msgstr "" -#: index.docbook:480 -msgid "The SchemaValidator tool will validate that the existing database schema \"matches\" your mapping documents. Note that SchemaValidator depends heavily upon the JDBC metadata API, so it will not work with all JDBC drivers. This tool is extremely useful for testing." +#. Tag: title +#: toolset_guide.xml:492 +#, no-c-format +msgid "SchemaValidator Command Line Options" msgstr "SchemaValidator のコマンドライン・オプション" -#: index.docbook:486 -msgid "java -cp hibernate_classpaths org.hibernate.tool.hbm2ddl.SchemaValidator options mapping_files" -msgstr "オプション" - -#: index.docbook:492 -msgid "SchemaValidator Command Line Options" -msgstr "説明" - -#: index.docbook:519 +#. Tag: para +#: toolset_guide.xml:519 +#, no-c-format msgid "You may embed SchemaValidator in your application:" +msgstr "" +"SchemaValidator をアプリケーションに組み込むことが出来ま" +"す:" + +#. Tag: programlisting +#: toolset_guide.xml:523 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: title +#: toolset_guide.xml:528 +#, no-c-format +msgid "Using Ant for schema validation" msgstr "スキーマのバリデーションにAntを使用します" -#: index.docbook:523 -msgid "" - "" +#. Tag: para +#: toolset_guide.xml:530 +#, no-c-format +msgid "You can call SchemaValidator from the Ant script:" msgstr "Antスクリプトから SchemaValidator を呼び出せます:" -#: index.docbook:528 -msgid "Using Ant for schema validation" -msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" - -#: index.docbook:530 -msgid "You can call SchemaValidator from the Ant script:" -msgstr "" - -#: index.docbook:534 +#. Tag: programlisting +#: toolset_guide.xml:534 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"]]>" msgstr "" -msgid "ROLES_OF_TRANSLATORS" -msgstr "" +#~ msgid "<one-to-one>" +#~ msgstr "<one-to-one>" -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#~ msgid "<many-to-one>" +#~ msgstr "<many-to-one>" +#~ msgid "<key>" +#~ msgstr "<key>" + +#~ msgid "<many-to-many>" +#~ msgstr "<many-to-many>" + +#~ msgid "inverse=\"true\"" +#~ msgstr "inverse=\"true\"" + +#~ msgid "SchemaExport" +#~ msgstr "SchemaExport" + +#~ msgid "<column>" +#~ msgstr "<column>" + +#~ msgid "java -cp" +#~ msgstr "java -cp" + +#~ msgid "hibernate_classpaths" +#~ msgstr "hibernate_classpaths" + +#~ msgid "org.hibernate.tool.hbm2ddl.SchemaExport" +#~ msgstr "org.hibernate.tool.hbm2ddl.SchemaExport" + +#~ msgid "options mapping_files" +#~ msgstr "options mapping_files" + +#~ msgid "NamingStrategy" +#~ msgstr "NamingStrategy" + +#, fuzzy +#~ msgid "select a " +#~ msgstr "" +#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +#~ " を選択します\n" +#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +#~ " を選択します。\n" +#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n" +#~ " を選択します" + +#~ msgid "org.hibernate.tool.hbm2ddl.SchemaUpdate" +#~ msgstr "org.hibernate.tool.hbm2ddl.SchemaUpdate" + +#~ msgid ".cfg.xml" +#~ msgstr ".cfg.xml" + +#~ msgid "org.hibernate.tool.hbm2ddl.SchemaValidator" +#~ msgstr "org.hibernate.tool.hbm2ddl.SchemaValidator" diff --git a/documentation/manual/translations/ja-JP/content/transactions.po b/documentation/manual/translations/ja-JP/content/transactions.po index 4ad03fba90..ffc29ed99a 100644 --- a/documentation/manual/translations/ja-JP/content/transactions.po +++ b/documentation/manual/translations/ja-JP/content/transactions.po @@ -1,794 +1,2070 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:47+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: transactions.xml:5 +#, no-c-format msgid "Transactions And Concurrency" msgstr "トランザクションと並行性" -#: index.docbook:7 -msgid "The most important point about Hibernate and concurrency control is that it is very easy to understand. Hibernate directly uses JDBC connections and JTA resources without adding any additional locking behavior. We highly recommend you spend some time with the JDBC, ANSI, and transaction isolation specification of your database management system." -msgstr "Hibernateと同時実行制御について最も重要な点は、容易に理解できることです。 Hibernateは新たなロックの振る舞いを追加しておらず、直接JDBCコネクションとJTAリソースを使用します。 JDBC、ANSI、およびデータベース管理システム(DBMS)のトランザクション分離の仕様を 少し時間をかけて勉強することを強く推奨します。" +#. Tag: para +#: transactions.xml:7 +#, no-c-format +msgid "" +"The most important point about Hibernate and concurrency control is that it " +"is very easy to understand. Hibernate directly uses JDBC connections and JTA " +"resources without adding any additional locking behavior. We highly " +"recommend you spend some time with the JDBC, ANSI, and transaction isolation " +"specification of your database management system." +msgstr "" +"Hibernateと同時実行制御について最も重要な点は、容易に理解できることです。 " +"Hibernateは新たなロックの振る舞いを追加しておらず、直接JDBCコネクションとJTA" +"リソースを使用します。 JDBC、ANSI、およびデータベース管理システム(DBMS)のト" +"ランザクション分離の仕様を 少し時間をかけて勉強することを強く推奨します。" -#: index.docbook:14 -msgid "Hibernate does not lock objects in memory. Your application can expect the behavior as defined by the isolation level of your database transactions. Note that thanks to the Session, which is also a transaction-scoped cache, Hibernate provides repeatable reads for lookup by identifier and entity queries (not reporting queries that return scalar values)." -msgstr "Hibernateはメモリ内のオブジェクトをロックしません。 アプリケーションは、データベーストランザクションの分離レベルで 定義した振る舞いを期待できます。 トランザクションスコープのキャッシュでもある Session のお陰で、 識別子やクエリにより検索したエンティティはリピータブルリードになります (スカラー値を返すようなレポートクエリは違います)。" +#. Tag: para +#: transactions.xml:14 +#, no-c-format +msgid "" +"Hibernate does not lock objects in memory. Your application can expect the " +"behavior as defined by the isolation level of your database transactions. " +"Note that thanks to the Session, which is also a " +"transaction-scoped cache, Hibernate provides repeatable reads for lookup by " +"identifier and entity queries (not reporting queries that return scalar " +"values)." +msgstr "" +"Hibernateはメモリ内のオブジェクトをロックしません。 アプリケーションは、デー" +"タベーストランザクションの分離レベルで 定義した振る舞いを期待できます。 トラ" +"ンザクションスコープのキャッシュでもある Session のお陰" +"で、 識別子やクエリにより検索したエンティティはリピータブルリードになります " +"(スカラー値を返すようなレポートクエリは違います)。" -#: index.docbook:22 -msgid "In addition to versioning for automatic optimistic concurrency control, Hibernate also offers a (minor) API for pessimistic locking of rows, using the SELECT FOR UPDATE syntax. Optimistic concurrency control and this API are discussed later in this chapter." -msgstr "バージョニングによる自動的な楽観的同時実行制御に加えて、 SELECT FOR UPDATE 文を使用して、 行を悲観的ロックするための(マイナーな)APIも提供します。 楽観的同時実行制御とこのAPIについては、この章の後のほうで議論します。" +#. Tag: para +#: transactions.xml:22 +#, no-c-format +msgid "" +"In addition to versioning for automatic optimistic concurrency control, " +"Hibernate also offers a (minor) API for pessimistic locking of rows, using " +"the SELECT FOR UPDATE syntax. Optimistic concurrency " +"control and this API are discussed later in this chapter." +msgstr "" +"バージョニングによる自動的な楽観的同時実行制御に加えて、 SELECT FOR " +"UPDATE 文を使用して、 行を悲観的ロックするための(マイナーな)APIも" +"提供します。 楽観的同時実行制御とこのAPIについては、この章の後のほうで議論し" +"ます。" -#: index.docbook:29 -msgid "We start the discussion of concurrency control in Hibernate with the granularity of Configuration, SessionFactory, and Session, as well as database transactions and long conversations." -msgstr "データベーストランザクションや長い対話(conversation、ロングトランザクション)だけでなく、 ConfigurationSessionFactory、および Session という粒度でHibernateが行う同時実行制御の議論を始めます。" +#. Tag: para +#: transactions.xml:29 +#, no-c-format +msgid "" +"We start the discussion of concurrency control in Hibernate with the " +"granularity of Configuration, SessionFactory, and Session, as well as database transactions " +"and long conversations." +msgstr "" +"データベーストランザクションや長い対話(conversation、ロングトランザクショ" +"ン)だけでなく、 ConfigurationSessionFactory、および Session という粒度でHibernateが行う同時実" +"行制御の議論を始めます。" -#: index.docbook:36 +#. Tag: title +#: transactions.xml:36 +#, no-c-format msgid "Session and transaction scopes" msgstr "sessionスコープとtransactionスコープ" -#: index.docbook:38 -msgid "A SessionFactory is an expensive-to-create, threadsafe object intended to be shared by all application threads. It is created once, usually on application startup, from a Configuration instance." -msgstr "SessionFactory は生成することが高価で、 スレッドセーフなオブジェクトです。 よって、アプリケーションのすべてのスレッドで共有すべきです。 通常、アプリケーションの起動時に、 Configuration インスタンスから1度だけ生成します。" +#. Tag: para +#: transactions.xml:38 +#, no-c-format +msgid "" +"A SessionFactory is an expensive-to-create, threadsafe " +"object intended to be shared by all application threads. It is created once, " +"usually on application startup, from a Configuration " +"instance." +msgstr "" +"SessionFactory は生成することが高価で、 スレッドセーフなオ" +"ブジェクトです。 よって、アプリケーションのすべてのスレッドで共有すべきで" +"す。 通常、アプリケーションの起動時に、 Configuration イン" +"スタンスから1度だけ生成します。" -#: index.docbook:44 -msgid "A Session is an inexpensive, non-threadsafe object that should be used once, for a single request, a conversation, single unit of work, and then discarded. A Session will not obtain a JDBC Connection (or a Datasource) unless it is needed, hence consume no resources until used." -msgstr "Session は高価ではなく、スレッドセーフなオブジェクトでもありません。 よって、1つの要求や1つの対話、1つの作業単位(unit of work)に対して1度だけ使い、 その後で捨てるべきです。 Session は必要になるまで、 JDBC Connection(もしくは DataSource)を獲得しません。 ゆえに、実際に使用するときまでリソースを消費しません。" +#. Tag: para +#: transactions.xml:44 +#, no-c-format +msgid "" +"A Session is an inexpensive, non-threadsafe object that " +"should be used once, for a single request, a conversation, single unit of " +"work, and then discarded. A Session will not obtain a " +"JDBC Connection (or a Datasource) " +"unless it is needed, hence consume no resources until used." +msgstr "" +"Session は高価ではなく、スレッドセーフなオブジェクトでもあ" +"りません。 よって、1つの要求や1つの対話、1つの作業単位(unit of work)に対" +"して1度だけ使い、 その後で捨てるべきです。 Session は必要" +"になるまで、 JDBC Connection(もしくは " +"DataSource)を獲得しません。 ゆえに、実際に使用するときま" +"でリソースを消費しません。" -#: index.docbook:52 -msgid "To complete this picture you also have to think about database transactions. A database transaction has to be as short as possible, to reduce lock contention in the database. Long database transactions will prevent your application from scaling to highly concurrent load. Hence, it is almost never good design to hold a database transaction open during user think time, until the unit of work is complete." -msgstr "この状況を完了させるために、 データベーストランザクションについても考えなければなりません。 データベース内のロックの競合を少なくするために、 データベーストランザクションは可能な限り短くするべきです。 長いデータベーストランザクションは、アプリケーションの高い並列実行性を阻害します。 ゆえに、ユーザーが考えている間(作業単位が完了するまで)データベーストランザクションを 開いたままにするのは、たいていの場合よい設計とはいえません。" +#. Tag: para +#: transactions.xml:52 +#, no-c-format +msgid "" +"To complete this picture you also have to think about database transactions. " +"A database transaction has to be as short as possible, to reduce lock " +"contention in the database. Long database transactions will prevent your " +"application from scaling to highly concurrent load. Hence, it is almost " +"never good design to hold a database transaction open during user think " +"time, until the unit of work is complete." +msgstr "" +"この状況を完了させるために、 データベーストランザクションについても考えなけれ" +"ばなりません。 データベース内のロックの競合を少なくするために、 データベース" +"トランザクションは可能な限り短くするべきです。 長いデータベーストランザクショ" +"ンは、アプリケーションの高い並列実行性を阻害します。 ゆえに、ユーザーが考えて" +"いる間(作業単位が完了するまで)データベーストランザクションを 開いたままにす" +"るのは、たいていの場合よい設計とはいえません。" -#: index.docbook:61 -msgid "What is the scope of a unit of work? Can a single Hibernate Session span several database transactions or is this a one-to-one relationship of scopes? When should you open and close a Session and how do you demarcate the database transaction boundaries?" -msgstr "作業単位というスコープとは何でしょうか? 1つのHibernate Session は、 いくつかのデータベーストランザクションをまたがることができるでしょうか? または、スコープと一対一の関係でしょうか? いつ Session を開き、閉じるべきでしょうか? そして、データベーストランザクション境界をどのように分けるのでしょうか?" +#. Tag: para +#: transactions.xml:61 +#, no-c-format +msgid "" +"What is the scope of a unit of work? Can a single Hibernate " +"Session span several database transactions or is this a " +"one-to-one relationship of scopes? When should you open and close a " +"Session and how do you demarcate the database transaction " +"boundaries?" +msgstr "" +"作業単位というスコープとは何でしょうか? 1つのHibernate Session は、 いくつかのデータベーストランザクションをまたがることができるで" +"しょうか? または、スコープと一対一の関係でしょうか? いつ Session を開き、閉じるべきでしょうか? そして、データベーストランザクション" +"境界をどのように分けるのでしょうか?" -#: index.docbook:69 +#. Tag: title +#: transactions.xml:69 +#, no-c-format msgid "Unit of work" msgstr "作業単位(Unit of work)" -#: index.docbook:71 -msgid "First, don't use the session-per-operation antipattern, that is, don't open and close a Session for every simple database call in a single thread! Of course, the same is true for database transactions. Database calls in an application are made using a planned sequence, they are grouped into atomic units of work. (Note that this also means that auto-commit after every single SQL statement is useless in an application, this mode is intended for ad-hoc SQL console work. Hibernate disables, or expects the application server to do so, auto-commit mode immediately.) Database transactions are never optional, all communication with a database has to occur inside a transaction, no matter if you read or write data. As explained, auto-commit behavior for reading data should be avoided, as many small transactions are unlikely to perform better than one clearly defined unit of work. The latter is also much more maintainable and extensible." -msgstr "1つ目は、session-per-operation アンチパターンを使ってはいけません。 すなわち、1つのスレッドの中で、単純なデータベース呼び出しのたびに Session を開いて、閉じてはいけません! もちろん、データベーストランザクションについても同様です。 アプリケーション中のデータベース呼び出しは、 計画されたシーケンス(planned sequence)を使い、 アトミックな作業単位に分類されます。 (1つのSQL文ごとにコミットする自動コミットが、 使われないという意味でもあることに注意してください。 自動コミットは、SQLコンソールでアドホックな作業をする際に使うものです。 Hibernateは直ちに自動コミットモードを無効にします。 もしくは、アプリケーションサーバーが無効化することを期待します。) データベーストランザクションはオプションではありません。 データベースとのすべての通信は、データの読み込みであっても、書き込みであっても、 トランザクションの中で行わなければなりません。 説明すると、データ読み込みに対して、自動コミットは避けるべきです。 なぜなら、多数の小さなトランザクションは、明確に定義された1つの作業単位と比べて、 パフォーマンスがよくなることはありません。 後者は保守性や拡張性もよりすぐれています。" +#. Tag: para +#: transactions.xml:71 +#, no-c-format +msgid "" +"First, don't use the session-per-operation antipattern, " +"that is, don't open and close a Session for every simple " +"database call in a single thread! Of course, the same is true for database " +"transactions. Database calls in an application are made using a planned " +"sequence, they are grouped into atomic units of work. (Note that this also " +"means that auto-commit after every single SQL statement is useless in an " +"application, this mode is intended for ad-hoc SQL console work. Hibernate " +"disables, or expects the application server to do so, auto-commit mode " +"immediately.) Database transactions are never optional, all communication " +"with a database has to occur inside a transaction, no matter if you read or " +"write data. As explained, auto-commit behavior for reading data should be " +"avoided, as many small transactions are unlikely to perform better than one " +"clearly defined unit of work. The latter is also much more maintainable and " +"extensible." +msgstr "" +"1つ目は、session-per-operation アンチパターンを使っては" +"いけません。 すなわち、1つのスレッドの中で、単純なデータベース呼び出しのたび" +"に Session を開いて、閉じてはいけません! もちろん、データ" +"ベーストランザクションについても同様です。 アプリケーション中のデータベース呼" +"び出しは、 計画されたシーケンス(planned sequence)を使い、 アトミックな作業" +"単位に分類されます。 (1つのSQL文ごとにコミットする自動コミットが、 使われな" +"いという意味でもあることに注意してください。 自動コミットは、SQLコンソールで" +"アドホックな作業をする際に使うものです。 Hibernateは直ちに自動コミットモード" +"を無効にします。 もしくは、アプリケーションサーバーが無効化することを期待しま" +"す。) データベーストランザクションはオプションではありません。 データベース" +"とのすべての通信は、データの読み込みであっても、書き込みであっても、 トランザ" +"クションの中で行わなければなりません。 説明すると、データ読み込みに対して、自" +"動コミットは避けるべきです。 なぜなら、多数の小さなトランザクションは、明確に" +"定義された1つの作業単位と比べて、 パフォーマンスがよくなることはありませ" +"ん。 後者は保守性や拡張性もよりすぐれています。" -#: index.docbook:87 -msgid "The most common pattern in a multi-user client/server application is session-per-request. In this model, a request from the client is send to the server (where the Hibernate persistence layer runs), a new Hibernate Session is opened, and all database operations are executed in this unit of work. Once the work has been completed (and the response for the client has been prepared), the session is flushed and closed. You would also use a single database transaction to serve the clients request, starting and committing it when you open and close the Session. The relationship between the two is one-to-one and this model is a perfect fit for many applications." -msgstr "マルチユーザーのクライアント/サーバーアプリケーションの中で、 最もよく使われるパターンは、session-per-request です。 このモデルの中では、 クライアントから(Hibernate永続化層が動作する)サーバーへリクエストが送られ、 新しいHibernate Session が開かれます。 そして、この作業単位の中ですべてのデータベース処理が実行されます。 作業が完了した(そして、クライアントへのレスポンスが準備できた)時点で、 session をフラッシュし、閉じます。 クライアントの要求を処理するために、1つのデータベーストランザクションを使用するでしょう。 Session を開き、閉じる際に、 データベーストランザクションを開始し、コミットします。 二つの関係は一対一です。 このモデルは多くのアプリケーションに完全に適合します。" +#. Tag: para +#: transactions.xml:87 +#, no-c-format +msgid "" +"The most common pattern in a multi-user client/server application is " +"session-per-request. In this model, a request from the " +"client is send to the server (where the Hibernate persistence layer runs), a " +"new Hibernate Session is opened, and all database " +"operations are executed in this unit of work. Once the work has been " +"completed (and the response for the client has been prepared), the session " +"is flushed and closed. You would also use a single database transaction to " +"serve the clients request, starting and committing it when you open and " +"close the Session. The relationship between the two is " +"one-to-one and this model is a perfect fit for many applications." +msgstr "" +"マルチユーザーのクライアント/サーバーアプリケーションの中で、 最もよく使われ" +"るパターンは、session-per-request です。 このモデルの中" +"では、 クライアントから(Hibernate永続化層が動作する)サーバーへリクエストが" +"送られ、 新しいHibernate Session が開かれます。 そして、こ" +"の作業単位の中ですべてのデータベース処理が実行されます。 作業が完了した(そし" +"て、クライアントへのレスポンスが準備できた)時点で、 session をフラッシュし、" +"閉じます。 クライアントの要求を処理するために、1つのデータベーストランザク" +"ションを使用するでしょう。 Session を開き、閉じる際に、 " +"データベーストランザクションを開始し、コミットします。 二つの関係は一対一で" +"す。 このモデルは多くのアプリケーションに完全に適合します。" -#: index.docbook:99 -msgid "The challenge lies in the implementation. Hibernate provides built-in management of the \"current session\" to simplify this pattern. All you have to do is start a transaction when a server request has to be processed, and end the transaction before the response is send to the client. You can do this in any way you like, common solutions are ServletFilter, AOP interceptor with a pointcut on the service methods, or a proxy/interception container. An EJB container is a standardized way to implement cross-cutting aspects such as transaction demarcation on EJB session beans, declaratively with CMT. If you decide to use programmatic transaction demarcation, prefer the Hibernate Transaction API shown later in this chapter, for ease of use and code portability." -msgstr "以降の実装にチャレンジしてください。 Session を持ち、トランザクションを正確に開始し、終わらせるだけでなく、 データアクセス操作も得やすくする必要があります。 リクエストがサーバーにヒットした際と、レスポンスを送信する前に、実行されるinterceptor (例えば、ServletFilter)を使って、作業単位の境界を実装するのが理想的です。 ThreadLocal 変数を使って、 リクエストを処理するスレッドに Session を結びつけることを推奨します。 これにより、スレッド内で実行されるすべてのコードで、 (static変数にアクセスするように)簡単に Session にアクセスできるようになります。 選択したデータベーストランザクション境界の機構次第で、ThreadLocal 変数の中にトランザクションコンテキストを保持するかもしれません。 この実装パターンは、ThreadLocal Session および Open Session in View という名前で知られています。 本ドキュメントで先に見せた HibernateUtil ヘルパークラスを拡張することで、 このパターンを容易に実装できます。 もちろん、interceptor を実装する方法を見つけ、環境をセットアップする必要があります。 HibernateのWebサイトにあるtipsと例を参照してください。" +#. Tag: para +#: transactions.xml:99 +#, no-c-format +msgid "" +"The challenge lies in the implementation. Hibernate provides built-in " +"management of the \"current session\" to simplify this pattern. All you have " +"to do is start a transaction when a server request has to be processed, and " +"end the transaction before the response is send to the client. You can do " +"this in any way you like, common solutions are ServletFilter, AOP interceptor with a pointcut on the service methods, or a proxy/" +"interception container. An EJB container is a standardized way to implement " +"cross-cutting aspects such as transaction demarcation on EJB session beans, " +"declaratively with CMT. If you decide to use programmatic transaction " +"demarcation, prefer the Hibernate Transaction API shown " +"later in this chapter, for ease of use and code portability." +msgstr "" +"以降の実装にチャレンジしてください。 Hibernateは単純なこのパターンのために、" +"予め組み込まれた 「current session」の管理を提供します。 サーバーリクエストを" +"処理する際はトランザクションを開始しなければなりません。 そして、レスポンスを" +"クライアントに送信する前にトランザクションを終わらせます。 好きな方法で実現で" +"きます。一般的な解決策は ServletFilter や サービスメソッド" +"をポイントカットしてAOPインターセプター、 proxy/interception コンテナです。 " +"EJBコンテナはEJBセッションビーンをトランザクション境界として アスペクトをクロ" +"スカットする実装の標準的な方法です(CMTによる宣言的)。 プログラムによるトラ" +"ンザクション境界を使うと決めた場合、 簡単に使うため、互換性のあるコードにする" +"ために、 この章の後のほうにあるHibernate Transaction APIの" +"ほうがよいです。" -#: index.docbook:112 -msgid "Your application code can access a \"current session\" to process the request by simply calling sessionFactory.getCurrentSession() anywhere and as often as needed. You will always get a Session scoped to the current database transaction. This has to be configured for either resource-local or JTA environments, see ." -msgstr "以降の実装にチャレンジしてください。 Hibernateは単純なこのパターンのために、予め組み込まれた 「current session」の管理を提供します。 サーバーリクエストを処理する際はトランザクションを開始しなければなりません。 そして、レスポンスをクライアントに送信する前にトランザクションを終わらせます。 好きな方法で実現できます。一般的な解決策は ServletFilter や サービスメソッドをポイントカットしてAOPインターセプター、 proxy/interception コンテナです。 EJBコンテナはEJBセッションビーンをトランザクション境界として アスペクトをクロスカットする実装の標準的な方法です(CMTによる宣言的)。 プログラムによるトランザクション境界を使うと決めた場合、 簡単に使うため、互換性のあるコードにするために、 この章の後のほうにあるHibernate Transaction APIのほうがよいです。" +#. Tag: para +#: transactions.xml:112 +#, no-c-format +msgid "" +"Your application code can access a \"current session\" to process the " +"request by simply calling sessionFactory.getCurrentSession() anywhere and as often as needed. You will always get a " +"Session scoped to the current database transaction. This " +"has to be configured for either resource-local or JTA environments, see " +"." +msgstr "" +"アプリケーションのコードは、必要なときにどこでも、何回でも、 単に " +"sessionFactory.getCurrentSession() を呼び出すだけで 「現在" +"のセッション」にアクセスできます。 現在のデータベーストランザクションへの " +"セッション を常に取得します。 リソース・ローカルな環境、も" +"しくはJTA環境を構成しなければなりません ( を参照してください)。" -#: index.docbook:120 -msgid "Sometimes it is convenient to extend the scope of a Session and database transaction until the \"view has been rendered\". This is especially useful in servlet applications that utilize a separate rendering phase after the request has been processed. Extending the database transaction until view rendering is complete is easy to do if you implement your own interceptor. However, it is not easily doable if you rely on EJBs with container-managed transactions, as a transaction will be completed when an EJB method returns, before rendering of any view can start. See the Hibernate website and forum for tips and examples around this Open Session in View pattern." -msgstr "アプリケーションのコードは、必要なときにどこでも、何回でも、 単に sessionFactory.getCurrentSession() を呼び出すだけで 「現在のセッション」にアクセスできます。 現在のデータベーストランザクションへの セッション を常に取得します。 リソース・ローカルな環境、もしくはJTA環境を構成しなければなりません ( を参照してください)。" +#. Tag: para +#: transactions.xml:120 +#, no-c-format +msgid "" +"Sometimes it is convenient to extend the scope of a Session and database transaction until the \"view has been rendered\". This " +"is especially useful in servlet applications that utilize a separate " +"rendering phase after the request has been processed. Extending the database " +"transaction until view rendering is complete is easy to do if you implement " +"your own interceptor. However, it is not easily doable if you rely on EJBs " +"with container-managed transactions, as a transaction will be completed when " +"an EJB method returns, before rendering of any view can start. See the " +"Hibernate website and forum for tips and examples around this Open " +"Session in View pattern." +msgstr "" +"ときどき、「ビューを描画する」まで セッション とデータベー" +"ストランザクションのスコープを拡張すると便利なことがあります。 これは、要求の" +"処理と描画のフェーズを分けている サーブレットアプリケーションにおいて特に役立" +"ちます。 独自のインターセプタを実装すれば、 ビューを描画するまでデータベース" +"トランザクションを拡張するのは簡単です。 しかし、コンテナ管理トランザクション" +"のEJBに頼る場合は、簡単にはできません。 なぜなら、ビューの描画を開始する前" +"に、EJBのメソッドがリターンした際に、 トランザクションが完了するためです。 こ" +"の Open Session in View パターンに関連するヒントと例につ" +"いては、 HibernateのWebサイトやフォーラムを参照してください。" -#: index.docbook:135 +#. Tag: title +#: transactions.xml:135 +#, no-c-format msgid "Long conversations" -msgstr "ときどき、「ビューを描画する」まで セッション とデータベーストランザクションのスコープを拡張すると便利なことがあります。 これは、要求の処理と描画のフェーズを分けている サーブレットアプリケーションにおいて特に役立ちます。 独自のインターセプタを実装すれば、 ビューを描画するまでデータベーストランザクションを拡張するのは簡単です。 しかし、コンテナ管理トランザクションのEJBに頼る場合は、簡単にはできません。 なぜなら、ビューの描画を開始する前に、EJBのメソッドがリターンした際に、 トランザクションが完了するためです。 この Open Session in View パターンに関連するヒントと例については、 HibernateのWebサイトやフォーラムを参照してください。" - -#: index.docbook:137 -msgid "The session-per-request pattern is not the only useful concept you can use to design units of work. Many business processes require a whole series of interactions with the user interleaved with database accesses. In web and enterprise applications it is not acceptable for a database transaction to span a user interaction. Consider the following example:" msgstr "長い対話" -#: index.docbook:147 -msgid "The first screen of a dialog opens, the data seen by the user has been loaded in a particular Session and database transaction. The user is free to modify the objects." -msgstr "session-per-requestパターンは、作業単位を設計する際に役立つ考えというだけではありません。 多くのビジネスプロセスは、ユーザーとの一連の相互作用全体を要求します。 その相互作用には、データベースアクセスが含まれます。 Webとエンタープライズアプリケーションでは、データベーストランザクションが ユーザとの相互作用にまで渡ることは許されません。 次の例をよく考えてみてください。" +#. Tag: para +#: transactions.xml:137 +#, no-c-format +msgid "" +"The session-per-request pattern is not the only useful concept you can use " +"to design units of work. Many business processes require a whole series of " +"interactions with the user interleaved with database accesses. In web and " +"enterprise applications it is not acceptable for a database transaction to " +"span a user interaction. Consider the following example:" +msgstr "" +"session-per-requestパターンは、作業単位を設計する際に役立つ考えというだけでは" +"ありません。 多くのビジネスプロセスは、ユーザーとの一連の相互作用全体を要求し" +"ます。 その相互作用には、データベースアクセスが含まれます。 Webとエンタープラ" +"イズアプリケーションでは、データベーストランザクションが ユーザとの相互作用に" +"まで渡ることは許されません。 次の例をよく考えてみてください。" -#: index.docbook:154 -msgid "The user clicks \"Save\" after 5 minutes and expects his modifications to be made persistent; he also expects that he was the only person editing this information and that no conflicting modification can occur." -msgstr "ダイアログの最初の画面が開き、個々の Session とデータベーストランザクションの中でロードされたデータをユーザーに見せます。 ユーザーはオブジェクトを自由に修正できます。" +#. Tag: para +#: transactions.xml:147 +#, no-c-format +msgid "" +"The first screen of a dialog opens, the data seen by the user has been " +"loaded in a particular Session and database transaction. " +"The user is free to modify the objects." +msgstr "" +"ダイアログの最初の画面が開き、個々の Session とデータベー" +"ストランザクションの中でロードされたデータをユーザーに見せます。 ユーザーはオ" +"ブジェクトを自由に修正できます。" -#: index.docbook:162 -msgid "We call this unit of work, from the point of view of the user, a long running conversation (or application transaction). There are many ways how you can implement this in your application." -msgstr "5分後にユーザーは「Save」をクリックし、修正が永続化されるのを期待します。 また、この情報を編集したのは自分1人だけで、 修正のコンフリクトは発生しないと期待します。" +#. Tag: para +#: transactions.xml:154 +#, no-c-format +msgid "" +"The user clicks \"Save\" after 5 minutes and expects his modifications to be " +"made persistent; he also expects that he was the only person editing this " +"information and that no conflicting modification can occur." +msgstr "" +"5分後にユーザーは「Save」をクリックし、修正が永続化されるのを期待します。 ま" +"た、この情報を編集したのは自分1人だけで、 修正のコンフリクトは発生しないと期" +"待します。" -#: index.docbook:168 -msgid "A first naive implementation might keep the Session and database transaction open during user think time, with locks held in the database to prevent concurrent modification, and to guarantee isolation and atomicity. This is of course an anti-pattern, since lock contention would not allow the application to scale with the number of concurrent users." -msgstr "この作業単位を(ユーザーの視点で)長期の 対話 (もしくは、アプリケーショントランザクション )と呼びます。 アプリケーションにこれを実装する方法はたくさんあります。" +#. Tag: para +#: transactions.xml:162 +#, no-c-format +msgid "" +"We call this unit of work, from the point of view of the user, a long " +"running conversation (or application " +"transaction). There are many ways how you can implement this in " +"your application." +msgstr "" +"この作業単位を(ユーザーの視点で)長期の 対話 (もしく" +"は、アプリケーショントランザクション )と呼びます。 アプ" +"リケーションにこれを実装する方法はたくさんあります。" -#: index.docbook:176 -msgid "Clearly, we have to use several database transactions to implement the converastion. In this case, maintaining isolation of business processes becomes the partial responsibility of the application tier. A single conversation usually spans several database transactions. It will be atomic if only one of these database transactions (the last one) stores the updated data, all others simply read data (e.g. in a wizard-style dialog spanning several request/response cycles). This is easier to implement than it might sound, especially if you use Hibernate's features:" -msgstr "最初に思いつく実装は、ユーザーが考えている間、Session とデータベーストランザクションを開いたままにしておくことです。 同時に修正されず、分離と原子性が保証されるように、 データベース内のロックは保持したままにします。 もちろん、これはアンチパターンです。 なぜなら、ロックの競合が発生すると、 アプリケーションが同時ユーザー数に応じてスケールアップできなくなるからです。" +#. Tag: para +#: transactions.xml:168 +#, no-c-format +msgid "" +"A first naive implementation might keep the Session and " +"database transaction open during user think time, with locks held in the " +"database to prevent concurrent modification, and to guarantee isolation and " +"atomicity. This is of course an anti-pattern, since lock contention would " +"not allow the application to scale with the number of concurrent users." +msgstr "" +"最初に思いつく実装は、ユーザーが考えている間、Session と" +"データベーストランザクションを開いたままにしておくことです。 同時に修正され" +"ず、分離と原子性が保証されるように、 データベース内のロックは保持したままにし" +"ます。 もちろん、これはアンチパターンです。 なぜなら、ロックの競合が発生する" +"と、 アプリケーションが同時ユーザー数に応じてスケールアップできなくなるからで" +"す。" -#: index.docbook:189 -msgid "Automatic Versioning - Hibernate can do automatic optimistic concurrency control for you, it can automatically detect if a concurrent modification occured during user think time. Usually we only check at the end of the conversation." -msgstr "明らかに、対話を実装するためには、 いくつかのデータベーストランザクションを使用するべきです。 この場合、ビジネスプロセスの分離を維持することは、 アプリケーション層の責務の1つになります。 1つの対話は、 通常いくつかのデータベーストランザクションに及びます。 データベーストランザクションの1つのみ(最後の1つ)が更新したデータを保存し、 他はデータを読むだけであれば、それはアトミックです (例えば、いくつかの要求/応答を繰り返すウィザード形式のダイアログ)。 これは聞くより、実装したほうが簡単です。 Hibernateの機能を使うのであれば、特に簡単です。" +#. Tag: para +#: transactions.xml:176 +#, no-c-format +msgid "" +"Clearly, we have to use several database transactions to implement the " +"converastion. In this case, maintaining isolation of business processes " +"becomes the partial responsibility of the application tier. A single " +"conversation usually spans several database transactions. It will be atomic " +"if only one of these database transactions (the last one) stores the updated " +"data, all others simply read data (e.g. in a wizard-style dialog spanning " +"several request/response cycles). This is easier to implement than it might " +"sound, especially if you use Hibernate's features:" +msgstr "" +"明らかに、対話を実装するためには、 いくつかのデータベーストランザクションを使" +"用するべきです。 この場合、ビジネスプロセスの分離を維持することは、 アプリ" +"ケーション層の責務の1つになります。 1つの対話は、 通常いくつかのデータベー" +"ストランザクションに及びます。 データベーストランザクションの1つのみ(最後の" +"1つ)が更新したデータを保存し、 他はデータを読むだけであれば、それはアトミッ" +"クです (例えば、いくつかの要求/応答を繰り返すウィザード形式のダイアロ" +"グ)。 これは聞くより、実装したほうが簡単です。 Hibernateの機能を使うのであれ" +"ば、特に簡単です。" -#: index.docbook:197 -msgid "Detached Objects - If you decide to use the already discussed session-per-request pattern, all loaded instances will be in detached state during user think time. Hibernate allows you to reattach the objects and persist the modifications, the pattern is called session-per-request-with-detached-objects. Automatic versioning is used to isolate concurrent modifications." -msgstr "自動バージョニング - Hibernateは自動的に楽観的同時実行制御ができます。 ユーザーが考えている間に同時に修正がおきた場合、自動的に検出できます。 通常、対話の終了時にチェックするだけです。" +#. Tag: para +#: transactions.xml:189 +#, no-c-format +msgid "" +"Automatic Versioning - Hibernate can do automatic " +"optimistic concurrency control for you, it can automatically detect if a " +"concurrent modification occured during user think time. Usually we only " +"check at the end of the conversation." +msgstr "" +"自動バージョニング - Hibernateは自動的に楽観的同時実行制" +"御ができます。 ユーザーが考えている間に同時に修正がおきた場合、自動的に検出で" +"きます。 通常、対話の終了時にチェックするだけです。" -#: index.docbook:207 -msgid "Extended (or Long) Session - The Hibernate Session may be disconnected from the underlying JDBC connection after the database transaction has been committed, and reconnected when a new client request occurs. This pattern is known as session-per-conversation and makes even reattachment unnecessary. Automatic versioning is used to isolate concurrent modifications and the Session is usually not allowed to be flushed automatically, but explicitely." -msgstr "分離(Detached)オブジェクト - すでに議論した session-per-request パターンを使うと決定した場合、 ロードされたすべてのインスタンスは、ユーザが考えている間は、 セッションから分離された状態になります。 オブジェクトをセッションに再追加し、修正を永続化できます。 これを session-per-request-with-detached-objects パターンと呼びます。 自動バージョニングを使うことで、同時に行われる修正を分離できます。" +#. Tag: para +#: transactions.xml:197 +#, no-c-format +msgid "" +"Detached Objects - If you decide to use the already " +"discussed session-per-request pattern, all loaded " +"instances will be in detached state during user think time. Hibernate allows " +"you to reattach the objects and persist the modifications, the pattern is " +"called session-per-request-with-detached-objects. " +"Automatic versioning is used to isolate concurrent modifications." +msgstr "" +"分離(Detached)オブジェクト - すでに議論した " +"session-per-request パターンを使うと決定した場合、 ロー" +"ドされたすべてのインスタンスは、ユーザが考えている間は、 セッションから分離さ" +"れた状態になります。 オブジェクトをセッションに再追加し、修正を永続化できま" +"す。 これを session-per-request-with-detached-objects パ" +"ターンと呼びます。 自動バージョニングを使うことで、同時に行われる修正を分離で" +"きます。" -#: index.docbook:220 -msgid "Both session-per-request-with-detached-objects and session-per-conversation have advantages and disadvantages, we discuss them later in this chapter in the context of optimistic concurrency control." -msgstr "拡張(もしくは、長い)セッション - Hibernateの Session は、 データベーストランザクションをコミットした後、 裏で結びついているJDBCコネクションを切断できます。 そして、クライアントからの新しい要求が発生した際に、再接続できます。 このパターンは、session-per-conversation という名で知られており、オブジェクトをセッションへ再追加することさえ不要にします。 自動バージョニングを使うことで、同時に行われる修正を分離できます。 通常 Session を自動的にフラッシュさせず、 明示的にフラッシュします。" +#. Tag: para +#: transactions.xml:207 +#, no-c-format +msgid "" +"Extended (or Long) Session - The Hibernate " +"Session may be disconnected from the underlying JDBC " +"connection after the database transaction has been committed, and " +"reconnected when a new client request occurs. This pattern is known as " +"session-per-conversation and makes even reattachment " +"unnecessary. Automatic versioning is used to isolate concurrent " +"modifications and the Session is usually not allowed to " +"be flushed automatically, but explicitely." +msgstr "" +"拡張(もしくは、長い)セッション - Hibernateの " +"Session は、 データベーストランザクションをコミットした" +"後、 裏で結びついているJDBCコネクションを切断できます。 そして、クライアント" +"からの新しい要求が発生した際に、再接続できます。 このパターンは、" +"session-per-conversation という名で知られており、オブ" +"ジェクトをセッションへ再追加することさえ不要にします。 自動バージョニングを使" +"うことで、同時に行われる修正を分離できます。 通常 Session " +"を自動的にフラッシュさせず、 明示的にフラッシュします。" -#: index.docbook:229 +#. Tag: para +#: transactions.xml:220 +#, no-c-format +msgid "" +"Both session-per-request-with-detached-objects and " +"session-per-conversation have advantages and " +"disadvantages, we discuss them later in this chapter in the context of " +"optimistic concurrency control." +msgstr "" +"session-per-request-with-detached-objects と " +"session-per-conversation の2つは、 利点と欠点を持ってい" +"ます。 これについては、この章の後のほうで、楽観的同時実行制御の文脈の中で議論" +"します。" + +#. Tag: title +#: transactions.xml:229 +#, no-c-format msgid "Considering object identity" -msgstr "session-per-request-with-detached-objectssession-per-conversation の2つは、 利点と欠点を持っています。 これについては、この章の後のほうで、楽観的同時実行制御の文脈の中で議論します。" - -#: index.docbook:231 -msgid "An application may concurrently access the same persistent state in two different Sessions. However, an instance of a persistent class is never shared between two Session instances. Hence there are two different notions of identity:" msgstr "オブジェクト識別子を考える" -#: index.docbook:240 -msgid "Database Identity" -msgstr "アプリケーションは、2つの異なる Session から 同じ永続状態に同時にアクセスできます。 しかし、2つの Session インスタンスが 永続性クラスの1つのインスタンスを共有することはできません。 ゆえに、識別子には2つの異なる概念があるということになります。" +#. Tag: para +#: transactions.xml:231 +#, no-c-format +msgid "" +"An application may concurrently access the same persistent state in two " +"different Sessions. However, an instance of a persistent " +"class is never shared between two Session instances. " +"Hence there are two different notions of identity:" +msgstr "" +"アプリケーションは、2つの異なる Session から 同じ永続状態" +"に同時にアクセスできます。 しかし、2つの Session インスタ" +"ンスが 永続性クラスの1つのインスタンスを共有することはできません。 ゆえに、" +"識別子には2つの異なる概念があるということになります。" -#: index.docbook:243 -msgid "foo.getId().equals( bar.getId() )" +#. Tag: term +#: transactions.xml:240 +#, no-c-format +msgid "Database Identity" msgstr "データベース識別子" -#: index.docbook:248 -msgid "JVM Identity" +#. Tag: literal +#: transactions.xml:243 +#, no-c-format +msgid "foo.getId().equals( bar.getId() )" msgstr "foo.getId().equals( bar.getId() )" -#: index.docbook:251 -msgid "foo==bar" +#. Tag: term +#: transactions.xml:248 +#, no-c-format +msgid "JVM Identity" msgstr "JVM識別子" -#: index.docbook:257 -msgid "Then for objects attached to a particular Session (i.e. in the scope of a Session) the two notions are equivalent, and JVM identity for database identity is guaranteed by Hibernate. However, while the application might concurrently access the \"same\" (persistent identity) business object in two different sessions, the two instances will actually be \"different\" (JVM identity). Conflicts are resolved using (automatic versioning) at flush/commit time, using an optimistic approach." +#. Tag: literal +#: transactions.xml:251 +#, no-c-format +msgid "foo==bar" msgstr "foo==bar" -#: index.docbook:266 -msgid "This approach leaves Hibernate and the database to worry about concurrency; it also provides the best scalability, since guaranteeing identity in single-threaded units of work only doesn't need expensive locking or other means of synchronization. The application never needs to synchronize on any business object, as long as it sticks to a single thread per Session. Within a Session the application may safely use == to compare objects." -msgstr "個々の Session に追加されたオブジェクトにとって (すなわち、1つの Session のスコープの中では)、2つの概念は同じです。 データベース同一性とJVM同一性が一致することを、Hibernateが保証します。 しかし、アプリケーションが2つの異なるセッションから 「同じ」(永続性識別子の)ビジネスオブジェクトに同時にアクセスする限り、 2つのインスタンスは実際に(JVM識別子が)「異なり」ます。 楽観的アプローチによって、(自動バージョニングの)フラッシュ/コミット時に コンフリクトが解決されます。" +#. Tag: para +#: transactions.xml:257 +#, fuzzy, no-c-format +msgid "" +"Then for objects attached to a particular " +"Session (i.e. in the scope of a Session) the two notions are equivalent, and JVM identity for database " +"identity is guaranteed by Hibernate. However, while the application might " +"concurrently access the \"same\" (persistent identity) business object in " +"two different sessions, the two instances will actually be \"different" +"\" (JVM identity). Conflicts are resolved using (automatic versioning) at " +"flush/commit time, using an optimistic approach." +msgstr "" +"個々のSession に追加されたオブジェク" +"トにとって (すなわち、1つの Session のスコープの中で" +"は)、2つの概念は同じです。 データベース同一性とJVM同一性が一致することを、" +"Hibernateが保証します。 しかし、アプリケーションが2つの異なるセッションから " +"「同じ」(永続性識別子の)ビジネスオブジェクトに同時にアクセスする限り、 2つ" +"のインスタンスは実際に(JVM識別子が)「異なり」ます。 楽観的アプローチによっ" +"て、(自動バージョニングの)フラッシュ/コミット時に コンフリクトが解決されま" +"す。" -#: index.docbook:275 -msgid "However, an application that uses == outside of a Session, might see unexpected results. This might occur even in some unexpected places, for example, if you put two detached instances into the same Set. Both might have the same database identity (i.e. they represent the same row), but JVM identity is by definition not guaranteed for instances in detached state. The developer has to override the equals() and hashCode() methods in persistent classes and implement his own notion of object equality. There is one caveat: Never use the database identifier to implement equality, use a business key, a combination of unique, usually immutable, attributes. The database identifier will change if a transient object is made persistent. If the transient instance (usually together with detached instances) is held in a Set, changing the hashcode breaks the contract of the Set. Attributes for business keys don't have to be as stable as database primary keys, you only have to guarantee stability as long as the objects are in the same Set. See the Hibernate website for a more thorough discussion of this issue. Also note that this is not a Hibernate issue, but simply how Java object identity and equality has to be implemented." -msgstr "このアプローチでは、Hibernateとデータベースに同時実行についての心配が残ります。 一方で、最高のスケーラビリティが提供されます。 なぜなら、1スレッドの作業単位の中で一意性が保証されれば、 高価なロックや同期化が不要になるためです。 Session ごとに1つのスレッドを貼り付ける限り、 アプリケーションはビジネスオブジェクトをsynchronizeする必要はありません。 Session 内では、アプリケーションはオブジェクトを比較するために、 == を安全に使用できます。" +#. Tag: para +#: transactions.xml:266 +#, no-c-format +msgid "" +"This approach leaves Hibernate and the database to worry about concurrency; " +"it also provides the best scalability, since guaranteeing identity in single-" +"threaded units of work only doesn't need expensive locking or other means of " +"synchronization. The application never needs to synchronize on any business " +"object, as long as it sticks to a single thread per Session. Within a Session the application may safely use " +"== to compare objects." +msgstr "" +"このアプローチでは、Hibernateとデータベースに同時実行についての心配が残りま" +"す。 一方で、最高のスケーラビリティが提供されます。 なぜなら、1スレッドの作" +"業単位の中で一意性が保証されれば、 高価なロックや同期化が不要になるためで" +"す。 Session ごとに1つのスレッドを貼り付ける限り、 アプリ" +"ケーションはビジネスオブジェクトをsynchronizeする必要はありません。 " +"Session 内では、アプリケーションはオブジェクトを比較するた" +"めに、 == を安全に使用できます。" -#: index.docbook:296 +#. Tag: para +#: transactions.xml:275 +#, no-c-format +msgid "" +"However, an application that uses == outside of a " +"Session, might see unexpected results. This might occur " +"even in some unexpected places, for example, if you put two detached " +"instances into the same Set. Both might have the same " +"database identity (i.e. they represent the same row), but JVM identity is by " +"definition not guaranteed for instances in detached state. The developer has " +"to override the equals() and hashCode() methods in persistent classes and implement his own notion of " +"object equality. There is one caveat: Never use the database identifier to " +"implement equality, use a business key, a combination of unique, usually " +"immutable, attributes. The database identifier will change if a transient " +"object is made persistent. If the transient instance (usually together with " +"detached instances) is held in a Set, changing the " +"hashcode breaks the contract of the Set. Attributes for " +"business keys don't have to be as stable as database primary keys, you only " +"have to guarantee stability as long as the objects are in the same " +"Set. See the Hibernate website for a more thorough " +"discussion of this issue. Also note that this is not a Hibernate issue, but " +"simply how Java object identity and equality has to be implemented." +msgstr "" +"けれども、Session の外で == を使うアプ" +"リケーションは、予期しない結果に遭遇します。 これは予期しない場所で起こりえま" +"す。 例えば、2つの分離インスタンスを同じ Set に putしたと" +"きなどです。 両方とも同じデータベース識別子を持ちます(すなわち、同じ行を表し" +"ます)。 しかし、分離状態のインスタンスのJVM識別子は当然保証されません。 開発" +"者は、永続性クラスの equals()hashCode() メソッドをオーバーライドし、オブジェクト等価性の概念を実装すべきで" +"す。 警告が1つあります。等価性の実装にデータベース識別子を使わないでくださ" +"い。 ユニークな(普通は不変の)属性の組み合わせであるビジネスキーを使ってくだ" +"さい。 もし、一時オブジェクトが永続化された場合、データベース識別子が変わりま" +"す。 一時オブジェクトを(通常分離インスタンスと共に) Set " +"に保持する場合、ハッシュコードが変わるということは、Set の" +"契約を破るということです。 ビジネスキーのための属性は、データベースの主キーほ" +"ど安定すべきではないです。 オブジェクトが同じ Set の中にい" +"る間だけ、安定を保証すべきです。 この問題のより徹底的な議論は、HibernateのWeb" +"サイトを参照してください。 また、これはHibernateの問題ではなく、単にJavaオブ" +"ジェクトの識別子や等価性を どのように実装すべきかということです。" + +#. Tag: title +#: transactions.xml:296 +#, no-c-format msgid "Common issues" -msgstr "けれども、Session の外で == を使うアプリケーションは、予期しない結果に遭遇します。 これは予期しない場所で起こりえます。 例えば、2つの分離インスタンスを同じ Set に putしたときなどです。 両方とも同じデータベース識別子を持ちます(すなわち、同じ行を表します)。 しかし、分離状態のインスタンスのJVM識別子は当然保証されません。 開発者は、永続性クラスの equals()hashCode() メソッドをオーバーライドし、オブジェクト等価性の概念を実装すべきです。 警告が1つあります。等価性の実装にデータベース識別子を使わないでください。 ユニークな(普通は不変の)属性の組み合わせであるビジネスキーを使ってください。 もし、一時オブジェクトが永続化された場合、データベース識別子が変わります。 一時オブジェクトを(通常分離インスタンスと共に) Set に保持する場合、ハッシュコードが変わるということは、Set の契約を破るということです。 ビジネスキーのための属性は、データベースの主キーほど安定すべきではないです。 オブジェクトが同じ Set の中にいる間だけ、安定を保証すべきです。 この問題のより徹底的な議論は、HibernateのWebサイトを参照してください。 また、これはHibernateの問題ではなく、単にJavaオブジェクトの識別子や等価性を どのように実装すべきかということです。" - -#: index.docbook:298 -msgid "Never use the anti-patterns session-per-user-session or session-per-application (of course, there are rare exceptions to this rule). Note that some of the following issues might also appear with the recommended patterns, make sure you understand the implications before making a design decision:" msgstr "一般的な問題" -#: index.docbook:307 -msgid "A Session is not thread-safe. Things which are supposed to work concurrently, like HTTP requests, session beans, or Swing workers, will cause race conditions if a Session instance would be shared. If you keep your Hibernate Session in your HttpSession (discussed later), you should consider synchronizing access to your Http session. Otherwise, a user that clicks reload fast enough may use the same Session in two concurrently running threads." -msgstr "session-per-user-sessionsession-per-application アンチパターン は使ってはいけません(もちろん、まれに例外があります)。 注意:下記の問題のいくつかは、推奨されるパターンとしても出現します。 設計を決定する前に、裏の意味を理解するようにしてください。" +#. Tag: para +#: transactions.xml:298 +#, no-c-format +msgid "" +"Never use the anti-patterns session-per-user-session or " +"session-per-application (of course, there are rare " +"exceptions to this rule). Note that some of the following issues might also " +"appear with the recommended patterns, make sure you understand the " +"implications before making a design decision:" +msgstr "" +"session-per-user-sessionsession-per-" +"application アンチパターン は使ってはいけません(もちろん、まれに" +"例外があります)。 注意:下記の問題のいくつかは、推奨されるパターンとしても出" +"現します。 設計を決定する前に、裏の意味を理解するようにしてください。" -#: index.docbook:318 -msgid "An exception thrown by Hibernate means you have to rollback your database transaction and close the Session immediately (discussed later in more detail). If your Session is bound to the application, you have to stop the application. Rolling back the database transaction doesn't put your business objects back into the state they were at the start of the transaction. This means the database state and the business objects do get out of sync. Usually this is not a problem, because exceptions are not recoverable and you have to start over after rollback anyway." -msgstr "Session はスレッドセーフではありません。 HTTPリクエスト、セッションBean、Swingワーカーのように、 同時実行が可能なものが Session インスタンスを共有すると、 競合状態を引き起こします。 (後で議論する)HttpSession の中で Hibernate Session を保持する場合、 HttpSessionへのアクセスを同期化することを考慮すべきです。 さもなければ、ユーザーが十分早くリロードをクリックすると、 同時に走る2つのスレッドの中で、同じ Session が使われます。" +#. Tag: para +#: transactions.xml:307 +#, no-c-format +msgid "" +"A Session is not thread-safe. Things which are supposed " +"to work concurrently, like HTTP requests, session beans, or Swing workers, " +"will cause race conditions if a Session instance would be " +"shared. If you keep your Hibernate Session in your " +"HttpSession (discussed later), you should consider " +"synchronizing access to your Http session. Otherwise, a user that clicks " +"reload fast enough may use the same Session in two " +"concurrently running threads." +msgstr "" +"Session はスレッドセーフではありません。 HTTPリクエスト、" +"セッションBean、Swingワーカーのように、 同時実行が可能なものが " +"Session インスタンスを共有すると、 競合状態を引き起こしま" +"す。 (後で議論する)HttpSession の中で Hibernate " +"Session を保持する場合、 HttpSessionへのアクセスを同期化す" +"ることを考慮すべきです。 さもなければ、ユーザーが十分早くリロードをクリックす" +"ると、 同時に走る2つのスレッドの中で、同じ Session が使わ" +"れます。" -#: index.docbook:330 -msgid "The Session caches every object that is in persistent state (watched and checked for dirty state by Hibernate). This means it grows endlessly until you get an OutOfMemoryException, if you keep it open for a long time or simply load too much data. One solution for this is to call clear() and evict() to manage the Session cache, but you most likely should consider a Stored Procedure if you need mass data operations. Some solutions are shown in . Keeping a Session open for the duration of a user session also means a high probability of stale data." -msgstr "Hibernateが例外を投げた場合は、データベーストランザクションをロールバックし、 直ちに Session を閉じるべきです(詳細を後で議論します)。 Session がアプリケーションに結び付けられているのであれば、 アプリケーションを停止すべきです。 データベーストランザクションをロールバックしても、ビジネスオブジェクトは トランザクションを開始したときの状態に戻りません。 これは、データベースの状態とビジネスオブジェクトは同期していないことを意味します。 通常これは問題になりません。 なぜなら、例外は回復できないからです。 とにかくロールバックした後にやり直すべきです。" +#. Tag: para +#: transactions.xml:318 +#, no-c-format +msgid "" +"An exception thrown by Hibernate means you have to rollback your database " +"transaction and close the Session immediately (discussed " +"later in more detail). If your Session is bound to the " +"application, you have to stop the application. Rolling back the database " +"transaction doesn't put your business objects back into the state they were " +"at the start of the transaction. This means the database state and the " +"business objects do get out of sync. Usually this is not a problem, because " +"exceptions are not recoverable and you have to start over after rollback " +"anyway." +msgstr "" +"Hibernateが例外を投げた場合は、データベーストランザクションをロールバック" +"し、 直ちに Session を閉じるべきです(詳細を後で議論しま" +"す)。 Session がアプリケーションに結び付けられているので" +"あれば、 アプリケーションを停止すべきです。 データベーストランザクションを" +"ロールバックしても、ビジネスオブジェクトは トランザクションを開始したときの状" +"態に戻りません。 これは、データベースの状態とビジネスオブジェクトは同期してい" +"ないことを意味します。 通常これは問題になりません。 なぜなら、例外は回復でき" +"ないからです。 とにかくロールバックした後にやり直すべきです。" -#: index.docbook:348 +#. Tag: para +#: transactions.xml:330 +#, no-c-format +msgid "" +"The Session caches every object that is in persistent " +"state (watched and checked for dirty state by Hibernate). This means it " +"grows endlessly until you get an OutOfMemoryException, if you keep it open " +"for a long time or simply load too much data. One solution for this is to " +"call clear() and evict() to manage the " +"Session cache, but you most likely should consider a " +"Stored Procedure if you need mass data operations. Some solutions are shown " +"in . Keeping a Session open for " +"the duration of a user session also means a high probability of stale data." +msgstr "" +"Session は永続(persistent)状態のすべてのオブジェクトを " +"キャッシュします(Hibernateは監視し、ダーティ状態かチェックします)。 これ" +"は、長い間セッションを開いたままにするか、 非常に多くのデータをロードし続ける" +"かした場合は、 OutOfMemoryExceptionが発生するまで無限に大きくなることを意味し" +"ます。 解決策の1つは、Session キャッシュを管理するため" +"に、 clear()evict() を呼ぶことで" +"す。 しかし、大きなデータを処理する必要があるなら、 たぶんストアドプロシー" +"ジャを考慮するべきでしょう。 いくつかの解決策は、 で" +"紹介されています。 ユーザーセッションの間、Session を開い" +"たままにするということは、 データが新鮮でなくなる確率が高くなることを意味しま" +"す。" + +#. Tag: title +#: transactions.xml:348 +#, no-c-format msgid "Database transaction demarcation" -msgstr "Session は永続(persistent)状態のすべてのオブジェクトを キャッシュします(Hibernateは監視し、ダーティ状態かチェックします)。 これは、長い間セッションを開いたままにするか、 非常に多くのデータをロードし続けるかした場合は、 OutOfMemoryExceptionが発生するまで無限に大きくなることを意味します。 解決策の1つは、Session キャッシュを管理するために、 clear()evict() を呼ぶことです。 しかし、大きなデータを処理する必要があるなら、 たぶんストアドプロシージャを考慮するべきでしょう。 いくつかの解決策は、 で紹介されています。 ユーザーセッションの間、Session を開いたままにするということは、 データが新鮮でなくなる確率が高くなることを意味します。" - -#: index.docbook:350 -msgid "Datatabase (or system) transaction boundaries are always necessary. No communication with the database can occur outside of a database transaction (this seems to confuse many developers who are used to the auto-commit mode). Always use clear transaction boundaries, even for read-only operations. Depending on your isolation level and database capabilities this might not be required but there is no downside if you always demarcate transactions explicitly. Certainly, a single database transaction is going to perform better than many small transactions, even for reading data." msgstr "データベーストランザクション境界" -#: index.docbook:360 -msgid "A Hibernate application can run in non-managed (i.e. standalone, simple Web- or Swing applications) and managed J2EE environments. In a non-managed environment, Hibernate is usually responsible for its own database connection pool. The application developer has to manually set transaction boundaries, in other words, begin, commit, or rollback database transactions himself. A managed environment usually provides container-managed transactions (CMT), with the transaction assembly defined declaratively in deployment descriptors of EJB session beans, for example. Programmatic transaction demarcation is then no longer necessary." -msgstr "データベース(もしくはシステム)トランザクションの境界は、常に必要です。 データベーストランザクションの外で、データベースとの通信は起きません (これは自動コミットモードに慣れている多くの開発者を混乱させるかもしれません)。 読み込むだけの操作にでも、いつも明確なトランザクション境界を使用してください。 分離レベルとデータベースの能力次第で、これは必要ないかもしれませんが、 常にトランザクション境界を明示的に指定しても、マイナス面は全くありません。 確かに、1つのデータベーストランザクションは多数の小さなトランザクションより (データの読み込みであっても)パフォーマンスがすぐれています。" +#. Tag: para +#: transactions.xml:350 +#, no-c-format +msgid "" +"Datatabase (or system) transaction boundaries are always necessary. No " +"communication with the database can occur outside of a database transaction " +"(this seems to confuse many developers who are used to the auto-commit " +"mode). Always use clear transaction boundaries, even for read-only " +"operations. Depending on your isolation level and database capabilities this " +"might not be required but there is no downside if you always demarcate " +"transactions explicitly. Certainly, a single database transaction is going " +"to perform better than many small transactions, even for reading data." +msgstr "" +"データベース(もしくはシステム)トランザクションの境界は、常に必要です。 デー" +"タベーストランザクションの外で、データベースとの通信は起きません (これは自動" +"コミットモードに慣れている多くの開発者を混乱させるかもしれません)。 読み込む" +"だけの操作にでも、いつも明確なトランザクション境界を使用してください。 分離レ" +"ベルとデータベースの能力次第で、これは必要ないかもしれませんが、 常にトランザ" +"クション境界を明示的に指定しても、マイナス面は全くありません。 確かに、1つの" +"データベーストランザクションは多数の小さなトランザクションより (データの読み" +"込みであっても)パフォーマンスがすぐれています。" -#: index.docbook:370 -msgid "However, it is often desirable to keep your persistence layer portable between non-managed resource-local environments, and systems that can rely on JTA but use BMT instead of CMT. In both cases you'd use programmatic transaction demaracation. Hibernate offers a wrapper API called Transaction that translates into the native transaction system of your deployment environment. This API is actually optional, but we strongly encourage its use unless you are in a CMT session bean." -msgstr "J2EE環境に管理されていない状態 (すなわち、スタンドアロン、単純なWebやSwingアプリケーション)でも、 管理された状態でも、Hibernateアプリケーションを実行できます。 管理されていない環境では、Hiberanteがデータベースのコネクションプールを提供します。 アプリケーション開発者は、トランザクション境界を手動で設定しなければなりません。 言い換えると、データベーストランザクションの開始、コミット、ロールバックを 開発者自身が設定する必要があるということです。 通常、管理された環境では、コンテナ管理によるトランザクション(CMT)が提供されます。 例えば、セッションBeanのデプロイメントディスクリプタで宣言的に定義し、 トランザクションを組み立てます。 プログラムによるトランザクション境界はもう必要ありません。" +#. Tag: para +#: transactions.xml:360 +#, no-c-format +msgid "" +"A Hibernate application can run in non-managed (i.e. standalone, simple Web- " +"or Swing applications) and managed J2EE environments. In a non-managed " +"environment, Hibernate is usually responsible for its own database " +"connection pool. The application developer has to manually set transaction " +"boundaries, in other words, begin, commit, or rollback database transactions " +"himself. A managed environment usually provides container-managed " +"transactions (CMT), with the transaction assembly defined declaratively in " +"deployment descriptors of EJB session beans, for example. Programmatic " +"transaction demarcation is then no longer necessary." +msgstr "" +"J2EE環境に管理されていない状態 (すなわち、スタンドアロン、単純なWebやSwingア" +"プリケーション)でも、 管理された状態でも、Hibernateアプリケーションを実行で" +"きます。 管理されていない環境では、Hiberanteがデータベースのコネクションプー" +"ルを提供します。 アプリケーション開発者は、トランザクション境界を手動で設定し" +"なければなりません。 言い換えると、データベーストランザクションの開始、コミッ" +"ト、ロールバックを 開発者自身が設定する必要があるということです。 通常、管理" +"された環境では、コンテナ管理によるトランザクション(CMT)が提供されます。 例" +"えば、セッションBeanのデプロイメントディスクリプタで宣言的に定義し、 トランザ" +"クションを組み立てます。 プログラムによるトランザクション境界はもう必要ありま" +"せん。" -#: index.docbook:379 -msgid "Usually, ending a Session involves four distinct phases:" -msgstr "しかしながら、管理されていないリソース・ローカルな環境と JTAに依存したシステム(CMTではなくBMT)の両方に、 永続化層をポータブルに保つのは、しばしば望ましいことです。 デプロイ環境のネイティブのトランザクションシステムを呼び出す Transaction というラッパーAPIをHibernateが提供します。 このAPIを使うかは任意ですが、CMTのセッションBeanを使わないのであれば、使うことを強く推奨します。" +#. Tag: para +#: transactions.xml:370 +#, no-c-format +msgid "" +"However, it is often desirable to keep your persistence layer portable " +"between non-managed resource-local environments, and systems that can rely " +"on JTA but use BMT instead of CMT. In both cases you'd use programmatic " +"transaction demaracation. Hibernate offers a wrapper API called " +"Transaction that translates into the native transaction " +"system of your deployment environment. This API is actually optional, but we " +"strongly encourage its use unless you are in a CMT session bean." +msgstr "" +"しかしながら、管理されていないリソース・ローカルな環境と JTAに依存したシステ" +"ム(CMTではなくBMT)の両方に、 永続化層をポータブルに保つのは、しばしば望まし" +"いことです。 デプロイ環境のネイティブのトランザクションシステムを呼び出す " +"Transaction というラッパーAPIをHibernateが提供します。 こ" +"のAPIを使うかは任意ですが、CMTのセッションBeanを使わないのであれば、使うこと" +"を強く推奨します。" -#: index.docbook:385 +#. Tag: para +#: transactions.xml:379 +#, no-c-format +msgid "" +"Usually, ending a Session involves four distinct phases:" +msgstr "" +"通常、Session 終了は、4つの異なるフェーズを含みます。" + +#. Tag: para +#: transactions.xml:385 +#, no-c-format msgid "flush the session" -msgstr "通常、Session 終了は、4つの異なるフェーズを含みます。" - -#: index.docbook:390 -msgid "commit the transaction" msgstr "セッションのフラッシュ" -#: index.docbook:395 -msgid "close the session" +#. Tag: para +#: transactions.xml:390 +#, no-c-format +msgid "commit the transaction" msgstr "トランザクションのコミット" -#: index.docbook:400 -msgid "handle exceptions" +#. Tag: para +#: transactions.xml:395 +#, no-c-format +msgid "close the session" msgstr "セッションのクローズ" -#: index.docbook:406 -msgid "Flushing the session has been discussed earlier, we'll now have a closer look at transaction demarcation and exception handling in both managed- and non-managed environments." +#. Tag: para +#: transactions.xml:400 +#, no-c-format +msgid "handle exceptions" msgstr "例外のハンドリング" -#: index.docbook:413 -msgid "Non-managed environment" -msgstr "セッションのフラッシュについては、前のほうですでに議論しました。 管理された環境と管理されていない環境の両方について、 トランザクション境界と例外ハンドリングをもっと詳しく見ていきましょう。" +#. Tag: para +#: transactions.xml:406 +#, no-c-format +msgid "" +"Flushing the session has been discussed earlier, we'll now have a closer " +"look at transaction demarcation and exception handling in both managed- and " +"non-managed environments." +msgstr "" +"セッションのフラッシュについては、前のほうですでに議論しました。 管理された環" +"境と管理されていない環境の両方について、 トランザクション境界と例外ハンドリン" +"グをもっと詳しく見ていきましょう。" -#: index.docbook:415 -msgid "If a Hibernate persistence layer runs in a non-managed environment, database connections are usually handled by simple (i.e. non-DataSource) connection pools from which Hibernate obtains connections as needed. The session/transaction handling idiom looks like this:" +#. Tag: title +#: transactions.xml:413 +#, no-c-format +msgid "Non-managed environment" msgstr "管理されていない環境" -#: index.docbook:422 +#. Tag: para +#: transactions.xml:415 +#, no-c-format msgid "" - "" -msgstr "Hibernate永続化層を管理されていない環境で実装する場合は、 通常単純なコネクションプール(すなわちDataSourceではない)によって、 データベースコネクションを制御します。 Hibernateはそのコネクションプールから必要なコネクションを取得します。 セッション/トランザクション制御のイディオムは次のようになります。" - -#: index.docbook:424 -msgid "You don't have to flush() the Session explicitly - the call to commit() automatically triggers the synchronization (depending upon the FlushMode for the session. A call to close() marks the end of a session. The main implication of close() is that the JDBC connection will be relinquished by the session. This Java code is portable and runs in both non-managed and JTA environments." +"If a Hibernate persistence layer runs in a non-managed environment, database " +"connections are usually handled by simple (i.e. non-DataSource) connection " +"pools from which Hibernate obtains connections as needed. The session/" +"transaction handling idiom looks like this:" msgstr "" - "" +"Hibernate永続化層を管理されていない環境で実装する場合は、 通常単純なコネク" +"ションプール(すなわちDataSourceではない)によって、 データベースコネクション" +"を制御します。 Hibernateはそのコネクションプールから必要なコネクションを取得" +"します。 セッション/トランザクション制御のイディオムは次のようになります。" -#: index.docbook:433 -msgid "A much more flexible solution is Hibernate's built-in \"current session\" context management, as described earlier:" -msgstr "明示的に Sessionflush() を呼び出すべきではなく、 commit() を呼び出すことにより、自動的に同期化処理が実行されます (セッションの FlushMode に依存している)。 close() を呼び出すことにより、セッションの終わりを明確にします。 close() が暗黙的に行う主なことは、 セッションがJDBCコネクションを開放することです。 上記のJavaコードはポータブルであり、管理されていない環境とJTA環境の両方で実行できます。" - -#: index.docbook:438 +#. Tag: programlisting +#: transactions.xml:422 +#, no-c-format msgid "" - "" -msgstr "より適応性のある解決策は、Hibernateに予め組み込まれている 「current session」コンテキスト管理です。 言葉で説明するより下記を見たほうが速いでしょう。" - -#: index.docbook:440 -msgid "You will very likely never see these code snippets in a regular application; fatal (system) exceptions should always be caught at the \"top\". In other words, the code that executes Hibernate calls (in the persistence layer) and the code that handles RuntimeException (and usually can only clean up and exit) are in different layers. The current context management by Hibernate can significantly simplify this design, as all you need is access to a SessionFactory. Exception handling is discussed later in this chapter." +"" msgstr "" - "" -#: index.docbook:450 -msgid "Note that you should select org.hibernate.transaction.JDBCTransactionFactory (which is the default), and for the second example \"thread\" as your hibernate.current_session_context_class." -msgstr "正規のアプリケーションの中では、このようなコードの切れ端を決して見ないでしょう。 致命的な(システム)例外は、常に「最上位」でキャッチすべきです。 言い換えれば、(永続化層で)Hibernate呼び出しを実行するコードと、 RuntimeException を制御する (通常はクリーンアップと終了のみ行うことができる)コードは、別々の層の中にあります。 Hibernateによるカレントコンテキスト管理は、この設計をかなり単純にします。 必要なのは、SessionFactory にアクセスすることだけです。 例外処理は、この章の後のほうで議論します。" +#. Tag: para +#: transactions.xml:424 +#, no-c-format +msgid "" +"You don't have to flush() the Session " +"explicitly - the call to commit() automatically triggers " +"the synchronization (depending upon the FlushMode for the session. A call to close() " +"marks the end of a session. The main implication of close() is that the JDBC connection will be relinquished by the session. " +"This Java code is portable and runs in both non-managed and JTA environments." +msgstr "" +"明示的に Sessionflush() を呼び出す" +"べきではなく、 commit() を呼び出すことにより、自動的に同期" +"化処理が実行されます (セッションの FlushMode に依存している)。 close() を呼び出す" +"ことにより、セッションの終わりを明確にします。 close() が" +"暗黙的に行う主なことは、 セッションがJDBCコネクションを開放することです。 上" +"記のJavaコードはポータブルであり、管理されていない環境とJTA環境の両方で実行で" +"きます。" -#: index.docbook:459 +#. Tag: para +#: transactions.xml:433 +#, no-c-format +msgid "" +"A much more flexible solution is Hibernate's built-in \"current session\" " +"context management, as described earlier:" +msgstr "" +"より適応性のある解決策は、Hibernateに予め組み込まれている 「current session」" +"コンテキスト管理です。 言葉で説明するより下記を見たほうが速いでしょう。" + +#. Tag: programlisting +#: transactions.xml:438 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: transactions.xml:440 +#, no-c-format +msgid "" +"You will very likely never see these code snippets in a regular application; " +"fatal (system) exceptions should always be caught at the \"top\". In other " +"words, the code that executes Hibernate calls (in the persistence layer) and " +"the code that handles RuntimeException (and usually can " +"only clean up and exit) are in different layers. The current context " +"management by Hibernate can significantly simplify this design, as all you " +"need is access to a SessionFactory. Exception handling is " +"discussed later in this chapter." +msgstr "" +"正規のアプリケーションの中では、このようなコードの切れ端を決して見ないでしょ" +"う。 致命的な(システム)例外は、常に「最上位」でキャッチすべきです。 言い換" +"えれば、(永続化層で)Hibernate呼び出しを実行するコードと、 " +"RuntimeException を制御する (通常はクリーンアップと終了の" +"み行うことができる)コードは、別々の層の中にあります。 Hibernateによるカレン" +"トコンテキスト管理は、この設計をかなり単純にします。 必要なのは、" +"SessionFactory にアクセスすることだけです。 例外処理は、こ" +"の章の後のほうで議論します。" + +#. Tag: para +#: transactions.xml:450 +#, no-c-format +msgid "" +"Note that you should select org.hibernate.transaction." +"JDBCTransactionFactory (which is the default), and for the second " +"example \"thread\" as your hibernate." +"current_session_context_class." +msgstr "" +"注意:(デフォルトですが) org.hibernate.transaction." +"JDBCTransactionFactory を選択するべきです。 第2の用例としては、 " +"hibernate.current_session_context_class" +"\"thread\" とするとよいでしょう。" + +#. Tag: title +#: transactions.xml:459 +#, no-c-format msgid "Using JTA" -msgstr "注意:(デフォルトですが) org.hibernate.transaction.JDBCTransactionFactory を選択するべきです。 第2の用例としては、 hibernate.current_session_context_class\"thread\" とするとよいでしょう。" - -#: index.docbook:461 -msgid "If your persistence layer runs in an application server (e.g. behind EJB session beans), every datasource connection obtained by Hibernate will automatically be part of the global JTA transaction. You can also install a standalone JTA implementation and use it without EJB. Hibernate offers two strategies for JTA integration." msgstr "JTAを使用する" -#: index.docbook:468 -msgid "If you use bean-managed transactions (BMT) Hibernate will tell the application server to start and end a BMT transaction if you use the Transaction API. So, the transaction management code is identical to the non-managed environment." -msgstr "永続化層をアプリケーションサーバー(例えば、EJBセッションBeanの背後)で実行する場合、 Hibernateから取得するすべてのデータソースコネクションは、 自動的にグローバルJTAトランザクションの一部になります。 EJBを使わずに、スタンドアロンのJTA実装を導入することもできます。 JTA統合のために、Hibernateは2つの戦略を提供します。" - -#: index.docbook:474 +#. Tag: para +#: transactions.xml:461 +#, no-c-format msgid "" - "" -msgstr "Bean管理トランザクション(BMT)を使い、Transaction APIを使う場合、 HibernateはアプリケーションサーバーにBMTトランザクションの開始と終わりを告げます。 すなわち、トランザクション管理のコードは、管理されない環境と同じになります。" - -#: index.docbook:476 -msgid "If you want to use a transaction-bound Session, that is, the getCurrentSession() functionality for easy context propagation, you will have to use the JTA UserTransaction API directly:" +"If your persistence layer runs in an application server (e.g. behind EJB " +"session beans), every datasource connection obtained by Hibernate will " +"automatically be part of the global JTA transaction. You can also install a " +"standalone JTA implementation and use it without EJB. Hibernate offers two " +"strategies for JTA integration." msgstr "" - "" +"永続化層をアプリケーションサーバー(例えば、EJBセッションBeanの背後)で実行す" +"る場合、 Hibernateから取得するすべてのデータソースコネクションは、 自動的にグ" +"ローバルJTAトランザクションの一部になります。 EJBを使わずに、スタンドアロンの" +"JTA実装を導入することもできます。 JTA統合のために、Hibernateは2つの戦略を提" +"供します。" -#: index.docbook:482 +#. Tag: para +#: transactions.xml:468 +#, no-c-format msgid "" - "" -msgstr "トランザクション境界として Session を使いたい場合、 簡単にコンテキストを伝播する機能である getCurrentSession() があるので、 JTAの UserTransaction APIを直接使用すべきでしょう。" - -#: index.docbook:484 -msgid "With CMT, transaction demarcation is done in session bean deployment descriptors, not programatically, hence, the code is reduced to:" +"If you use bean-managed transactions (BMT) Hibernate will tell the " +"application server to start and end a BMT transaction if you use the " +"Transaction API. So, the transaction management code is " +"identical to the non-managed environment." msgstr "" - "" +"Bean管理トランザクション(BMT)を使い、Transaction APIを使" +"う場合、 HibernateはアプリケーションサーバーにBMTトランザクションの開始と終わ" +"りを告げます。 すなわち、トランザクション管理のコードは、管理されない環境と同" +"じになります。" -#: index.docbook:489 +#. Tag: programlisting +#: transactions.xml:474 +#, no-c-format msgid "" - "" -msgstr "CMTでは、トランザクション境界をセッションBeanのデプロイメントディスクリプタで定義し、 プログラムでは行いません。 ゆえに、コードは次のように少なくなります。" - -#: index.docbook:491 -msgid "In a CMT/EJB even rollback happens automatically, since an unhandled RuntimeException thrown by a session bean method tells the container to set the global transaction to rollback. This means you do not need to use the Hibernate Transaction API at all with BMT or CMT, and you get automatic propagation of the \"current\" Session bound to the transaction." +"" msgstr "" - "" -#: index.docbook:499 -msgid "Note that you should choose org.hibernate.transaction.JTATransactionFactory if you use JTA directly (BMT), and org.hibernate.transaction.CMTTransactionFactory in a CMT session bean, when you configure Hibernate's transaction factory. Remember to also set hibernate.transaction.manager_lookup_class. Furthermore, make sure that your hibernate.current_session_context_class is either unset (backwards compatiblity), or set to \"jta\"." -msgstr "CMT/EJBの中では、常にロールバックが自動的に実施されます。 なぜなら、セッションビーンのメソッドにより投げられた制御されていない RuntimeException は、グローバルトランザクションを ロールバックするようにコンテナに伝えるためです。 これは、BMTもしくはCMTといっしょにHibernate Transaction APIを使う必要は少しもないという意味です。" +#. Tag: para +#: transactions.xml:476 +#, no-c-format +msgid "" +"If you want to use a transaction-bound Session, that is, " +"the getCurrentSession() functionality for easy context " +"propagation, you will have to use the JTA UserTransaction " +"API directly:" +msgstr "" +"トランザクション境界として Session を使いたい場合、 簡単に" +"コンテキストを伝播する機能である getCurrentSession() があ" +"るので、 JTAの UserTransaction APIを直接使用すべきでしょ" +"う。" -#: index.docbook:508 -msgid "The getCurrentSession() operation has one downside in a JTA environment. There is one caveat to the use of after_statement connection release mode, which is then used by default. Due to a silly limitation of the JTA spec, it is not possible for Hibernate to automatically clean up any unclosed ScrollableResults or Iterator instances returned by scroll() or iterate(). You must release the underlying database cursor by calling ScrollableResults.close() or Hibernate.close(Iterator) explicity from a finally block. (Of course, most applications can easily avoid using scroll() or iterate() at all from the JTA or CMT code.)" -msgstr "Hibernateのトランザクションファクトリを設定する際に、 JTAを直接使う(BMTの)場合は org.hibernate.transaction.JTATransactionFactory を、 CMTセッションビーンの中では org.hibernate.transaction.CMTTransactionFactory を 選択すべきだということに注意してください。 hibernate.transaction.manager_lookup_class をセットすることも思い出してください。 なお、hibernate.current_session_context_class は、 セットしないか(後方互換)、\"jta\" をセットしてください。" +#. Tag: programlisting +#: transactions.xml:482 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:524 +#. Tag: para +#: transactions.xml:484 +#, no-c-format +msgid "" +"With CMT, transaction demarcation is done in session bean deployment " +"descriptors, not programatically, hence, the code is reduced to:" +msgstr "" +"CMTでは、トランザクション境界をセッションBeanのデプロイメントディスクリプタで" +"定義し、 プログラムでは行いません。 ゆえに、コードは次のように少なくなりま" +"す。" + +#. Tag: programlisting +#: transactions.xml:489 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: transactions.xml:491 +#, no-c-format +msgid "" +"In a CMT/EJB even rollback happens automatically, since an unhandled " +"RuntimeException thrown by a session bean method tells " +"the container to set the global transaction to rollback. This " +"means you do not need to use the Hibernate Transaction " +"API at all with BMT or CMT, and you get automatic propagation of the " +"\"current\" Session bound to the transaction." +msgstr "" +"CMT/EJBの中では、常にロールバックが自動的に実施されます。 なぜなら、セッショ" +"ンビーンのメソッドにより投げられた制御されていない " +"RuntimeException は、グローバルトランザクションを ロール" +"バックするようにコンテナに伝えるためです。 これは、BMTもしくはCMTと" +"いっしょにHibernate Transaction APIを使う必要は少しもない" +"という意味です。" + +#. Tag: para +#: transactions.xml:499 +#, no-c-format +msgid "" +"Note that you should choose org.hibernate.transaction." +"JTATransactionFactory if you use JTA directly (BMT), and " +"org.hibernate.transaction.CMTTransactionFactory in a CMT " +"session bean, when you configure Hibernate's transaction factory. Remember " +"to also set hibernate.transaction.manager_lookup_class. " +"Furthermore, make sure that your hibernate." +"current_session_context_class is either unset (backwards " +"compatiblity), or set to \"jta\"." +msgstr "" +"Hibernateのトランザクションファクトリを設定する際に、 JTAを直接使う(BMTの)" +"場合は org.hibernate.transaction.JTATransactionFactory " +"を、 CMTセッションビーンの中では org.hibernate.transaction." +"CMTTransactionFactory を 選択すべきだということに注意してくださ" +"い。 hibernate.transaction.manager_lookup_class をセットす" +"ることも思い出してください。 なお、hibernate." +"current_session_context_class は、 セットしないか(後方互換)、" +"\"jta\" をセットしてください。" + +#. Tag: para +#: transactions.xml:508 +#, no-c-format +msgid "" +"The getCurrentSession() operation has one downside in a " +"JTA environment. There is one caveat to the use of after_statement connection release mode, which is then used by default. Due to a " +"silly limitation of the JTA spec, it is not possible for Hibernate to " +"automatically clean up any unclosed ScrollableResults or " +"Iterator instances returned by scroll() or iterate(). You must " +"release the underlying database cursor by calling ScrollableResults." +"close() or Hibernate.close(Iterator) explicity " +"from a finally block. (Of course, most applications can " +"easily avoid using scroll() or iterate() at all from the JTA or CMT code.)" +msgstr "" +"getCurrentSession() オペレーションは、JTA環境では1つの欠" +"点を持ちます。 デフォルトで使われる after_statement コネク" +"ションリリースモードを使用する上で、 警告が1つあります。 JTA仕様の愚かな制約" +"のために、 scroll() または iterate() が" +"返した、 閉じられていない ScrollableResults または " +"Iterator インスタンスをHibernateが自動的にクリーンアップす" +"ることはできません。 finally ブロックの中で、 " +"ScrollableResults.close() または Hibernate.close" +"(Iterator) を明示的に呼び出して、 裏に潜んだデータベースカーソルを" +"解放 しなければなりません。 (もちろん、多くのアプリケー" +"ションでは、JTAかCMTコードで scroll()iterate" +"() の使用を避けるのは容易です。)" + +#. Tag: title +#: transactions.xml:524 +#, no-c-format msgid "Exception handling" -msgstr "getCurrentSession() オペレーションは、JTA環境では1つの欠点を持ちます。 デフォルトで使われる after_statement コネクションリリースモードを使用する上で、 警告が1つあります。 JTA仕様の愚かな制約のために、 scroll() または iterate() が返した、 閉じられていない ScrollableResults または Iterator インスタンスをHibernateが自動的にクリーンアップすることはできません。 finally ブロックの中で、 ScrollableResults.close() または Hibernate.close(Iterator) を明示的に呼び出して、 裏に潜んだデータベースカーソルを解放 しなければなりません。 (もちろん、多くのアプリケーションでは、JTAかCMTコードで scroll()iterate() の使用を避けるのは容易です。)" - -#: index.docbook:526 -msgid "If the Session throws an exception (including any SQLException), you should immediately rollback the database transaction, call Session.close() and discard the Session instance. Certain methods of Session will not leave the session in a consistent state. No exception thrown by Hibernate can be treated as recoverable. Ensure that the Session will be closed by calling close() in a finally block." msgstr "例外ハンドリング" -#: index.docbook:537 -msgid "The HibernateException, which wraps most of the errors that can occur in a Hibernate persistence layer, is an unchecked exception (it wasn't in older versions of Hibernate). In our opinion, we shouldn't force the application developer to catch an unrecoverable exception at a low layer. In most systems, unchecked and fatal exceptions are handled in one of the first frames of the method call stack (i.e. in higher layers) and an error message is presented to the application user (or some other appropriate action is taken). Note that Hibernate might also throw other unchecked exceptions which are not a HibernateException. These are, again, not recoverable and appropriate action should be taken." -msgstr "Session が例外(SQLExceptionを含む)を投げた場合、 直ちに、データベーストランザクションをロールバックし、Session.close() を呼び、Session インスタンスを破棄すべきです。 Session のいくつかのメソッドは、 セッションの状態を 矛盾したまま にします。 Hibernateが投げた例外を、回復できるものとして扱うことはできません。 finally ブロックの中で close() を呼んで、 Session を確実に閉じてください。" +#. Tag: para +#: transactions.xml:526 +#, no-c-format +msgid "" +"If the Session throws an exception (including any " +"SQLException), you should immediately rollback the " +"database transaction, call Session.close() and discard " +"the Session instance. Certain methods of " +"Session will not leave the session " +"in a consistent state. No exception thrown by Hibernate can be treated as " +"recoverable. Ensure that the Session will be closed by " +"calling close() in a finally block." +msgstr "" +"Session が例外(SQLExceptionを含む)を" +"投げた場合、 直ちに、データベーストランザクションをロールバックし、" +"Session.close() を呼び、Session インス" +"タンスを破棄すべきです。 Session のいくつかのメソッドは、 " +"セッションの状態を 矛盾したまま にします。 Hibernateが投" +"げた例外を、回復できるものとして扱うことはできません。 finally ブロックの中で close() を呼んで、 " +"Session を確実に閉じてください。" -#: index.docbook:549 -msgid "Hibernate wraps SQLExceptions thrown while interacting with the database in a JDBCException. In fact, Hibernate will attempt to convert the eexception into a more meningful subclass of JDBCException. The underlying SQLException is always available via JDBCException.getCause(). Hibernate converts the SQLException into an appropriate JDBCException subclass using the SQLExceptionConverter attached to the SessionFactory. By default, the SQLExceptionConverter is defined by the configured dialect; however, it is also possible to plug in a custom implementation (see the javadocs for the SQLExceptionConverterFactory class for details). The standard JDBCException subtypes are:" -msgstr "HibernateException は、Hibernate永続化層の中で発生する多くのエラーを ラップする、検査されない例外です(Hibernateの古いバージョンは違いました)。 私たちの意見は、アプリケーション開発者に回復不可能な例外を 下層でキャッチすることを強要すべきではないということです。 多くのシステムでは、検査されない例外と致命的な例外は、 コールスタックの最初のフレームの1つ(例えば、最上位の層で)でハンドリングし、 エラーメッセージをアプリケーションユーザーに表示します (もしくは、他の適切な処理を実施します)。 Hibernateは、HibernateException 以外の検査されない例外も 投げることに注意してください。 これらもまた、回復不可能であり、適切な処理を実施すべきです。" +#. Tag: para +#: transactions.xml:537 +#, no-c-format +msgid "" +"The HibernateException, which wraps most of the errors " +"that can occur in a Hibernate persistence layer, is an unchecked exception " +"(it wasn't in older versions of Hibernate). In our opinion, we shouldn't " +"force the application developer to catch an unrecoverable exception at a low " +"layer. In most systems, unchecked and fatal exceptions are handled in one of " +"the first frames of the method call stack (i.e. in higher layers) and an " +"error message is presented to the application user (or some other " +"appropriate action is taken). Note that Hibernate might also throw other " +"unchecked exceptions which are not a HibernateException. " +"These are, again, not recoverable and appropriate action should be taken." +msgstr "" +"HibernateException は、Hibernate永続化層の中で発生する多く" +"のエラーを ラップする、検査されない例外です(Hibernateの古いバージョンは違い" +"ました)。 私たちの意見は、アプリケーション開発者に回復不可能な例外を 下層で" +"キャッチすることを強要すべきではないということです。 多くのシステムでは、検査" +"されない例外と致命的な例外は、 コールスタックの最初のフレームの1つ(例えば、" +"最上位の層で)でハンドリングし、 エラーメッセージをアプリケーションユーザーに" +"表示します (もしくは、他の適切な処理を実施します)。 Hibernateは、" +"HibernateException 以外の検査されない例外も 投げることに注" +"意してください。 これらもまた、回復不可能であり、適切な処理を実施すべきです。" -#: index.docbook:565 -msgid "JDBCConnectionException - indicates an error with the underlying JDBC communication." -msgstr "Hibernateは、データベースとの対話中に投げられた SQLExceptionJDBCException でラップします。 実は、例外をより意味のある JDBCException のサブクラスに 変換しようと試みます。 元の SQLException は、JDBCException.getCause() によりいつでも得られます。 Hibernateは、SessionFactory に追加されている SQLExceptionConverter を使い、SQLException を 適当な JDBCException サブクラスに変換します。 デフォルトでは、SQLExceptionConverter は設定されているSQL方言により 定義されます。 一方で、独自の実装に差し替えることもできます (詳細は、SQLExceptionConverterFactory クラスのJavadocを参照してください)。 標準的な JDBCException のサブタイプを下記に示します。" +#. Tag: para +#: transactions.xml:549 +#, no-c-format +msgid "" +"Hibernate wraps SQLExceptions thrown while interacting " +"with the database in a JDBCException. In fact, Hibernate " +"will attempt to convert the eexception into a more meningful subclass of " +"JDBCException. The underlying SQLException is always available via JDBCException.getCause(). Hibernate converts the SQLException into an " +"appropriate JDBCException subclass using the " +"SQLExceptionConverter attached to the " +"SessionFactory. By default, the " +"SQLExceptionConverter is defined by the configured " +"dialect; however, it is also possible to plug in a custom implementation " +"(see the javadocs for the SQLExceptionConverterFactory " +"class for details). The standard JDBCException subtypes " +"are:" +msgstr "" +"Hibernateは、データベースとの対話中に投げられた SQLExceptionJDBCException でラップします。 実は、例外をよ" +"り意味のある JDBCException のサブクラスに 変換しようと試み" +"ます。 元の SQLException は、JDBCException." +"getCause() によりいつでも得られます。 Hibernateは、" +"SessionFactory に追加されている " +"SQLExceptionConverter を使い、SQLException を 適当な JDBCException サブクラスに変換します。 " +"デフォルトでは、SQLExceptionConverter は設定されているSQL" +"方言により 定義されます。 一方で、独自の実装に差し替えることもできます (詳細" +"は、SQLExceptionConverterFactory クラスのJavadocを参照して" +"ください)。 標準的な JDBCException のサブタイプを下記に示" +"します。" -#: index.docbook:571 -msgid "SQLGrammarException - indicates a grammar or syntax problem with the issued SQL." -msgstr "JDBCConnectionException - 基礎となるJDBC通信のエラーを表します。" +#. Tag: para +#: transactions.xml:565 +#, no-c-format +msgid "" +"JDBCConnectionException - indicates an error with the " +"underlying JDBC communication." +msgstr "" +"JDBCConnectionException - 基礎となるJDBC通信のエラーを表し" +"ます。" -#: index.docbook:577 -msgid "ConstraintViolationException - indicates some form of integrity constraint violation." -msgstr "SQLGrammarException - 発行するSQLの文法もしくは構文の問題を表します。" +#. Tag: para +#: transactions.xml:571 +#, no-c-format +msgid "" +"SQLGrammarException - indicates a grammar or syntax " +"problem with the issued SQL." +msgstr "" +"SQLGrammarException - 発行するSQLの文法もしくは構文の問題" +"を表します。" -#: index.docbook:583 -msgid "LockAcquisitionException - indicates an error acquiring a lock level necessary to perform the requested operation." -msgstr "ConstraintViolationException - 何らかの形式の完全性制約違反を表します。" +#. Tag: para +#: transactions.xml:577 +#, no-c-format +msgid "" +"ConstraintViolationException - indicates some form of " +"integrity constraint violation." +msgstr "" +"ConstraintViolationException - 何らかの形式の完全性制約違" +"反を表します。" -#: index.docbook:589 -msgid "GenericJDBCException - a generic exception which did not fall into any of the other categories." -msgstr "LockAcquisitionException - 要求された操作を実施するのに必要なロックレベルを得る際のエラーを表します。" +#. Tag: para +#: transactions.xml:583 +#, no-c-format +msgid "" +"LockAcquisitionException - indicates an error acquiring a " +"lock level necessary to perform the requested operation." +msgstr "" +"LockAcquisitionException - 要求された操作を実施するのに必" +"要なロックレベルを得る際のエラーを表します。" -#: index.docbook:599 +#. Tag: para +#: transactions.xml:589 +#, no-c-format +msgid "" +"GenericJDBCException - a generic exception which did not " +"fall into any of the other categories." +msgstr "" +"GenericJDBCException - 他のカテゴリに一致しなかった一般的" +"な例外です。" + +#. Tag: title +#: transactions.xml:599 +#, no-c-format msgid "Transaction timeout" -msgstr "GenericJDBCException - 他のカテゴリに一致しなかった一般的な例外です。" - -#: index.docbook:601 -msgid "One extremely important feature provided by a managed environment like EJB that is never provided for non-managed code is transaction timeout. Transaction timeouts ensure that no misbehaving transaction can indefinitely tie up resources while returning no response to the user. Outside a managed (JTA) environment, Hibernate cannot fully provide this functionality. However, Hibernate can at least control data access operations, ensuring that database level deadlocks and queries with huge result sets are limited by a defined timeout. In a managed environment, Hibernate can delegate transaction timeout to JTA. This functioanlity is abstracted by the Hibernate Transaction object." msgstr "トランザクションのタイムアウト" -#: index.docbook:614 +#. Tag: para +#: transactions.xml:601 +#, no-c-format msgid "" - "" -msgstr "EJBのような管理された環境が提供するきわめて重要な特徴の1つは、 トランザクションのタイムアウトです。 これは管理されていないコードには提供できません。 トランザクションタイムアウトは、不品行なトランザクションが ユーザーにレスポンスを返さないまま、無期限にリソースを使い続けない ことを保障します。 管理された環境(JTA)の外では、Hibernateはこの機能をフルに提供できません。 しかしながら、Hibernateは次のようなデータアクセス操作の制御くらいはできます。 データベースレベルのデッドロックや大きなリザルトセットを返すクエリを 定義されたタイムアウトによって確実に制限します。 管理された環境では、HibernateはトランザクションタイムアウトをJTAに委譲します。 この機能は、Hibernateの Transaction オブジェクトに よって抽象化されています。" - -#: index.docbook:616 -msgid "Note that setTimeout() may not be called in a CMT bean, where transaction timeouts must be defined declaratively." +"One extremely important feature provided by a managed environment like EJB " +"that is never provided for non-managed code is transaction timeout. " +"Transaction timeouts ensure that no misbehaving transaction can indefinitely " +"tie up resources while returning no response to the user. Outside a managed " +"(JTA) environment, Hibernate cannot fully provide this functionality. " +"However, Hibernate can at least control data access operations, ensuring " +"that database level deadlocks and queries with huge result sets are limited " +"by a defined timeout. In a managed environment, Hibernate can delegate " +"transaction timeout to JTA. This functioanlity is abstracted by the " +"Hibernate Transaction object." msgstr "" - "" +"EJBのような管理された環境が提供するきわめて重要な特徴の1つは、 トランザク" +"ションのタイムアウトです。 これは管理されていないコードには提供できません。 " +"トランザクションタイムアウトは、不品行なトランザクションが ユーザーにレスポン" +"スを返さないまま、無期限にリソースを使い続けない ことを保障します。 管理され" +"た環境(JTA)の外では、Hibernateはこの機能をフルに提供できません。 しかしなが" +"ら、Hibernateは次のようなデータアクセス操作の制御くらいはできます。 データ" +"ベースレベルのデッドロックや大きなリザルトセットを返すクエリを 定義されたタイ" +"ムアウトによって確実に制限します。 管理された環境では、Hibernateはトランザク" +"ションタイムアウトをJTAに委譲します。 この機能は、Hibernateの " +"Transaction オブジェクトに よって抽象化されています。" -#: index.docbook:626 +#. Tag: programlisting +#: transactions.xml:614 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: transactions.xml:616 +#, no-c-format +msgid "" +"Note that setTimeout() may not be called in a CMT bean, " +"where transaction timeouts must be defined declaratively." +msgstr "" +"CMTビーンの中では setTimeout() を 呼び出せないことに注意し" +"てください。 トランザクションタイムアウトは宣言的に定義されるべきです。" + +#. Tag: title +#: transactions.xml:626 +#, no-c-format msgid "Optimistic concurrency control" -msgstr "CMTビーンの中では setTimeout() を 呼び出せないことに注意してください。 トランザクションタイムアウトは宣言的に定義されるべきです。" - -#: index.docbook:628 -msgid "The only approach that is consistent with high concurrency and high scalability is optimistic concurrency control with versioning. Version checking uses version numbers, or timestamps, to detect conflicting updates (and to prevent lost updates). Hibernate provides for three possible approaches to writing application code that uses optimistic concurrency. The use cases we show are in the context of long conversations, but version checking also has the benefit of preventing lost updates in single database transactions." msgstr "楽観的同時実行制御" -#: index.docbook:639 -msgid "Application version checking" -msgstr "高い並列性と高いスケーラビリティの両方を実現するアプローチは、 バージョニングを使った楽観的同時実行制御のみです。 更新の衝突を見つけるために(および、更新が失われるのを防ぐために)、 バージョン番号もしくはタイムスタンプを使って、バージョンをチェックします。 Hibernateは、楽観的同時実行を行うアプリケーションコードを書くための アプローチを3つ提供します。 私たちが見せるユースケースは、長い対話を持ちますが、 バージョンチェックはまだ1つのデータベーストランザクションの中で更新を失うことを防ぐ 利点も持っています。" +#. Tag: para +#: transactions.xml:628 +#, no-c-format +msgid "" +"The only approach that is consistent with high concurrency and high " +"scalability is optimistic concurrency control with versioning. Version " +"checking uses version numbers, or timestamps, to detect conflicting updates " +"(and to prevent lost updates). Hibernate provides for three possible " +"approaches to writing application code that uses optimistic concurrency. The " +"use cases we show are in the context of long conversations, but version " +"checking also has the benefit of preventing lost updates in single database " +"transactions." +msgstr "" +"高い並列性と高いスケーラビリティの両方を実現するアプローチは、 バージョニング" +"を使った楽観的同時実行制御のみです。 更新の衝突を見つけるために(および、更新" +"が失われるのを防ぐために)、 バージョン番号もしくはタイムスタンプを使って、" +"バージョンをチェックします。 Hibernateは、楽観的同時実行を行うアプリケーショ" +"ンコードを書くための アプローチを3つ提供します。 私たちが見せるユースケース" +"は、長い対話を持ちますが、 バージョンチェックはまだ1つのデータベーストランザ" +"クションの中で更新を失うことを防ぐ 利点も持っています。" -#: index.docbook:641 -msgid "In an implementation without much help from Hibernate, each interaction with the database occurs in a new Session and the developer is responsible for reloading all persistent instances from the database before manipulating them. This approach forces the application to carry out its own version checking to ensure conversation transaction isolation. This approach is the least efficient in terms of database access. It is the approach most similar to entity EJBs." +#. Tag: title +#: transactions.xml:639 +#, no-c-format +msgid "Application version checking" msgstr "アプリケーションによるバージョンチェック" -#: index.docbook:650 +#. Tag: para +#: transactions.xml:641 +#, no-c-format msgid "" - "" -msgstr "Hibernateにほとんど助けてもらわずに実装するケースです。 データベースとのやり取りは、それぞれ新しい Session の中で起こります。 開発者は、すべての永続性インスタンスを操作する前に、 データベースから再読み込みする責務があります。 このアプローチでは、対話トランザクションの分離を守るために、 アプリケーション自身がバージョンチェックを行う必要があります。 このアプローチは、データベースアクセスの中では、最も非効率です。 エンティティEJBと最も似ているアプローチです。" - -#: index.docbook:652 -msgid "The version property is mapped using <version>, and Hibernate will automatically increment it during flush if the entity is dirty." +"In an implementation without much help from Hibernate, each interaction with " +"the database occurs in a new Session and the developer is " +"responsible for reloading all persistent instances from the database before " +"manipulating them. This approach forces the application to carry out its own " +"version checking to ensure conversation transaction isolation. This approach " +"is the least efficient in terms of database access. It is the approach most " +"similar to entity EJBs." msgstr "" - "" +"Hibernateにほとんど助けてもらわずに実装するケースです。 データベースとのやり" +"取りは、それぞれ新しい Session の中で起こります。 開発者" +"は、すべての永続性インスタンスを操作する前に、 データベースから再読み込みする" +"責務があります。 このアプローチでは、対話トランザクションの分離を守るため" +"に、 アプリケーション自身がバージョンチェックを行う必要があります。 このアプ" +"ローチは、データベースアクセスの中では、最も非効率です。 エンティティEJBと最" +"も似ているアプローチです。" -#: index.docbook:658 -msgid "Of course, if you are operating in a low-data-concurrency environment and don't require version checking, you may use this approach and just skip the version check. In that case, last commit wins will be the default strategy for your long conversations. Keep in mind that this might confuse the users of the application, as they might experience lost updates without error messages or a chance to merge conflicting changes." -msgstr "<version> を使って、version プロパティをマッピングします。 Hibernateは、エンティティがダーティである場合、フラッシュし、 その間に version プロパティを自動的にインクリメントします。" +#. Tag: programlisting +#: transactions.xml:650 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:667 -msgid "Clearly, manual version checking is only feasible in very trivial circumstances and not practical for most applications. Often not only single instances, but complete graphs of modified ojects have to be checked. Hibernate offers automatic version checking with either an extended Session or detached instances as the design paradigm." -msgstr "もちろん、データの並列性が低い環境で運用しており、バージョンチェックが不要なら、 このアプローチを使い、バージョンチェックをスキップするだけです。 その場合は、長い対話には、 「最後にコミットしたものが勝つ」 がデフォルトの戦略でしょう。 このアプローチは、アプリケーションのユーザーを混乱させるかもしれないことを 心に留めて置いてください。それは、エラーメッセージや競合した変更をマージする機会が ないまま、更新を失う経験をするためです。" +#. Tag: para +#: transactions.xml:652 +#, no-c-format +msgid "" +"The version property is mapped using <" +"version>, and Hibernate will automatically increment it during " +"flush if the entity is dirty." +msgstr "" +"<version> を使って、version プロ" +"パティをマッピングします。 Hibernateは、エンティティがダーティである場合、フ" +"ラッシュし、 その間に version プロパティを自動的にインクリ" +"メントします。" -#: index.docbook:678 +#. Tag: para +#: transactions.xml:658 +#, no-c-format +msgid "" +"Of course, if you are operating in a low-data-concurrency environment and " +"don't require version checking, you may use this approach and just skip the " +"version check. In that case, last commit wins will be " +"the default strategy for your long conversations. Keep in mind that this " +"might confuse the users of the application, as they might experience lost " +"updates without error messages or a chance to merge conflicting changes." +msgstr "" +"もちろん、データの並列性が低い環境で運用しており、バージョンチェックが不要な" +"ら、 このアプローチを使い、バージョンチェックをスキップするだけです。 その場" +"合は、長い対話には、 「最後にコミットしたものが勝つ」 が" +"デフォルトの戦略でしょう。 このアプローチは、アプリケーションのユーザーを混乱" +"させるかもしれないことを 心に留めて置いてください。それは、エラーメッセージや" +"競合した変更をマージする機会が ないまま、更新を失う経験をするためです。" + +#. Tag: para +#: transactions.xml:667 +#, no-c-format +msgid "" +"Clearly, manual version checking is only feasible in very trivial " +"circumstances and not practical for most applications. Often not only single " +"instances, but complete graphs of modified ojects have to be checked. " +"Hibernate offers automatic version checking with either an extended " +"Session or detached instances as the design paradigm." +msgstr "" +"確かに、マニュアルによるバージョンチェックは、些細な儀式だけで実行できます" +"が、 多くのアプリケーションにとって実用的ではありません。 しばしば、1つのイ" +"ンスタンスだけでなく、 修正されたオブジェクトの完全なグラフをチェックしなけれ" +"ばなりません。 Hibernateは、設計パラダイムとして、拡張 Session か 分離されたインスタンスを自動的にバージョンチェックします。" + +#. Tag: title +#: transactions.xml:678 +#, no-c-format msgid "Extended session and automatic versioning" -msgstr "確かに、マニュアルによるバージョンチェックは、些細な儀式だけで実行できますが、 多くのアプリケーションにとって実用的ではありません。 しばしば、1つのインスタンスだけでなく、 修正されたオブジェクトの完全なグラフをチェックしなければなりません。 Hibernateは、設計パラダイムとして、拡張 Session か 分離されたインスタンスを自動的にバージョンチェックします。" - -#: index.docbook:680 -msgid "A single Session instance and its persistent instances are used for the whole conversation, known as session-per-conversation. Hibernate checks instance versions at flush time, throwing an exception if concurrent modification is detected. It's up to the developer to catch and handle this exception (common options are the opportunity for the user to merge changes or to restart the business conversation with non-stale data)." msgstr "拡張セッションと自動バージョニング" -#: index.docbook:689 -msgid "The Session is disconnected from any underlying JDBC connection when waiting for user interaction. This approach is the most efficient in terms of database access. The application need not concern itself with version checking or with reattaching detached instances, nor does it have to reload instances in every database transaction." -msgstr "1つの Session インスタンスとその永続性インスタンスは、 session-per-conversation として知られる、 対話全体で使われます。 Hibernateはフラッシュする際に、インスタンスのバージョンをチェックします。 同時に修正されたことを検出すると、例外を投げます。 この例外をキャッチして扱うのは、開発者の責任です (一般的な選択肢は、変更をマージするか古くないデータでビジネス対話を 再スタートする機会をユーザーに提供することです)。" - -#: index.docbook:697 +#. Tag: para +#: transactions.xml:680 +#, no-c-format msgid "" - "" -msgstr "ユーザーの対話を待っているときは、 Session を基礎となるJDBCコネクションから切り離します。 このアプローチは、データベースアクセスの中では、最も効率的です。 アプリケーションは、バージョンチェックや分離されたインスタンスを再追加すること に関心を持つ必要はありません。また、あらゆるデータベーストランザクションの中で インスタンスを再読み込みする必要はありません。" - -#: index.docbook:698 -msgid "The foo object still knows which Session it was loaded in. Beginning a new database transaction on an old session obtains a new connection and resumes the session. Committing a database transaction disconnects a session from the JDBC connection and returns the connection to the pool. After reconnection, to force a version check on data you aren't updating, you may call Session.lock() with LockMode.READ on any objects that might have been updated by another transaction. You don't need to lock any data that you are updating. Usually you would set FlushMode.MANUAL on an extended Session, so that only the last database transaction cycle is allowed to actually persist all modifications made in this conversation. Hence, only this last database transaction would include the flush() operation, and then also close() the session to end the conversation." +"A single Session instance and its persistent instances " +"are used for the whole conversation, known as session-per-" +"conversation. Hibernate checks instance versions at flush time, " +"throwing an exception if concurrent modification is detected. It's up to the " +"developer to catch and handle this exception (common options are the " +"opportunity for the user to merge changes or to restart the business " +"conversation with non-stale data)." msgstr "" - "" +"1つの Session インスタンスとその永続性インスタンスは、 " +"session-per-conversation として知られる、 対話全体で使わ" +"れます。 Hibernateはフラッシュする際に、インスタンスのバージョンをチェックし" +"ます。 同時に修正されたことを検出すると、例外を投げます。 この例外をキャッチ" +"して扱うのは、開発者の責任です (一般的な選択肢は、変更をマージするか古くない" +"データでビジネス対話を 再スタートする機会をユーザーに提供することです)。" -#: index.docbook:713 -msgid "This pattern is problematic if the Session is too big to be stored during user think time, e.g. an HttpSession should be kept as small as possible. As the Session is also the (mandatory) first-level cache and contains all loaded objects, we can probably use this strategy only for a few request/response cycles. You should use a Session only for a single conversation, as it will soon also have stale data." -msgstr "foo オブジェクトは、自分をロードした Session をまだ知っています。 古いセッションの上で新しいデータベーストランザクションを開始することで、 新しいコネクションを取得し、そのセッションが再開されます。 データベーストランザクションをコミットすることで、 セッションからJDBCコネクションを切断し、コネクションをプールに返します。 再接続した後、更新していないデータのバージョンチェックを強制するために、 他のトランザクションにより更新されているかもしれないオブジェクトに関して、 LockMode.READ をつけて Session.lock() を呼び出すことができます。 更新して いる データをロックする必要はありません。 通常、拡張 SessionFlushMode.MANUAL をセットします。 最後のデータベーストランザクションの周期でのみ、 対話の中で変更されたすべてを実際に永続化させるためです。 ゆえに、最後のデータベーストランザクションのみ flush() オペレーションを含みます。そして、対話を終わらせるために、 セッションも close() します。" +#. Tag: para +#: transactions.xml:689 +#, no-c-format +msgid "" +"The Session is disconnected from any underlying JDBC " +"connection when waiting for user interaction. This approach is the most " +"efficient in terms of database access. The application need not concern " +"itself with version checking or with reattaching detached instances, nor " +"does it have to reload instances in every database transaction." +msgstr "" +"ユーザーの対話を待っているときは、 Session を基礎となる" +"JDBCコネクションから切り離します。 このアプローチは、データベースアクセスの中" +"では、最も効率的です。 アプリケーションは、バージョンチェックや分離されたイン" +"スタンスを再追加すること に関心を持つ必要はありません。また、あらゆるデータ" +"ベーストランザクションの中で インスタンスを再読み込みする必要はありません。" -#: index.docbook:723 -msgid "(Note that earlier Hibernate versions required explicit disconnection and reconnection of a Session. These methods are deprecated, as beginning and ending a transaction has the same effect.)" -msgstr "ユーザーが考慮中に、格納することができないくらい Session が大きいのであれば、このパターンは問題があります。 例えば、HttpSession は可能な限り小さく保つべきです。 Session は(強制的に)1次キャッシュでもあり、 ロードしたオブジェクトをすべて保持します。 おそらく、リクエスト/レスポンスのサイクルが数回であれば、この戦略が使えます。 1つの対話のためだけに Session を使うべきです。 なぜなら、すぐに新鮮でないデータを持つためです。" +#. Tag: programlisting +#: transactions.xml:697 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:729 -msgid "Also note that you should keep the disconnected Session close to the persistence layer. In other words, use an EJB stateful session bean to hold the Session in a three-tier environment, and don't transfer it to the web layer (or even serialize it to a separate tier) to store it in the HttpSession." -msgstr "(Hibernateの以前のバージョンは、明示的な Session の 切断と再接続が必要だったことに注意してください。 これらのメソッドは非推奨になりました。 なぜなら、トランザクションの開始と終了は同じ効果があるためです。)" +#. Tag: para +#: transactions.xml:698 +#, no-c-format +msgid "" +"The foo object still knows which Session it was loaded in. Beginning a new database transaction on an old " +"session obtains a new connection and resumes the session. Committing a " +"database transaction disconnects a session from the JDBC connection and " +"returns the connection to the pool. After reconnection, to force a version " +"check on data you aren't updating, you may call Session.lock() with LockMode.READ on any objects that might " +"have been updated by another transaction. You don't need to lock any data " +"that you are updating. Usually you would set " +"FlushMode.MANUAL on an extended Session, so that only the last database transaction cycle is allowed to " +"actually persist all modifications made in this conversation. Hence, only " +"this last database transaction would include the flush() " +"operation, and then also close() the session to end the " +"conversation." +msgstr "" +"foo オブジェクトは、自分をロードした Session をまだ知っています。 古いセッションの上で新しいデータベーストランザ" +"クションを開始することで、 新しいコネクションを取得し、そのセッションが再開さ" +"れます。 データベーストランザクションをコミットすることで、 セッションから" +"JDBCコネクションを切断し、コネクションをプールに返します。 再接続した後、更新" +"していないデータのバージョンチェックを強制するために、 他のトランザクションに" +"より更新されているかもしれないオブジェクトに関して、 LockMode.READ をつけて Session.lock() を呼び出すことができま" +"す。 更新して いる データをロックする必要はありません。 " +"通常、拡張 SessionFlushMode.MANUAL " +"をセットします。 最後のデータベーストランザクションの周期でのみ、 対話の中で" +"変更されたすべてを実際に永続化させるためです。 ゆえに、最後のデータベーストラ" +"ンザクションのみ flush() オペレーションを含みます。そし" +"て、対話を終わらせるために、 セッションも close() します。" -#: index.docbook:737 -msgid "The extended session pattern, or session-per-conversation, is more difficult to implement with automatic current session context management. You need to supply your own implementation of the CurrentSessionContext for this, see the Hibernate Wiki for examples." -msgstr "切断した Session を永続化層の近くで保持すべきであることに 注意してください。 言い換えると、3層環境の中で Session を保持するために、 EJBステートフルセッションBeanを使ってください。 HttpSession に格納するために、Web層に転送しないでください (別の層へのシリアライズもしないでください)。" +#. Tag: para +#: transactions.xml:713 +#, no-c-format +msgid "" +"This pattern is problematic if the Session is too big to " +"be stored during user think time, e.g. an HttpSession " +"should be kept as small as possible. As the Session is " +"also the (mandatory) first-level cache and contains all loaded objects, we " +"can probably use this strategy only for a few request/response cycles. You " +"should use a Session only for a single conversation, as " +"it will soon also have stale data." +msgstr "" +"ユーザーが考慮中に、格納することができないくらい Session " +"が大きいのであれば、このパターンは問題があります。 例えば、" +"HttpSession は可能な限り小さく保つべきです。 " +"Session は(強制的に)1次キャッシュでもあり、 ロードした" +"オブジェクトをすべて保持します。 おそらく、リクエスト/レスポンスのサイクルが" +"数回であれば、この戦略が使えます。 1つの対話のためだけに Session を使うべきです。 なぜなら、すぐに新鮮でないデータを持つためです。" -#: index.docbook:747 +#. Tag: para +#: transactions.xml:723 +#, no-c-format +msgid "" +"(Note that earlier Hibernate versions required explicit disconnection and " +"reconnection of a Session. These methods are deprecated, " +"as beginning and ending a transaction has the same effect.)" +msgstr "" +"(Hibernateの以前のバージョンは、明示的な Session の 切断" +"と再接続が必要だったことに注意してください。 これらのメソッドは非推奨になりま" +"した。 なぜなら、トランザクションの開始と終了は同じ効果があるためです。)" + +#. Tag: para +#: transactions.xml:729 +#, no-c-format +msgid "" +"Also note that you should keep the disconnected Session " +"close to the persistence layer. In other words, use an EJB stateful session " +"bean to hold the Session in a three-tier environment, and " +"don't transfer it to the web layer (or even serialize it to a separate tier) " +"to store it in the HttpSession." +msgstr "" +"切断した Session を永続化層の近くで保持すべきであることに " +"注意してください。 言い換えると、3層環境の中で Session を" +"保持するために、 EJBステートフルセッションBeanを使ってください。 " +"HttpSession に格納するために、Web層に転送しないでください " +"(別の層へのシリアライズもしないでください)。" + +#. Tag: para +#: transactions.xml:737 +#, no-c-format +msgid "" +"The extended session pattern, or session-per-conversation, is more difficult to implement with automatic current session " +"context management. You need to supply your own implementation of the " +"CurrentSessionContext for this, see the Hibernate Wiki " +"for examples." +msgstr "" +"拡張セッションパターン(もしくは、session-per-conversation)は、 自動的なカレントセッションコンテキスト管理を実施するより難し" +"い。 このために、あなたは CurrentSessionContext の実装を供" +"給する必要があります。 Hibernate Wikiにある例を参照してください。" + +#. Tag: title +#: transactions.xml:747 +#, no-c-format msgid "Detached objects and automatic versioning" -msgstr "拡張セッションパターン(もしくは、session-per-conversation)は、 自動的なカレントセッションコンテキスト管理を実施するより難しい。 このために、あなたは CurrentSessionContext の実装を供給する必要があります。 Hibernate Wikiにある例を参照してください。" - -#: index.docbook:749 -msgid "Each interaction with the persistent store occurs in a new Session. However, the same persistent instances are reused for each interaction with the database. The application manipulates the state of detached instances originally loaded in another Session and then reattaches them using Session.update(), Session.saveOrUpdate(), or Session.merge()." msgstr "デタッチされたオブジェクトと自動バージョニング" -#: index.docbook:757 +#. Tag: para +#: transactions.xml:749 +#, no-c-format msgid "" - "" -msgstr "新しい Sessionにより、永続化ストア(訳注:DB)との対話が発生します。 また一方、同じ永続性インスタンスが、データベースとの対話ごとに再利用されます。 アプリケーションは、元々は他の Session でロードされ、 デタッチされたインスタンスの状態を操作します。 そして、Session.update() もしくは、Session.saveOrUpdate()Session.merge() を使って、それらのインスタンスを再追加します。" - -#: index.docbook:759 -msgid "Again, Hibernate will check instance versions during flush, throwing an exception if conflicting updates occured." +"Each interaction with the persistent store occurs in a new Session. However, the same persistent instances are reused for each " +"interaction with the database. The application manipulates the state of " +"detached instances originally loaded in another Session " +"and then reattaches them using Session.update(), " +"Session.saveOrUpdate(), or Session.merge()." msgstr "" - "" +"新しい Sessionにより、永続化ストア(訳注:DB)との対話が" +"発生します。 また一方、同じ永続性インスタンスが、データベースとの対話ごとに再" +"利用されます。 アプリケーションは、元々は他の Session で" +"ロードされ、 デタッチされたインスタンスの状態を操作します。 そして、" +"Session.update() もしくは、Session.saveOrUpdate()" +"Session.merge() を使って、それらのインスタン" +"スを再追加します。" -#: index.docbook:764 -msgid "You may also call lock() instead of update() and use LockMode.READ (performing a version check, bypassing all caches) if you are sure that the object has not been modified." -msgstr "この場合もやはり、Hibernateはフラッシュする際に、インスタンスのバージョンをチェックします。 更新の競合が発生した場合には、例外を投げます。" +#. Tag: programlisting +#: transactions.xml:757 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:773 +#. Tag: para +#: transactions.xml:759 +#, no-c-format +msgid "" +"Again, Hibernate will check instance versions during flush, throwing an " +"exception if conflicting updates occured." +msgstr "" +"この場合もやはり、Hibernateはフラッシュする際に、インスタンスのバージョンを" +"チェックします。 更新の競合が発生した場合には、例外を投げます。" + +#. Tag: para +#: transactions.xml:764 +#, no-c-format +msgid "" +"You may also call lock() instead of update() and use LockMode.READ (performing a version " +"check, bypassing all caches) if you are sure that the object has not been " +"modified." +msgstr "" +"オブジェクトが修正されていないことを確信している場合は、 update() の代わりに、LockMode.READ を使って、 " +"lock() を呼び出すこともできます (すべてのキャッシュを迂回" +"し、バージョンチェックを実施します)。" + +#. Tag: title +#: transactions.xml:773 +#, no-c-format msgid "Customizing automatic versioning" -msgstr "オブジェクトが修正されていないことを確信している場合は、 update() の代わりに、LockMode.READ を使って、 lock() を呼び出すこともできます (すべてのキャッシュを迂回し、バージョンチェックを実施します)。" - -#: index.docbook:775 -msgid "You may disable Hibernate's automatic version increment for particular properties and collections by setting the optimistic-lock mapping attribute to false. Hibernate will then no longer increment versions if the property is dirty." msgstr "自動バージョニングのカスタマイズ" -#: index.docbook:782 -msgid "Legacy database schemas are often static and can't be modified. Or, other applications might also access the same database and don't know how to handle version numbers or even timestamps. In both cases, versioning can't rely on a particular column in a table. To force a version check without a version or timestamp property mapping, with a comparison of the state of all fields in a row, turn on optimistic-lock=\"all\" in the <class> mapping. Note that this concepetually only works if Hibernate can compare the old and new state, i.e. if you use a single long Session and not session-per-request-with-detached-objects." -msgstr "マッピングの optimistic-lock 属性に false を設定することにより、特定のプロパティやコレクションのために 自動バージョンインクリメントを無効にできます。 プロパティがダーティであっても、バージョンをインクリメントしません。" +#. Tag: para +#: transactions.xml:775 +#, no-c-format +msgid "" +"You may disable Hibernate's automatic version increment for particular " +"properties and collections by setting the optimistic-lock " +"mapping attribute to false. Hibernate will then no longer " +"increment versions if the property is dirty." +msgstr "" +"マッピングの optimistic-lock 属性に false を設定することにより、特定のプロパティやコレクションのために 自動" +"バージョンインクリメントを無効にできます。 プロパティがダーティであっても、" +"バージョンをインクリメントしません。" -#: index.docbook:793 -msgid "Sometimes concurrent modification can be permitted as long as the changes that have been made don't overlap. If you set optimistic-lock=\"dirty\" when mapping the <class>, Hibernate will only compare dirty fields during flush." -msgstr "レガシーのデータベーススキーマは、しばしば固定的であり、変更できません。 または、他のアプリケーションが同じデータベースにアクセスしなければならず、 そのアプリケーションはバージョン番号やタイムスタンプさえ操作する方法を知りません。 どちらの場合も、テーブルの特定のカラムを当てにして、バージョニングを行えません。 バージョンやタイムスタンプのプロパティをマッピングせずに、バージョンチェックさせるために、 <class> マッピングに optimistic-lock=\"all\" を 指定してください。 行のすべてのフィールドの状態を比較するようになります。 これは、Hibernateが古い状態と新しい状態を比較できる場合に、 理論的に動作するだけであることに注意してください。 例えば、session-per-request-with-detached-objects ではなく、 1つの長い Session を使う場合です。" +#. Tag: para +#: transactions.xml:782 +#, no-c-format +msgid "" +"Legacy database schemas are often static and can't be modified. Or, other " +"applications might also access the same database and don't know how to " +"handle version numbers or even timestamps. In both cases, versioning can't " +"rely on a particular column in a table. To force a version check without a " +"version or timestamp property mapping, with a comparison of the state of all " +"fields in a row, turn on optimistic-lock=\"all\" in the " +"<class> mapping. Note that this concepetually only " +"works if Hibernate can compare the old and new state, i.e. if you use a " +"single long Session and not session-per-request-with-" +"detached-objects." +msgstr "" +"レガシーのデータベーススキーマは、しばしば固定的であり、変更できません。 また" +"は、他のアプリケーションが同じデータベースにアクセスしなければならず、 そのア" +"プリケーションはバージョン番号やタイムスタンプさえ操作する方法を知りません。 " +"どちらの場合も、テーブルの特定のカラムを当てにして、バージョニングを行えませ" +"ん。 バージョンやタイムスタンプのプロパティをマッピングせずに、バージョン" +"チェックさせるために、 <class> マッピングに " +"optimistic-lock=\"all\" を 指定してください。 行のすべての" +"フィールドの状態を比較するようになります。 これは、Hibernateが古い状態と新し" +"い状態を比較できる場合に、 理論的に動作するだけであることに注意してくださ" +"い。 例えば、session-per-request-with-detached-objects ではなく、 1つの長い " +"Session を使う場合です。" -#: index.docbook:799 -msgid "In both cases, with dedicated version/timestamp columns or with full/dirty field comparison, Hibernate uses a single UPDATE statement (with an appropriate WHERE clause) per entity to execute the version check and update the information. If you use transitive persistence to cascade reattachment to associated entities, Hibernate might execute uneccessary updates. This is usually not a problem, but on update triggers in the database might be executed even when no changes have been made to detached instances. You can customize this behavior by setting select-before-update=\"true\" in the <class> mapping, forcing Hibernate to SELECT the instance to ensure that changes did actually occur, before updating the row." -msgstr "ときどき、行われた変更が重ならない限り、同時に行われた変更を受け入れることができます。 <class> マッピングに optimistic-lock=\"dirty\" を設定した場合、フラッシュする際に、Hibernateはダーティフィールドのみを比較します。" +#. Tag: para +#: transactions.xml:793 +#, no-c-format +msgid "" +"Sometimes concurrent modification can be permitted as long as the changes " +"that have been made don't overlap. If you set optimistic-lock=" +"\"dirty\" when mapping the <class>, " +"Hibernate will only compare dirty fields during flush." +msgstr "" +"ときどき、行われた変更が重ならない限り、同時に行われた変更を受け入れることが" +"できます。 <class> マッピングに optimistic-" +"lock=\"dirty\" を設定した場合、フラッシュする際に、Hibernateはダー" +"ティフィールドのみを比較します。" -#: index.docbook:817 +#. Tag: para +#: transactions.xml:799 +#, no-c-format +msgid "" +"In both cases, with dedicated version/timestamp columns or with full/dirty " +"field comparison, Hibernate uses a single UPDATE " +"statement (with an appropriate WHERE clause) per entity " +"to execute the version check and update the information. If you use " +"transitive persistence to cascade reattachment to associated entities, " +"Hibernate might execute uneccessary updates. This is usually not a problem, " +"but on update triggers in the database might be " +"executed even when no changes have been made to detached instances. You can " +"customize this behavior by setting select-before-update=\"true\" in the <class> mapping, forcing Hibernate " +"to SELECT the instance to ensure that changes did " +"actually occur, before updating the row." +msgstr "" +"専用のバージョン/タイムスタンプのカラムを使う場合、 もしくはすべて/ダーティ" +"のフィールドを比較する場合どちらであっても、 Hibernateはエンティティごとに1つ" +"の UPDATE 文を (適切な WHERE 節と共" +"に)使い、 バージョンチェックと情報の更新を行います。 関連するエンティティの" +"再追加をカスケードするために、 連鎖的な永続化を使用した場合、不必要な更新を実" +"行するかもしれません。 これは通常問題になりません。 しかし、分離したインスタ" +"ンスを変更していなくとも、 データベースの on update トリ" +"ガーが実行されるかもしれません。 <class> マッピング" +"に select-before-update=\"true\" を設定することによって、 " +"この振る舞いをカスタマイズできます。 確実に変更されたかを確認するために、行を" +"更新する前に、 必ずインスタンスを SELECT します。" + +#. Tag: title +#: transactions.xml:817 +#, no-c-format msgid "Pessimistic Locking" -msgstr "専用のバージョン/タイムスタンプのカラムを使う場合、 もしくはすべて/ダーティのフィールドを比較する場合どちらであっても、 Hibernateはエンティティごとに1つの UPDATE 文を (適切な WHERE 節と共に)使い、 バージョンチェックと情報の更新を行います。 関連するエンティティの再追加をカスケードするために、 連鎖的な永続化を使用した場合、不必要な更新を実行するかもしれません。 これは通常問題になりません。 しかし、分離したインスタンスを変更していなくとも、 データベースの on update トリガーが実行されるかもしれません。 <class> マッピングに select-before-update=\"true\" を設定することによって、 この振る舞いをカスタマイズできます。 確実に変更されたかを確認するために、行を更新する前に、 必ずインスタンスを SELECT します。" - -#: index.docbook:819 -msgid "It is not intended that users spend much time worring about locking strategies. Its usually enough to specify an isolation level for the JDBC connections and then simply let the database do all the work. However, advanced users may sometimes wish to obtain exclusive pessimistic locks, or re-obtain locks at the start of a new transaction." msgstr "悲観的ロック" -#: index.docbook:826 -msgid "Hibernate will always use the locking mechanism of the database, never lock objects in memory!" -msgstr "ユーザがロック戦略に悩むのに多くの時間を費やすことを意図していません。 通常は、JDBCコネクションに分離レベルを指定し、 単にデータベースにすべての仕事をさせれば十分です。 しかしながら、高度なユーザは、排他的な悲観的ロックを獲得することか、 新しいトランザクションが開始される際にロックを再獲得することを ときどき望むかもしれません。" +#. Tag: para +#: transactions.xml:819 +#, no-c-format +msgid "" +"It is not intended that users spend much time worring about locking " +"strategies. Its usually enough to specify an isolation level for the JDBC " +"connections and then simply let the database do all the work. However, " +"advanced users may sometimes wish to obtain exclusive pessimistic locks, or " +"re-obtain locks at the start of a new transaction." +msgstr "" +"ユーザがロック戦略に悩むのに多くの時間を費やすことを意図していません。 通常" +"は、JDBCコネクションに分離レベルを指定し、 単にデータベースにすべての仕事をさ" +"せれば十分です。 しかしながら、高度なユーザは、排他的な悲観的ロックを獲得する" +"ことか、 新しいトランザクションが開始される際にロックを再獲得することを とき" +"どき望むかもしれません。" -#: index.docbook:831 -msgid "The LockMode class defines the different lock levels that may be acquired by Hibernate. A lock is obtained by the following mechanisms:" -msgstr "Hibernateはいつもデータベースのロックの仕組みを使います。 メモリ内のオブジェクトを決してロックしません!" +#. Tag: para +#: transactions.xml:826 +#, no-c-format +msgid "" +"Hibernate will always use the locking mechanism of the database, never lock " +"objects in memory!" +msgstr "" +"Hibernateはいつもデータベースのロックの仕組みを使います。 メモリ内のオブジェ" +"クトを決してロックしません!" -#: index.docbook:838 -msgid "LockMode.WRITE is acquired automatically when Hibernate updates or inserts a row." -msgstr "LockMode クラスは、Hibernateが獲得できる異なるロックレベルを定義します。 以下の仕組みにより、ロックを獲得できます。" +#. Tag: para +#: transactions.xml:831 +#, no-c-format +msgid "" +"The LockMode class defines the different lock levels that " +"may be acquired by Hibernate. A lock is obtained by the following mechanisms:" +msgstr "" +"LockMode クラスは、Hibernateが獲得できる異なるロックレベル" +"を定義します。 以下の仕組みにより、ロックを獲得できます。" -#: index.docbook:844 -msgid "LockMode.UPGRADE may be acquired upon explicit user request using SELECT ... FOR UPDATE on databases which support that syntax." -msgstr "LockMode.WRITE は、 Hibernateが行を更新もしくは挿入する際に自動的に得られます。" +#. Tag: para +#: transactions.xml:838 +#, no-c-format +msgid "" +"LockMode.WRITE is acquired automatically when Hibernate " +"updates or inserts a row." +msgstr "" +"LockMode.WRITE は、 Hibernateが行を更新もしくは挿入する際" +"に自動的に得られます。" -#: index.docbook:850 -msgid "LockMode.UPGRADE_NOWAIT may be acquired upon explicit user request using a SELECT ... FOR UPDATE NOWAIT under Oracle." -msgstr "LockMode.UPGRADE は、 データベースでサポートされている文法 SELECT ... FOR UPDATE を使った、明示的なユーザー要求により得られるかもしれません。" +#. Tag: para +#: transactions.xml:844 +#, no-c-format +msgid "" +"LockMode.UPGRADE may be acquired upon explicit user " +"request using SELECT ... FOR UPDATE on databases which " +"support that syntax." +msgstr "" +"LockMode.UPGRADE は、 データベースでサポートされている文" +"法 SELECT ... FOR UPDATE を使った、明示的なユーザー要求に" +"より得られるかもしれません。" -#: index.docbook:856 -msgid "LockMode.READ is acquired automatically when Hibernate reads data under Repeatable Read or Serializable isolation level. May be re-acquired by explicit user request." -msgstr "LockMode.UPGRADE_NOWAIT は、 Oracle で SELECT ... FOR UPDATE NOWAIT を使った、 明示的なユーザー要求により得られるかもしれません。" +#. Tag: para +#: transactions.xml:850 +#, no-c-format +msgid "" +"LockMode.UPGRADE_NOWAIT may be acquired upon explicit " +"user request using a SELECT ... FOR UPDATE NOWAIT under " +"Oracle." +msgstr "" +"LockMode.UPGRADE_NOWAIT は、 Oracle で " +"SELECT ... FOR UPDATE NOWAIT を使った、 明示的なユーザー要" +"求により得られるかもしれません。" -#: index.docbook:863 -msgid "LockMode.NONE represents the absence of a lock. All objects switch to this lock mode at the end of a Transaction. Objects associated with the session via a call to update() or saveOrUpdate() also start out in this lock mode." -msgstr "LockMode.READ は、 Repeatable ReadもしくはSerializableの分離レベルで、データを読んだ際に自動的に得られます。 おそらく、明示的なユーザー要求により、再取得されます。" +#. Tag: para +#: transactions.xml:856 +#, no-c-format +msgid "" +"LockMode.READ is acquired automatically when Hibernate " +"reads data under Repeatable Read or Serializable isolation level. May be re-" +"acquired by explicit user request." +msgstr "" +"LockMode.READ は、 Repeatable ReadもしくはSerializableの分" +"離レベルで、データを読んだ際に自動的に得られます。 おそらく、明示的なユーザー" +"要求により、再取得されます。" -#: index.docbook:872 -msgid "The \"explicit user request\" is expressed in one of the following ways:" -msgstr "LockMode.NONE は、ロックしないことを表します。 Transaction の終わりに、 すべてのオブジェクトはこのロックモードに切り替わります。 update()saveOrUpdate() を呼び出すことによって、 セッションに関連付けられたオブジェクトも、このロックモードで出発します。" +#. Tag: para +#: transactions.xml:863 +#, no-c-format +msgid "" +"LockMode.NONE represents the absence of a lock. All " +"objects switch to this lock mode at the end of a Transaction. Objects associated with the session via a call to update()" +" or saveOrUpdate() also start out in this lock " +"mode." +msgstr "" +"LockMode.NONE は、ロックしないことを表します。 " +"Transaction の終わりに、 すべてのオブジェクトはこのロック" +"モードに切り替わります。 update()saveOrUpdate" +"() を呼び出すことによって、 セッションに関連付けられたオブジェクト" +"も、このロックモードで出発します。" -#: index.docbook:878 -msgid "A call to Session.load(), specifying a LockMode." +#. Tag: para +#: transactions.xml:872 +#, no-c-format +msgid "" +"The \"explicit user request\" is expressed in one of the following ways:" msgstr "「明示的なユーザー要求」とは、下記の方法の1つで言い表せます。" -#: index.docbook:883 -msgid "A call to Session.lock()." -msgstr "LockMode を指定した Session.load() の呼び出し。" +#. Tag: para +#: transactions.xml:878 +#, no-c-format +msgid "" +"A call to Session.load(), specifying a LockMode." +msgstr "" +"LockMode を指定した Session.load() の呼" +"び出し。" -#: index.docbook:888 -msgid "A call to Query.setLockMode()." +#. Tag: para +#: transactions.xml:883 +#, no-c-format +msgid "A call to Session.lock()." msgstr "Session.lock() の呼び出し。" -#: index.docbook:894 -msgid "If Session.load() is called with UPGRADE or UPGRADE_NOWAIT, and the requested object was not yet loaded by the session, the object is loaded using SELECT ... FOR UPDATE. If load() is called for an object that is already loaded with a less restrictive lock than the one requested, Hibernate calls lock() for that object." +#. Tag: para +#: transactions.xml:888 +#, no-c-format +msgid "A call to Query.setLockMode()." msgstr "Query.setLockMode() の呼び出し。" -#: index.docbook:903 -msgid "Session.lock() performs a version number check if the specified lock mode is READ, UPGRADE or UPGRADE_NOWAIT. (In the case of UPGRADE or UPGRADE_NOWAIT, SELECT ... FOR UPDATE is used.)" -msgstr "UPGRADE もしくは UPGRADE_NOWAIT が指定された Session.load() が呼び出され、 かつ要求されたオブジェクトがセッションによってまだロードされていなかった場合は、 SELECT ... FOR UPDATE を使って、オブジェクトがロードされます。 load() で呼び出されたオブジェクトが、 要求されているより制限が少ないロックですでにロードされていた場合は、 Hibernateはそのオブジェクトのために、lock() を呼び出します。" +#. Tag: para +#: transactions.xml:894 +#, no-c-format +msgid "" +"If Session.load() is called with UPGRADE or UPGRADE_NOWAIT, and the requested object was " +"not yet loaded by the session, the object is loaded using " +"SELECT ... FOR UPDATE. If load() is " +"called for an object that is already loaded with a less restrictive lock " +"than the one requested, Hibernate calls lock() for that " +"object." +msgstr "" +"UPGRADE もしくは UPGRADE_NOWAIT が指定" +"された Session.load() が呼び出され、 かつ要求されたオブ" +"ジェクトがセッションによってまだロードされていなかった場合は、 " +"SELECT ... FOR UPDATE を使って、オブジェクトがロードされま" +"す。 load() で呼び出されたオブジェクトが、 要求されている" +"より制限が少ないロックですでにロードされていた場合は、 Hibernateはそのオブ" +"ジェクトのために、lock() を呼び出します。" -#: index.docbook:910 -msgid "If the database does not support the requested lock mode, Hibernate will use an appropriate alternate mode (instead of throwing an exception). This ensures that applications will be portable." -msgstr "指定されたロックモードが READ もしくは、UPGRADEUPGRADE_NOWAIT だった場合、Session.lock() は、バージョン番号のチェックを実施します。 (UPGRADE もしくは UPGRADE_NOWAIT の場合、 SELECT ... FOR UPDATE が使われます。)" +#. Tag: para +#: transactions.xml:903 +#, no-c-format +msgid "" +"Session.lock() performs a version number check if the " +"specified lock mode is READ, UPGRADE " +"or UPGRADE_NOWAIT. (In the case of UPGRADE or UPGRADE_NOWAIT, SELECT ... FOR " +"UPDATE is used.)" +msgstr "" +"指定されたロックモードが READ もしくは、UPGRADEUPGRADE_NOWAIT だった場合、Session." +"lock() は、バージョン番号のチェックを実施します。 " +"(UPGRADE もしくは UPGRADE_NOWAIT の場" +"合、 SELECT ... FOR UPDATE が使われます。)" -#: index.docbook:919 +#. Tag: para +#: transactions.xml:910 +#, no-c-format +msgid "" +"If the database does not support the requested lock mode, Hibernate will use " +"an appropriate alternate mode (instead of throwing an exception). This " +"ensures that applications will be portable." +msgstr "" +"データベースが要求されたロックモードをサポートしていない場合、 Hibernateは" +"(例外を投げる代わりに、)適切な代わりのモードを使います。 これは、アプリケー" +"ションがポータブルであることを保証します。" + +#. Tag: title +#: transactions.xml:919 +#, no-c-format msgid "Connection Release Modes" -msgstr "データベースが要求されたロックモードをサポートしていない場合、 Hibernateは(例外を投げる代わりに、)適切な代わりのモードを使います。 これは、アプリケーションがポータブルであることを保証します。" - -#: index.docbook:921 -msgid "The legacy (2.x) behavior of Hibernate in regards to JDBC connection management was that a Session would obtain a connection when it was first needed and then hold unto that connection until the session was closed. Hibernate 3.x introduced the notion of connection release modes to tell a session how to handle its JDBC connections. Note that the following discussion is pertinent only to connections provided through a configured ConnectionProvider; user-supplied connections are outside the breadth of this discussion. The different release modes are identified by the enumerated values of org.hibernate.ConnectionReleaseMode:" msgstr "コネクション開放モード" -#: index.docbook:935 -msgid "ON_CLOSE - is essentially the legacy behavior described above. The Hibernate session obatins a connection when it first needs to perform some JDBC access and holds unto that connection until the session is closed." -msgstr "Hibernateのレガシー(2.x)のJDBCコネクション管理に関する振る舞いは、 最初に必要とした際に Session がコネクションを得るというものでした。 そして、セッションが閉じられるまで、そのコネクションを保持しました。 Hibernate 3.xは、セッションにJDBCコネクションをどのように制御するかを伝える コネクション開放モードという概念を導入しました。 以降の議論は、構成された ConnectionProvider を通して提供される コネクションに適切であることに注意してください。 異なる開放モードは、org.hibernate.ConnectionReleaseMode に 列挙された値により確認されます。" +#. Tag: para +#: transactions.xml:921 +#, no-c-format +msgid "" +"The legacy (2.x) behavior of Hibernate in regards to JDBC connection " +"management was that a Session would obtain a connection " +"when it was first needed and then hold unto that connection until the " +"session was closed. Hibernate 3.x introduced the notion of connection " +"release modes to tell a session how to handle its JDBC connections. Note " +"that the following discussion is pertinent only to connections provided " +"through a configured ConnectionProvider; user-supplied " +"connections are outside the breadth of this discussion. The different " +"release modes are identified by the enumerated values of org." +"hibernate.ConnectionReleaseMode:" +msgstr "" +"Hibernateのレガシー(2.x)のJDBCコネクション管理に関する振る舞いは、 最初に必" +"要とした際に Session がコネクションを得るというものでし" +"た。 そして、セッションが閉じられるまで、そのコネクションを保持しました。 " +"Hibernate 3.xは、セッションにJDBCコネクションをどのように制御するかを伝える " +"コネクション開放モードという概念を導入しました。 以降の議論は、構成された " +"ConnectionProvider を通して提供される コネクションに適切で" +"あることに注意してください。 異なる開放モードは、org.hibernate." +"ConnectionReleaseMode に 列挙された値により確認されます。" -#: index.docbook:942 -msgid "AFTER_TRANSACTION - says to release connections after a org.hibernate.Transaction has completed." -msgstr "ON_CLOSE - 本質的に上記で述べたレガシーの振る舞いです。 Hibernateセッションは最初にJDBCアクセスを実行する必要がある際にコネクションを得ます。 そして、セッションが閉じられるまで、コネクションを保持します。" +#. Tag: para +#: transactions.xml:935 +#, no-c-format +msgid "" +"ON_CLOSE - is essentially the legacy behavior described " +"above. The Hibernate session obatins a connection when it first needs to " +"perform some JDBC access and holds unto that connection until the session is " +"closed." +msgstr "" +"ON_CLOSE - 本質的に上記で述べたレガシーの振る舞いです。 " +"Hibernateセッションは最初にJDBCアクセスを実行する必要がある際にコネクションを" +"得ます。 そして、セッションが閉じられるまで、コネクションを保持します。" -#: index.docbook:948 -msgid "AFTER_STATEMENT (also referred to as aggressive release) - says to release connections after each and every statement execution. This aggressive releasing is skipped if that statement leaves open resources associated with the given session; currently the only situation where this occurs is through the use of org.hibernate.ScrollableResults." -msgstr "AFTER_TRANSACTION - org.hibernate.Transaction が完了した後、 コネクションを開放します。" +#. Tag: para +#: transactions.xml:942 +#, no-c-format +msgid "" +"AFTER_TRANSACTION - says to release connections after a " +"org.hibernate.Transaction has completed." +msgstr "" +"AFTER_TRANSACTION - org.hibernate.Transaction が完了した後、 コネクションを開放します。" -#: index.docbook:958 -msgid "The configuration parameter hibernate.connection.release_mode is used to specify which release mode to use. The possible values:" -msgstr "AFTER_STATEMENT (積極的な開放とも呼ばれる) - すべてのステートメントがそれぞれ実行された後、コネクションが開放されます。 ステートメントがセッションに関連するリソースを開いたままにする場合は、 この積極的な開放はスキップされます。 今のところ、これが起こるのは org.hibernate.ScrollableResults が使われる場合のみです。" +#. Tag: para +#: transactions.xml:948 +#, no-c-format +msgid "" +"AFTER_STATEMENT (also referred to as aggressive release) " +"- says to release connections after each and every statement execution. This " +"aggressive releasing is skipped if that statement leaves open resources " +"associated with the given session; currently the only situation where this " +"occurs is through the use of org.hibernate.ScrollableResults." +msgstr "" +"AFTER_STATEMENT (積極的な開放とも呼ばれる) - すべてのス" +"テートメントがそれぞれ実行された後、コネクションが開放されます。 ステートメン" +"トがセッションに関連するリソースを開いたままにする場合は、 この積極的な開放は" +"スキップされます。 今のところ、これが起こるのは org.hibernate." +"ScrollableResults が使われる場合のみです。" -#: index.docbook:965 -msgid "auto (the default) - this choice delegates to the release mode returned by the org.hibernate.transaction.TransactionFactory.getDefaultReleaseMode() method. For JTATransactionFactory, this returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, this returns ConnectionReleaseMode.AFTER_TRANSACTION. It is rarely a good idea to change this default behavior as failures due to the value of this setting tend to indicate bugs and/or invalid assumptions in user code." -msgstr "コンフィグレーションパラメータの hibernate.connection.release_mode は、使用する開放モードを指定するために使います。 指定できる値は次の通りです。" +#. Tag: para +#: transactions.xml:958 +#, no-c-format +msgid "" +"The configuration parameter hibernate.connection.release_mode is used to specify which release mode to use. The possible values:" +msgstr "" +"コンフィグレーションパラメータの hibernate.connection.release_mode は、使用する開放モードを指定するために使います。 指定できる値は次の" +"通りです。" -#: index.docbook:975 -msgid "on_close - says to use ConnectionReleaseMode.ON_CLOSE. This setting is left for backwards compatibility, but its use is highly discouraged." -msgstr "auto (デフォルト) - これを選択すると org.hibernate.transaction.TransactionFactory.getDefaultReleaseMode() メソッドによって返される開放モードに委譲されます。 このメソッドは、 JTATransactionFactoryにはConnectionReleaseMode.AFTER_STATEMENTを返し、 JDBCTransactionFactoryにはConnectionReleaseMode.AFTER_TRANSACTIONを返します。 このデフォルトの振る舞いを変えてうまくいった試しがありません。 それは、この設定値が原因で起こる障害は、 ユーザコードの中でバグや間違った条件になりやすいからです。" +#. Tag: para +#: transactions.xml:965 +#, no-c-format +msgid "" +"auto (the default) - this choice delegates to the release " +"mode returned by the org.hibernate.transaction.TransactionFactory." +"getDefaultReleaseMode() method. For JTATransactionFactory, this " +"returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, " +"this returns ConnectionReleaseMode.AFTER_TRANSACTION. It is rarely a good " +"idea to change this default behavior as failures due to the value of this " +"setting tend to indicate bugs and/or invalid assumptions in user code." +msgstr "" +"auto (デフォルト) - これを選択すると org." +"hibernate.transaction.TransactionFactory.getDefaultReleaseMode() メ" +"ソッドによって返される開放モードに委譲されます。 このメソッドは、 " +"JTATransactionFactoryにはConnectionReleaseMode.AFTER_STATEMENTを返し、 " +"JDBCTransactionFactoryにはConnectionReleaseMode.AFTER_TRANSACTIONを返しま" +"す。 このデフォルトの振る舞いを変えてうまくいった試しがありません。 それは、" +"この設定値が原因で起こる障害は、 ユーザコードの中でバグや間違った条件になりや" +"すいからです。" -#: index.docbook:981 -msgid "after_transaction - says to use ConnectionReleaseMode.AFTER_TRANSACTION. This setting should not be used in JTA environments. Also note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is considered to be in auto-commit mode connections will be released as if the release mode were AFTER_STATEMENT." -msgstr "on_close - ConnectionReleaseMode.ON_CLOSEを使います。 この設定は後方互換のために残されていますが、使わないことを強く勧めます。" +#. Tag: para +#: transactions.xml:975 +#, no-c-format +msgid "" +"on_close - says to use ConnectionReleaseMode.ON_CLOSE. " +"This setting is left for backwards compatibility, but its use is highly " +"discouraged." +msgstr "" +"on_close - ConnectionReleaseMode.ON_CLOSEを使います。 この" +"設定は後方互換のために残されていますが、使わないことを強く勧めます。" -#: index.docbook:989 -msgid "after_statement - says to use ConnectionReleaseMode.AFTER_STATEMENT. Additionally, the configured ConnectionProvider is consulted to see if it supports this setting (supportsAggressiveRelease()). If not, the release mode is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only safe in environments where we can either re-acquire the same underlying JDBC connection each time we make a call into ConnectionProvider.getConnection() or in auto-commit environments where it does not matter whether we get back the same connection." -msgstr "after_transaction - ConnectionReleaseMode.AFTER_TRANSACTIONを使います。 この設定はJTA環境の中では使うべきではありません。 ConnectionReleaseMode.AFTER_TRANSACTIONを指定し、自動コミットモードの中では、 開放モードがAFTER_STATEMENTであるかのように、コネクションは開放されることに注意してください。" - -#: index.docbook:1153 -msgid "appended paragraph 1" -msgstr "after_statement - ConnectionReleaseMode.AFTER_STATEMENTを使います。 さらに、設定された ConnectionProvider は、 この設定 (supportsAggressiveRelease()) をサポートするかどうか を調べるために使用します。 もしそうでない場合、開放モードはConnectionReleaseMode.AFTER_TRANSACTION にリセットされます。 この設定は次の環境でのみ安全です。 それは、ConnectionProvider.getConnection() を呼び出すたびに 基盤となるJDBCコネクションが同じものを取得できるか、 同じコネクションが得られることが問題とならない自動コミット環境の中です。" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#. Tag: para +#: transactions.xml:981 +#, no-c-format +msgid "" +"after_transaction - says to use ConnectionReleaseMode." +"AFTER_TRANSACTION. This setting should not be used in JTA environments. Also " +"note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is " +"considered to be in auto-commit mode connections will be released as if the " +"release mode were AFTER_STATEMENT." +msgstr "" +"after_transaction - ConnectionReleaseMode." +"AFTER_TRANSACTIONを使います。 この設定はJTA環境の中では使うべきではありませ" +"ん。 ConnectionReleaseMode.AFTER_TRANSACTIONを指定し、自動コミットモードの中" +"では、 開放モードがAFTER_STATEMENTであるかのように、コネクションは開放される" +"ことに注意してください。" +#. Tag: para +#: transactions.xml:989 +#, no-c-format +msgid "" +"after_statement - says to use ConnectionReleaseMode." +"AFTER_STATEMENT. Additionally, the configured ConnectionProvider is consulted to see if it supports this setting " +"(supportsAggressiveRelease()). If not, the release mode " +"is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only " +"safe in environments where we can either re-acquire the same underlying JDBC " +"connection each time we make a call into ConnectionProvider." +"getConnection() or in auto-commit environments where it does not " +"matter whether we get back the same connection." +msgstr "" +"after_statement - ConnectionReleaseMode.AFTER_STATEMENTを" +"使います。 さらに、設定された ConnectionProvider は、 この" +"設定 (supportsAggressiveRelease()) をサポートするかどうか " +"を調べるために使用します。 もしそうでない場合、開放モードは" +"ConnectionReleaseMode.AFTER_TRANSACTION にリセットされます。 この設定は次の環" +"境でのみ安全です。 それは、ConnectionProvider.getConnection() を呼び出すたびに 基盤となるJDBCコネクションが同じものを取得できる" +"か、 同じコネクションが得られることが問題とならない自動コミット環境の中です。" diff --git a/documentation/manual/translations/ja-JP/content/tutorial.po b/documentation/manual/translations/ja-JP/content/tutorial.po index 737f82349a..bbea79e3a6 100644 --- a/documentation/manual/translations/ja-JP/content/tutorial.po +++ b/documentation/manual/translations/ja-JP/content/tutorial.po @@ -1,1894 +1,2777 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:48+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:7 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: tutorial.xml:7 +#, no-c-format msgid "Introduction to Hibernate" msgstr "Hibernateの導入" -#: index.docbook:10 +#. Tag: title +#: tutorial.xml:10 +#, no-c-format msgid "Preface" -msgstr "前書き" +msgstr "前書き" -#: index.docbook:12 -msgid "This chapter is an introductory tutorial for new users of Hibernate. We start with a simple command line application using an in-memory database and develop it in easy to understand steps." -msgstr "この章はHibernateを初めて使うユーザ向けの入門的なチュートリアルです。 インメモリデータベースを使う簡単なコマンドラインアプリケーションから始め、 一歩一歩わかりやすいやり方で開発を進めます。" +#. Tag: para +#: tutorial.xml:12 +#, no-c-format +msgid "" +"This chapter is an introductory tutorial for new users of Hibernate. We " +"start with a simple command line application using an in-memory database and " +"develop it in easy to understand steps." +msgstr "" +"この章はHibernateを初めて使うユーザ向けの入門的なチュートリアルです。 インメ" +"モリデータベースを使う簡単なコマンドラインアプリケーションから始め、 一歩一歩" +"わかりやすいやり方で開発を進めます。" -#: index.docbook:18 -msgid "This tutorial is intended for new users of Hibernate but requires Java and SQL knowledge. It is based on a tutorial by Michael Gloegl, the third-party libraries we name are for JDK 1.4 and 5.0. You might need others for JDK 1.3." -msgstr "このチュートリアルはHibernateを初めて使うユーザを想定していますが、 理解するにはJavaとSQLについての知識が必要です。 これはMichael Gloeglの手によるチュートリアルを下敷きにしていますが、 ここでサードパーティライブラリと言っているのは、JDK 1.4と5.0用のものです。 JDK 1.3を利用するのであれば他のライブラリが必要かもしれません。" +#. Tag: para +#: tutorial.xml:18 +#, no-c-format +msgid "" +"This tutorial is intended for new users of Hibernate but requires Java and " +"SQL knowledge. It is based on a tutorial by Michael Gloegl, the third-party " +"libraries we name are for JDK 1.4 and 5.0. You might need others for JDK 1.3." +msgstr "" +"このチュートリアルはHibernateを初めて使うユーザを想定していますが、 理解する" +"にはJavaとSQLについての知識が必要です。 これはMichael Gloeglの手によるチュー" +"トリアルを下敷きにしていますが、 ここでサードパーティライブラリと言っているの" +"は、JDK 1.4と5.0用のものです。 JDK 1.3を利用するのであれば他のライブラリが必" +"要かもしれません。" -#: index.docbook:24 -msgid "The source code for the tutorial is included in the distribution in the doc/reference/tutorial/ directory." -msgstr "チュートリアルのソースコードはHibernateディストリビューションの doc/reference/tutorial/ にあります。" +#. Tag: para +#: tutorial.xml:24 +#, no-c-format +msgid "" +"The source code for the tutorial is included in the distribution in the " +"doc/reference/tutorial/ directory." +msgstr "" +"チュートリアルのソースコードはHibernateディストリビューションの doc/" +"reference/tutorial/ にあります。" -#: index.docbook:32 +#. Tag: title +#: tutorial.xml:32 +#, no-c-format msgid "Part 1 - The first Hibernate Application" msgstr "パート1 - 初めてのHibernateアプリケーション" -#: index.docbook:34 -msgid "First, we'll create a simple console-based Hibernate application. We use an Java database (HSQL DB), so we do not have to install any database server." -msgstr "最初にコンソールベースの簡単なHibernateアプリケーションを作成します。 Javaデータベース(HSQL DB)を利用するので、 データベースサーバをインストールする必要はありません。" - -#: index.docbook:39 -msgid "Let's assume we need a small database application that can store events we want to attend, and information about the hosts of these events." -msgstr "仮に小さなデータベースアプリケーションが必要だとしましょう。 そのアプリケーションには出席したいイベントと、 そのイベントのホストについての情報を格納するものとします。" - -#: index.docbook:44 -msgid "The first thing we do, is set up our development directory and put all the Java libraries we need into it. Download the Hibernate distribution from the Hibernate website. Extract the package and place all required libraries found in /lib into into the /lib directory of your new development working directory. It should look like this:" -msgstr "まず最初にすることは開発用のディレクトリをセットアップして、 必要となるすべてのJavaライブラリを配置することです。 HibernateウェブサイトからHibernateディストリビューションをダウンロードしてください。 ファイルを解凍して /lib にある必要なライブラリのすべてを、 新しい開発用ディレクトリの /lib ディレクトリに配置してください。 このようになっているはずです:" - -#: index.docbook:52 +#. Tag: para +#: tutorial.xml:34 +#, no-c-format msgid "" - "" +"First, we'll create a simple console-based Hibernate application. We use an " +"Java database (HSQL DB), so we do not have to install any database server." msgstr "" - "" +"最初にコンソールベースの簡単なHibernateアプリケーションを作成します。 Java" +"データベース(HSQL DB)を利用するので、 データベースサーバをインストールする" +"必要はありません。" -#: index.docbook:54 -msgid "This is the minimum set of required libraries (note that we also copied hibernate3.jar, the main archive) for Hibernate at the time of writing. The Hibernate release you are using might require more or less libraries. See the README.txt file in the lib/ directory of the Hibernate distribution for more information about required and optional third-party libraries. (Actually, Log4j is not required but preferred by many developers.)" -msgstr "これが 本ドキュメント執筆時点での Hibernateの必要最低限のライブラリです (メインアーカイブのhibernate3.jarもコピーしていることに注意してください)。 Hibernateのバージョンによってはさらに必要なライブラリや、不要なライブラリがあるかもしれません。 Hibernateディストリビューションの lib/ ディレクトリにある README.txt ファイルを見てください。 必須またはオプションのサードパーティライブラリについての情報を載せています (実際Log4jは必須ではありませんが、多くの開発者が好んでいます)。" +#. Tag: para +#: tutorial.xml:39 +#, no-c-format +msgid "" +"Let's assume we need a small database application that can store events we " +"want to attend, and information about the hosts of these events." +msgstr "" +"仮に小さなデータベースアプリケーションが必要だとしましょう。 そのアプリケー" +"ションには出席したいイベントと、 そのイベントのホストについての情報を格納する" +"ものとします。" -#: index.docbook:63 -msgid "Next we create a class that represents the event we want to store in database." +#. Tag: para +#: tutorial.xml:44 +#, no-c-format +msgid "" +"The first thing we do, is set up our development directory and put all the " +"Java libraries we need into it. Download the Hibernate distribution from the " +"Hibernate website. Extract the package and place all required libraries " +"found in /lib into into the /lib " +"directory of your new development working directory. It should look like " +"this:" +msgstr "" +"まず最初にすることは開発用のディレクトリをセットアップして、 必要となるすべて" +"のJavaライブラリを配置することです。 HibernateウェブサイトからHibernateディス" +"トリビューションをダウンロードしてください。 ファイルを解凍して /" +"lib にある必要なライブラリのすべてを、 新しい開発用ディレクトリの " +"/lib ディレクトリに配置してください。 このようになっている" +"はずです:" + +#. Tag: programlisting +#: tutorial.xml:52 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: tutorial.xml:54 +#, no-c-format +msgid "" +"This is the minimum set of required libraries (note that we also copied " +"hibernate3.jar, the main archive) for Hibernate at the time of " +"writing. The Hibernate release you are using might require more " +"or less libraries. See the README.txt file in the " +"lib/ directory of the Hibernate distribution for more " +"information about required and optional third-party libraries. (Actually, " +"Log4j is not required but preferred by many developers.)" +msgstr "" +"これが 本ドキュメント執筆時点での Hibernateの必要最低限" +"のライブラリです (メインアーカイブのhibernate3.jarもコピーしていることに注意" +"してください)。 Hibernateのバージョンによってはさらに必要なライブラリや、不" +"要なライブラリがあるかもしれません。 Hibernateディストリビューションの " +"lib/ ディレクトリにある README.txt ファ" +"イルを見てください。 必須またはオプションのサードパーティライブラリについての" +"情報を載せています (実際Log4jは必須ではありませんが、多くの開発者が好んでい" +"ます)。" + +#. Tag: para +#: tutorial.xml:63 +#, no-c-format +msgid "" +"Next we create a class that represents the event we want to store in " +"database." msgstr "次にデータベースに格納するイベントを表すクラスを作成します。" -#: index.docbook:68 +#. Tag: title +#: tutorial.xml:68 +#, no-c-format msgid "The first class" msgstr "最初のクラス" -#: index.docbook:70 -msgid "Our first persistent class is a simple JavaBean class with some properties:" +#. Tag: para +#: tutorial.xml:70 +#, no-c-format +msgid "" +"Our first persistent class is a simple JavaBean class with some properties:" msgstr "最初の永続クラスは、プロパティをいくつか持つシンプルなJavaBeanです:" -#: index.docbook:74 +#. Tag: programlisting +#: tutorial.xml:74 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:76 -msgid "You can see that this class uses standard JavaBean naming conventions for property getter and setter methods, as well as private visibility for the fields. This is a recommended design - but not required. Hibernate can also access fields directly, the benefit of accessor methods is robustness for refactoring. The no-argument constructor is required to instantiate an object of this class through reflection." -msgstr "ご覧のとおり、このクラスはフィールドがprivateの可視性を持っているのと同時に、 JavaBean標準のゲッター、セッターメソッドの命名規約に従っています。 このような設計は推奨されていますが必須ではありません。 アクセサメソッドを設けるのはリファクタリングを考えた頑健性のためで、 Hibernateはフィールドに直接アクセスすることも可能です。 引数のないコンストラクタは、リフレクションでこのクラスのインスタンスを作成するために 必要です。" - -#: index.docbook:84 -msgid "The id property holds a unique identifier value for a particular event. All persistent entity classes (there are less important dependent classes as well) will need such an identifier property if we want to use the full feature set of Hibernate. In fact, most applications (esp. web applications) need to distinguish objects by identifier, so you should consider this a feature rather than a limitation. However, we usually don't manipulate the identity of an object, hence the setter method should be private. Only Hibernate will assign identifiers when an object is saved. You can see that Hibernate can access public, private, and protected accessor methods, as well as (public, private, protected) fields directly. The choice is up to you and you can match it to fit your application design." -msgstr "id プロパティは、ある特定のイベントに対するユニークな識別子の値を保持します。 Hibernateの完全な機能を使いたければ、すべての永続エンティティクラス (それほど重要ではない依存クラスというものもあります) にこのような識別子プロパティが必要になります。 事実上ほとんどのアプリケーション(特にwebアプリケーション)では、 識別子でオブジェクトを区別する必要があるため、これは制限というよりも特徴であると考えるべきです。 しかし通常オブジェクトのIDを操作するようなことはしません。 そのためセッターメソッドはprivateにするべきです。 Hibernateだけがオブジェクトがセーブされたときに識別子へ値を代入します。 Hibernateが(public, private, protected)フィールドに直接アクセスできるのと同様に、 public, private, protectedのアクセサメソッドにアクセスできるということがわかるでしょう。 選択はあなたに任されているので、あなたのアプリケーションの設計に合わせることができます。" - -#: index.docbook:96 -msgid "The no-argument constructor is a requirement for all persistent classes; Hibernate has to create objects for you, using Java Reflection. The constructor can be private, however, package visibility is required for runtime proxy generation and efficient data retrieval without bytecode instrumentation." -msgstr "引数のないコンストラクタはすべての永続クラスに必須です。 これはHibernateがJavaのリフレクションを使って、オブジェクトを作成しなければならないためです。 コンストラクタをprivateにすることは可能ですが、 実行時のプロキシ生成と、バイトコード操作なしの効率的なデータの抽出には、 package可視性が必要です。" - -#: index.docbook:103 -msgid "Place this Java source file in a directory called src in the development folder, and in its correct package. The directory should now look like this:" -msgstr "開発フォルダの src というディレクトリの適切なパッケージに、 このJavaソースファイルを配置してください。 この時点でディレクトリは以下のようになっているはずです:" - -#: index.docbook:108 +#. Tag: para +#: tutorial.xml:76 +#, no-c-format msgid "" - "\n" - "+src\n" - " +events\n" - " Event.java]]>" +"You can see that this class uses standard JavaBean naming conventions for " +"property getter and setter methods, as well as private visibility for the " +"fields. This is a recommended design - but not required. Hibernate can also " +"access fields directly, the benefit of accessor methods is robustness for " +"refactoring. The no-argument constructor is required to instantiate an " +"object of this class through reflection." msgstr "" - " \n" - "+src \n" - " +events \n" - " Event.java]]>" +"ご覧のとおり、このクラスはフィールドがprivateの可視性を持っているのと同時" +"に、 JavaBean標準のゲッター、セッターメソッドの命名規約に従っています。 この" +"ような設計は推奨されていますが必須ではありません。 アクセサメソッドを設けるの" +"はリファクタリングを考えた頑健性のためで、 Hibernateはフィールドに直接アクセ" +"スすることも可能です。 引数のないコンストラクタは、リフレクションでこのクラス" +"のインスタンスを作成するために 必要です。" -#: index.docbook:110 +#. Tag: para +#: tutorial.xml:84 +#, no-c-format +msgid "" +"The id property holds a unique identifier value for a " +"particular event. All persistent entity classes (there are less important " +"dependent classes as well) will need such an identifier property if we want " +"to use the full feature set of Hibernate. In fact, most applications (esp. " +"web applications) need to distinguish objects by identifier, so you should " +"consider this a feature rather than a limitation. However, we usually don't " +"manipulate the identity of an object, hence the setter method should be " +"private. Only Hibernate will assign identifiers when an object is saved. You " +"can see that Hibernate can access public, private, and protected accessor " +"methods, as well as (public, private, protected) fields directly. The choice " +"is up to you and you can match it to fit your application design." +msgstr "" +"id プロパティは、ある特定のイベントに対するユニークな識別" +"子の値を保持します。 Hibernateの完全な機能を使いたければ、すべての永続エン" +"ティティクラス (それほど重要ではない依存クラスというものもあります) にこの" +"ような識別子プロパティが必要になります。 事実上ほとんどのアプリケーション(特" +"にwebアプリケーション)では、 識別子でオブジェクトを区別する必要があるため、" +"これは制限というよりも特徴であると考えるべきです。 しかし通常オブジェクトのID" +"を操作するようなことはしません。 そのためセッターメソッドはprivateにするべき" +"です。 Hibernateだけがオブジェクトがセーブされたときに識別子へ値を代入しま" +"す。 Hibernateが(public, private, protected)フィールドに直接アクセスできる" +"のと同様に、 public, private, protectedのアクセサメソッドにアクセスできるとい" +"うことがわかるでしょう。 選択はあなたに任されているので、あなたのアプリケー" +"ションの設計に合わせることができます。" + +#. Tag: para +#: tutorial.xml:96 +#, no-c-format +msgid "" +"The no-argument constructor is a requirement for all persistent classes; " +"Hibernate has to create objects for you, using Java Reflection. The " +"constructor can be private, however, package visibility is required for " +"runtime proxy generation and efficient data retrieval without bytecode " +"instrumentation." +msgstr "" +"引数のないコンストラクタはすべての永続クラスに必須です。 これはHibernateが" +"Javaのリフレクションを使って、オブジェクトを作成しなければならないためです。 " +"コンストラクタをprivateにすることは可能ですが、 実行時のプロキシ生成と、バイ" +"トコード操作なしの効率的なデータの抽出には、 package可視性が必要です。" + +#. Tag: para +#: tutorial.xml:103 +#, no-c-format +msgid "" +"Place this Java source file in a directory called src in " +"the development folder, and in its correct package. The directory should now " +"look like this:" +msgstr "" +"開発フォルダの src というディレクトリの適切なパッケージ" +"に、 このJavaソースファイルを配置してください。 この時点でディレクトリは以下" +"のようになっているはずです:" + +#. Tag: programlisting +#: tutorial.xml:108 +#, no-c-format +msgid "" +"\n" +"+src\n" +" +events\n" +" Event.java]]>" +msgstr "" + +#. Tag: para +#: tutorial.xml:110 +#, no-c-format msgid "In the next step, we tell Hibernate about this persistent class." msgstr "次のステップでは、Hibernateにこの永続クラスの情報を教えます。" -#: index.docbook:117 +#. Tag: title +#: tutorial.xml:117 +#, no-c-format msgid "The mapping file" msgstr "マッピングファイル" -#: index.docbook:119 -msgid "Hibernate needs to know how to load and store objects of the persistent class. This is where the Hibernate mapping file comes into play. The mapping file tells Hibernate what table in the database it has to access, and what columns in that table it should use." -msgstr "Hibernateは、どのように永続クラスのオブジェクトをロードし格納すればよいかを知る必要があります。 ここでHibernateマッピングファイルが登場します。 マッピングファイルは、データベース内のどのテーブルにアクセスしなければならないか、 そのテーブルのどのカラムを使うべきかを、Hibernateに教えます。" +#. Tag: para +#: tutorial.xml:119 +#, no-c-format +msgid "" +"Hibernate needs to know how to load and store objects of the persistent " +"class. This is where the Hibernate mapping file comes into play. The mapping " +"file tells Hibernate what table in the database it has to access, and what " +"columns in that table it should use." +msgstr "" +"Hibernateは、どのように永続クラスのオブジェクトをロードし格納すればよいかを知" +"る必要があります。 ここでHibernateマッピングファイルが登場します。 マッピング" +"ファイルは、データベース内のどのテーブルにアクセスしなければならないか、 その" +"テーブルのどのカラムを使うべきかを、Hibernateに教えます。" -#: index.docbook:126 +#. Tag: para +#: tutorial.xml:126 +#, no-c-format msgid "The basic structure of a mapping file looks like this:" msgstr "マッピングファイルの基本的な構造はこのようになります:" -#: index.docbook:130 +#. Tag: programlisting +#: tutorial.xml:130 +#, no-c-format msgid "" - "\n" - "\n" - "\n" - "\n" - "[...]\n" - "]]>" +"\n" +"\n" +"\n" +"\n" +"[...]\n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - "[...] \n" - "]]>" -#: index.docbook:132 -msgid "Note that the Hibernate DTD is very sophisticated. You can use it for auto-completion of XML mapping elements and attributes in your editor or IDE. You also should open up the DTD file in your text editor - it's the easiest way to get an overview of all elements and attributes and to see the defaults, as well as some comments. Note that Hibernate will not load the DTD file from the web, but first look it up from the classpath of the application. The DTD file is included in hibernate3.jar as well as in the src/ directory of the Hibernate distribution." -msgstr "Hibernate DTDが非常に洗練されていることに注目してください。 このDTDは、エディタやIDEでのXMLマッピング要素と属性のオートコンプリーション機能に利用できます。 またDTDファイルをテキストエディタで開けてみてください。 というのも、すべての要素と属性を概観し、 コメントやデフォルトの値を見るには一番簡単な方法だからです。 Hibernateは、webからDTDファイルをロードせずに、 まずアプリケーションのクラスパスからこれを探し出そうとすることに注意してください。 DTDファイルはHibernateディストリビューションの src/ ディレクトリと同様、hibernate3.jar にも含まれています。" - -#: index.docbook:143 -msgid "We will omit the DTD declaration in future examples to shorten the code. It is of course not optional." -msgstr "以降の例ではコードを短くするためにDTD宣言を省略します。 当然ですがこれはオプションではありません。" - -#: index.docbook:148 -msgid "Between the two hibernate-mapping tags, include a class element. All persistent entity classes (again, there might be dependent classes later on, which are not first-class entities) need such a mapping, to a table in the SQL database:" -msgstr "2つの hibernate-mapping タグの間に class 要素を含めてください。 すべての永続エンティティクラス(念を押しますが、 ファーストクラスのエンティティではない依存クラスというものが後ほど登場します) はSQLデータベース内のテーブルへのこのようなマッピングを必要とします。" - -#: index.docbook:155 +#. Tag: para +#: tutorial.xml:132 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - "\n" - " \n" - "\n" - "]]>" +"Note that the Hibernate DTD is very sophisticated. You can use it for auto-" +"completion of XML mapping elements and attributes in your editor or IDE. You " +"also should open up the DTD file in your text editor - it's the easiest way " +"to get an overview of all elements and attributes and to see the defaults, " +"as well as some comments. Note that Hibernate will not load the DTD file " +"from the web, but first look it up from the classpath of the application. " +"The DTD file is included in hibernate3.jar as well as in " +"the src/ directory of the Hibernate distribution." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"Hibernate DTDが非常に洗練されていることに注目してください。 このDTDは、エディ" +"タやIDEでのXMLマッピング要素と属性のオートコンプリーション機能に利用できま" +"す。 またDTDファイルをテキストエディタで開けてみてください。 というのも、すべ" +"ての要素と属性を概観し、 コメントやデフォルトの値を見るには一番簡単な方法だか" +"らです。 Hibernateは、webからDTDファイルをロードせずに、 まずアプリケーション" +"のクラスパスからこれを探し出そうとすることに注意してください。 DTDファイルは" +"Hibernateディストリビューションの src/ ディレクトリと同" +"様、hibernate3.jar にも含まれています。" -#: index.docbook:157 -msgid "So far we told Hibernate how to persist and load object of class Event to the table EVENTS, each instance represented by a row in that table. Now we continue with a mapping of the unique identifier property to the tables primary key. In addition, as we don't want to care about handling this identifier, we configure Hibernate's identifier generation strategy for a surrogate primary key column:" -msgstr "これまで私たちは、Event クラスのオブジェクトを EVENTS テーブルに対して、どのように永続化したりロードしたりするのかを Hibernateに教えてきました。そして個々のインスタンスはテーブルの行として表現されます。 それでは引き続きテーブルの主キーに対するユニークな識別子プロパティをマッピングしていきます。 さらに、この識別子の扱いに気を使いたくなかったのと同様に、 代理の主キーカラムに対するHibernateの識別子生成戦略を設定します。" - -#: index.docbook:165 +#. Tag: para +#: tutorial.xml:143 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"We will omit the DTD declaration in future examples to shorten the code. It " +"is of course not optional." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"以降の例ではコードを短くするためにDTD宣言を省略します。 当然ですがこれはオプ" +"ションではありません。" -#: index.docbook:167 -msgid "The id element is the declaration of the identifer property, name=\"id\" declares the name of the Java property - Hibernate will use the getter and setter methods to access the property. The column attribute tells Hibernate which column of the EVENTS table we use for this primary key. The nested generator element specifies the identifier generation strategy, in this case we used native, which picks the best strategy depending on the configured database (dialect). Hibernate supports database generated, globally unique, as well as application assigned identifiers (or any strategy you have written an extension for)." -msgstr "id 要素は識別子プロパティの宣言であり、 name=\"id\" でJavaプロパティの名前を宣言します。 Hibernateはこのプロパティへアクセスするためにゲッター、セッターメソッドを使います。 カラム属性では EVENTS テーブルのどのカラムを主キーとして使うのかを Hibernateに教えます。 入れ子になっている generator 要素は、識別子を生成する時の戦略を指定します。 (この例では native を用いました)。 この要素は、設定したデータベース(dialect)に対する最良な識別子生成戦略を選定するものです。 Hibernateは、アプリケーションで値を割り当てる戦略(もしくは独自に拡張した戦略)と同様に、 グローバルにユニークな値をデータベースに生成させる戦略もサポートしています。" - -#: index.docbook:180 -msgid "Finally we include declarations for the persistent properties of the class in the mapping file. By default, no properties of the class are considered persistent:" -msgstr "最後にクラスの永続プロパティの宣言をマッピングファイルに含めます。 デフォルトでは、クラスのプロパティは永続と見なされません:" - -#: index.docbook:186 +#. Tag: para +#: tutorial.xml:148 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"Between the two hibernate-mapping tags, include a " +"class element. All persistent entity classes (again, " +"there might be dependent classes later on, which are not first-class " +"entities) need such a mapping, to a table in the SQL database:" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"2つの hibernate-mapping タグの間に class 要素を含めてください。 すべての永続エンティティクラス(念を押します" +"が、 ファーストクラスのエンティティではない依存クラスというものが後ほど登場し" +"ます) はSQLデータベース内のテーブルへのこのようなマッピングを必要とします。" -#: index.docbook:188 -msgid "Just as with the id element, the name attribute of the property element tells Hibernate which getter and setter methods to use. So, in this case, Hibernate will look for getDate()/setDate(), as well as getTitle()/setTitle()." -msgstr "id 要素の場合と同様に、 property 要素の name 属性で、どのゲッターとセッターメソッドを使うべきかをHibernateに教えます。 この例では、Hibernateは getDate()/setDate()getTitle()/setTitle() を 探します。" - -#: index.docbook:195 -msgid "Why does the date property mapping include the column attribute, but the title doesn't? Without the column attribute Hibernate by default uses the property name as the column name. This works fine for title. However, date is a reserved keyword in most database, so we better map it to a different name." -msgstr "なぜ date プロパティのマッピングには column 属性があり、title プロパティにはないのでしょうか? column 属性がなければ、Hibernateはプロパティ名をカラム名として使います。 これは title では上手く行きます。 しかし date はほとんどのデータベースで予約語なので、 違う名前でマッピングした方がよいのです。" - -#: index.docbook:204 -msgid "The next interesting thing is that the title mapping also lacks a type attribute. The types we declare and use in the mapping files are not, as you might expect, Java data types. They are also not SQL database types. These types are so called Hibernate mapping types, converters which can translate from Java to SQL data types and vice versa. Again, Hibernate will try to determine the correct conversion and mapping type itself if the type attribute is not present in the mapping. In some cases this automatic detection (using Reflection on the Java class) might not have the default you expect or need. This is the case with the date property. Hibernate can't know if the property (which is of java.util.Date) should map to a SQL date, timestamp, or time column. We preserve full date and time information by mapping the property with a timestamp converter." -msgstr "次に興味深いのは title マッピングが type 属性をも欠いている点です。 マッピングファイルで宣言して使うtypeは、おわかりかもしれませんがJavaのデータ型ではありません。 SQLデータベースの型でもありません。 これは Hibernateマッピング型 と呼ばれる、 JavaからSQLデータの型へまたはSQLからJavaデータ型へ翻訳するコンバータです。 繰り返しになりますが、Hibernateは type 属性がマッピングファイル内になければ、 正しいコンバージョンとマッピング型を自分で解決しようとします。 (Javaクラスのリフレクションを使った)この自動検知は、 場合によってはあなたが期待または必要とするデフォルト値にならないかもしれません。 date プロパティの場合がそうでした。 Hibernateはこの( java.util.Date の)プロパティを SQLの date , timestamp , time のうち、どのカラムにマッピングするべきなのかわかりません。 timestamp コンバータでプロパティをマッピングすることにより、完全な日時を保存します。" - -#: index.docbook:220 -msgid "This mapping file should be saved as Event.hbm.xml, right in the directory next to the Event Java class source file. The naming of mapping files can be arbitrary, however the hbm.xml suffix is a convention in the Hibernate developer community. The directory structure should now look like this:" -msgstr "このマッピングファイルは、Event.hbm.xml として Event Javaクラスソースファイルのすぐ隣にセーブするべきです。 マッピングファイルの命名方法は任意ですが、hbm.xml サフィックスがHibernateの開発者のコミュニティ内での習慣となっています。 現在ディレクトリ構造はこのようになっているはずです:" - -#: index.docbook:228 +#. Tag: programlisting +#: tutorial.xml:155 +#, no-c-format msgid "" - "\n" - "+src\n" - " +events\n" - " Event.java\n" - " Event.hbm.xml]]>" +"\n" +"\n" +" \n" +"\n" +" \n" +"\n" +"]]>" msgstr "" - " \n" - "+src \n" - " +events \n" - " Event.java \n" - " Event.hbm.xml]]>" -#: index.docbook:230 +#. Tag: para +#: tutorial.xml:157 +#, no-c-format +msgid "" +"So far we told Hibernate how to persist and load object of class " +"Event to the table EVENTS, each " +"instance represented by a row in that table. Now we continue with a mapping " +"of the unique identifier property to the tables primary key. In addition, as " +"we don't want to care about handling this identifier, we configure " +"Hibernate's identifier generation strategy for a surrogate primary key " +"column:" +msgstr "" +"これまで私たちは、Event クラスのオブジェクトを " +"EVENTS テーブルに対して、どのように永続化したりロードした" +"りするのかを Hibernateに教えてきました。そして個々のインスタンスはテーブルの" +"行として表現されます。 それでは引き続きテーブルの主キーに対するユニークな識別" +"子プロパティをマッピングしていきます。 さらに、この識別子の扱いに気を使いたく" +"なかったのと同様に、 代理の主キーカラムに対するHibernateの識別子生成戦略を設" +"定します。" + +#. Tag: programlisting +#: tutorial.xml:165 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: tutorial.xml:167 +#, no-c-format +msgid "" +"The id element is the declaration of the identifer " +"property, name=\"id\" declares the name of the Java " +"property - Hibernate will use the getter and setter methods to access the " +"property. The column attribute tells Hibernate which column of the " +"EVENTS table we use for this primary key. The nested " +"generator element specifies the identifier generation " +"strategy, in this case we used native, which picks the " +"best strategy depending on the configured database (dialect). Hibernate " +"supports database generated, globally unique, as well as application " +"assigned identifiers (or any strategy you have written an extension for)." +msgstr "" +"id 要素は識別子プロパティの宣言であり、 name=\"id" +"\" でJavaプロパティの名前を宣言します。 Hibernateはこのプロパティへ" +"アクセスするためにゲッター、セッターメソッドを使います。 カラム属性では " +"EVENTS テーブルのどのカラムを主キーとして使うのかを " +"Hibernateに教えます。 入れ子になっている generator 要素" +"は、識別子を生成する時の戦略を指定します。 (この例では native を用いました)。 この要素は、設定したデータベース(dialect)に対する" +"最良な識別子生成戦略を選定するものです。 Hibernateは、アプリケーションで値を" +"割り当てる戦略(もしくは独自に拡張した戦略)と同様に、 グローバルにユニークな" +"値をデータベースに生成させる戦略もサポートしています。" + +#. Tag: para +#: tutorial.xml:180 +#, no-c-format +msgid "" +"Finally we include declarations for the persistent properties of the class " +"in the mapping file. By default, no properties of the class are considered " +"persistent:" +msgstr "" +"最後にクラスの永続プロパティの宣言をマッピングファイルに含めます。 デフォルト" +"では、クラスのプロパティは永続と見なされません:" + +#. Tag: programlisting +#: tutorial.xml:186 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: tutorial.xml:188 +#, no-c-format +msgid "" +"Just as with the id element, the name " +"attribute of the property element tells Hibernate which " +"getter and setter methods to use. So, in this case, Hibernate will look for " +"getDate()/setDate(), as well as getTitle()/" +"setTitle()." +msgstr "" +"id 要素の場合と同様に、 property 要素" +"の name 属性で、どのゲッターとセッターメソッドを使うべきか" +"をHibernateに教えます。 この例では、Hibernateは getDate()/setDate()" +"getTitle()/setTitle() を 探します。" + +#. Tag: para +#: tutorial.xml:195 +#, no-c-format +msgid "" +"Why does the date property mapping include the " +"column attribute, but the title " +"doesn't? Without the column attribute Hibernate by " +"default uses the property name as the column name. This works fine for " +"title. However, date is a reserved " +"keyword in most database, so we better map it to a different name." +msgstr "" +"なぜ date プロパティのマッピングには column 属性があり、title プロパティにはないのでしょう" +"か? column 属性がなければ、Hibernateはプロパティ名をカラ" +"ム名として使います。 これは title では上手く行きます。 し" +"かし date はほとんどのデータベースで予約語なので、 違う名" +"前でマッピングした方がよいのです。" + +#. Tag: para +#: tutorial.xml:204 +#, no-c-format +msgid "" +"The next interesting thing is that the title mapping also " +"lacks a type attribute. The types we declare and use in " +"the mapping files are not, as you might expect, Java data types. They are " +"also not SQL database types. These types are so called Hibernate " +"mapping types, converters which can translate from Java to SQL " +"data types and vice versa. Again, Hibernate will try to determine the " +"correct conversion and mapping type itself if the type " +"attribute is not present in the mapping. In some cases this automatic " +"detection (using Reflection on the Java class) might not have the default " +"you expect or need. This is the case with the date " +"property. Hibernate can't know if the property (which is of java." +"util.Date) should map to a SQL date, " +"timestamp, or time column. We preserve " +"full date and time information by mapping the property with a " +"timestamp converter." +msgstr "" +"次に興味深いのは title マッピングが type 属性をも欠いている点です。 マッピングファイルで宣言して使うtypeは、" +"おわかりかもしれませんがJavaのデータ型ではありません。 SQLデータベースの型で" +"もありません。 これは Hibernateマッピング型 と呼ばれ" +"る、 JavaからSQLデータの型へまたはSQLからJavaデータ型へ翻訳するコンバータで" +"す。 繰り返しになりますが、Hibernateは type 属性がマッピン" +"グファイル内になければ、 正しいコンバージョンとマッピング型を自分で解決しよう" +"とします。 (Javaクラスのリフレクションを使った)この自動検知は、 場合によっ" +"てはあなたが期待または必要とするデフォルト値にならないかもしれません。 " +"date プロパティの場合がそうでした。 Hibernateはこの" +"( java.util.Date の)プロパティを SQLの date , timestamp , time のうち、ど" +"のカラムにマッピングするべきなのかわかりません。 timestamp コンバータでプロパティをマッピングすることにより、完全な日時を保存し" +"ます。" + +#. Tag: para +#: tutorial.xml:220 +#, no-c-format +msgid "" +"This mapping file should be saved as Event.hbm.xml, right " +"in the directory next to the Event Java class source " +"file. The naming of mapping files can be arbitrary, however the hbm." +"xml suffix is a convention in the Hibernate developer community. " +"The directory structure should now look like this:" +msgstr "" +"このマッピングファイルは、Event.hbm.xml として " +"Event Javaクラスソースファイルのすぐ隣にセーブするべきで" +"す。 マッピングファイルの命名方法は任意ですが、hbm.xml サ" +"フィックスがHibernateの開発者のコミュニティ内での習慣となっています。 現在" +"ディレクトリ構造はこのようになっているはずです:" + +#. Tag: programlisting +#: tutorial.xml:228 +#, no-c-format +msgid "" +"\n" +"+src\n" +" +events\n" +" Event.java\n" +" Event.hbm.xml]]>" +msgstr "" + +#. Tag: para +#: tutorial.xml:230 +#, no-c-format msgid "We continue with the main configuration of Hibernate." msgstr "Hibernateの主要な設定を続けます。" -#: index.docbook:237 +#. Tag: title +#: tutorial.xml:237 +#, no-c-format msgid "Hibernate configuration" msgstr "Hibernateの設定" -#: index.docbook:239 -msgid "We now have a persistent class and its mapping file in place. It is time to configure Hibernate. Before we do this, we will need a database. HSQL DB, a java-based SQL DBMS, can be downloaded from the HSQL DB website(http://hsqldb.org/). Actually, you only need the hsqldb.jar from this download. Place this file in the lib/ directory of the development folder." -msgstr "ここまでで永続クラスとマッピングファイルが揃いました。これからHibernateの設定を行いますが、 その前にデータベースが必要です。 HSQL DBはJavaベースのインメモリSQL DBMSであり、HSQL DBウェブサイトからダウンロードできます。 実際にはダウンロードした中の hsqldb.jar だけが必要です。 このファイルを開発フォルダの lib/ ディレクトリに配置してください。" - -#: index.docbook:247 -msgid "Create a directory called data in the root of the development directory - this is where HSQL DB will store its data files. Now start the database by running java -classpath ../lib/hsqldb.jar org.hsqldb.Server in this data directory. You can see it start up and bind to a TCP/IP socket, this is where our application will connect later. If you want to start with a fresh database during this tutorial, shutdown HSQL DB (press CTRL + C in the window), delete all files in the data/ directory, and start HSQL DB again." -msgstr "data というディレクトリを開発ディレクトリのルートに作成してください。 HSQL DBはここにデータファイルを格納します。 このデータディレクトリにおいて java -classpath lib/hsqldb.jar org.hsqldb.Server を実行し、 データベースを起動させてください。 動作の開始と、TCP/IPソケットのバインドが確認できます。 後ほど作成するアプリケーションはここに接続します。 もしこのチュートリアル中にデータベースを初期化したければ、 HSQL DBをシャットダウンして(作業ウィンドウで CTRL + C を押します) data/ ディレクトリ内のファイルを全て消去した後、 HSQL DBを再起動します。" - -#: index.docbook:257 -msgid "Hibernate is the layer in your application which connects to this database, so it needs connection information. The connections are made through a JDBC connection pool, which we also have to configure. The Hibernate distribution contains several open source JDBC connection pooling tools, but will use the Hibernate built-in connection pool for this tutorial. Note that you have to copy the required library into your classpath and use different connection pooling settings if you want to use a production-quality third party JDBC pooling software." -msgstr "Hibernateはアプリケーションのデータベースに接続する層なので、 コネクションの情報が必要になります。 コネクションはJDBCコネクションプールを通じて行われますが、これも設定する必要があります。 HibernateディストリビューションにはいくつかのオープンソースのJDBCコネクションプールツールが含まれていますが、 このチュートリアルではHibernateに組み込まれたコネクションプールを使います。 もし製品レベルの品質のサードパーティJDBCコネクションプールソフトウェアを使いたければ、 クラスパスに必要なライブラリをコピーして、異なるコネクションプールを設定しなければ ならないことに注意してください。" - -#: index.docbook:267 -msgid "For Hibernate's configuration, we can use a simple hibernate.properties file, a slightly more sophisticated hibernate.cfg.xml file, or even complete programmatic setup. Most users prefer the XML configuration file:" -msgstr "Hibernateの設定では、単純な hibernate.properties ファイル、 それより少し洗練されている hibernate.cfg.xml ファイル、 または完全にプログラム上でセットアップする方法が利用できます。 ほとんどのユーザが好むのはXML設定ファイルです:" - -#: index.docbook:273 +#. Tag: para +#: tutorial.xml:239 +#, no-c-format msgid "" - "\n" - "\n" - "\n" - "\n" - "\n" - " \n" - "\n" - " \n" - " org.hsqldb.jdbcDriver\n" - " jdbc:hsqldb:hsql://localhost\n" - " sa\n" - " \n" - "\n" - " \n" - " 1\n" - "\n" - " \n" - " org.hibernate.dialect.HSQLDialect\n" - "\n" - " \n" - " thread\n" - "\n" - " \n" - " org.hibernate.cache.NoCacheProvider\n" - "\n" - " \n" - " true\n" - "\n" - " \n" - " create\n" - "\n" - " \n" - "\n" - " \n" - "\n" - "]]>" +"We now have a persistent class and its mapping file in place. It is time to " +"configure Hibernate. Before we do this, we will need a database. HSQL DB, a " +"java-based SQL DBMS, can be downloaded from the HSQL DB website(http://" +"hsqldb.org/). Actually, you only need the hsqldb.jar from " +"this download. Place this file in the lib/ directory of " +"the development folder." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " org.hsqldb.jdbcDriver \n" - " jdbc:hsqldb:hsql://localhost \n" - " sa \n" - " \n" - " \n" - " \n" - " 1 \n" - " \n" - " \n" - " org.hibernate.dialect.HSQLDialect \n" - " \n" - " \n" - " thread \n" - " \n" - " \n" - " org.hibernate.cache.NoCacheProvider \n" - " \n" - " \n" - " true \n" - " \n" - " \n" - " create \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"ここまでで永続クラスとマッピングファイルが揃いました。これからHibernateの設定" +"を行いますが、 その前にデータベースが必要です。 HSQL DBはJavaベースのインメモ" +"リSQL DBMSであり、HSQL DBウェブサイトからダウンロードできます。 実際にはダウ" +"ンロードした中の hsqldb.jar だけが必要です。 このファイル" +"を開発フォルダの lib/ ディレクトリに配置してください。" -#: index.docbook:275 -msgid "Note that this XML configuration uses a different DTD. We configure Hibernate's SessionFactory - a global factory responsible for a particular database. If you have several databases, use several <session-factory> configurations, usually in several configuration files (for easier startup)." -msgstr "このXMLの設定が異なるDTDを使うことに注意してください。 特定のデータベースを受け持つグローバルファクトリであるHibernateの SessionFactory を設定します。 もし複数のデータベースがある場合には、 (スタートアップを簡単にするため)通常いくつかの設定ファイル内で、 いくつかの <session-factory> を使う設定にしてください。" +#. Tag: para +#: tutorial.xml:247 +#, no-c-format +msgid "" +"Create a directory called data in the root of the " +"development directory - this is where HSQL DB will store its data files. Now " +"start the database by running java -classpath ../lib/hsqldb.jar org." +"hsqldb.Server in this data directory. You can see it start up and " +"bind to a TCP/IP socket, this is where our application will connect later. " +"If you want to start with a fresh database during this tutorial, shutdown " +"HSQL DB (press CTRL + C in the window), delete all files " +"in the data/ directory, and start HSQL DB again." +msgstr "" +"data というディレクトリを開発ディレクトリのルートに作成し" +"てください。 HSQL DBはここにデータファイルを格納します。 このデータディレクト" +"リにおいて java -classpath lib/hsqldb.jar org.hsqldb.Server を実行し、 データベースを起動させてください。 動作の開始と、TCP/IPソ" +"ケットのバインドが確認できます。 後ほど作成するアプリケーションはここに接続し" +"ます。 もしこのチュートリアル中にデータベースを初期化したければ、 HSQL DBを" +"シャットダウンして(作業ウィンドウで CTRL + C を押しま" +"す) data/ ディレクトリ内のファイルを全て消去した後、 " +"HSQL DBを再起動します。" -#: index.docbook:283 -msgid "The first four property elements contain the necessary configuration for the JDBC connection. The dialect property element specifies the particular SQL variant Hibernate generates. Hibernate's automatic session management for persistence contexts will come in handy as you will soon see. The hbm2ddl.auto option turns on automatic generation of database schemas - directly into the database. This can of course also be turned off (by removing the config option) or redirected to a file with the help of the SchemaExport Ant task. Finally, we add the mapping file(s) for persistent classes to the configuration." -msgstr "最初の4つの property 要素はJDBCコネクションに必要な設定を含んでいます。 dialectという名前の property 要素は、Hibernateが生成する特定のSQL方言を指定します。 永続的なコンテキストに対するHibernateのセッションの自動管理は、後の例ですぐにわかるように、役に立つことでしょう。 hbm2ddl.auto オプションはデータベーススキーマの自動生成をonにします。 これは直接データベースに対して生成されます。 当然(configオプションを削除して)offにしたり、 SchemaExport というAntタスクの助けを借りてファイルにリダイレクトしたりできます。 最後に永続クラスのためのマッピングファイルを設定に追加します。" +#. Tag: para +#: tutorial.xml:257 +#, no-c-format +msgid "" +"Hibernate is the layer in your application which connects to this database, " +"so it needs connection information. The connections are made through a JDBC " +"connection pool, which we also have to configure. The Hibernate distribution " +"contains several open source JDBC connection pooling tools, but will use the " +"Hibernate built-in connection pool for this tutorial. Note that you have to " +"copy the required library into your classpath and use different connection " +"pooling settings if you want to use a production-quality third party JDBC " +"pooling software." +msgstr "" +"Hibernateはアプリケーションのデータベースに接続する層なので、 コネクションの" +"情報が必要になります。 コネクションはJDBCコネクションプールを通じて行われます" +"が、これも設定する必要があります。 Hibernateディストリビューションにはいくつ" +"かのオープンソースのJDBCコネクションプールツールが含まれていますが、 この" +"チュートリアルではHibernateに組み込まれたコネクションプールを使います。 もし" +"製品レベルの品質のサードパーティJDBCコネクションプールソフトウェアを使いたけ" +"れば、 クラスパスに必要なライブラリをコピーして、異なるコネクションプールを設" +"定しなければ ならないことに注意してください。" -#: index.docbook:296 -msgid "Copy this file into the source directory, so it will end up in the root of the classpath. Hibernate automatically looks for a file called hibernate.cfg.xml in the root of the classpath, on startup." -msgstr "このファイルをソースディレクトリにコピーしてください。 するとこれはクラスパスのルートにあることになります。 Hibernateは、スタートアップ時にクラスパスのルートで hibernate.cfg.xml というファイルを自動的に探します。" +#. Tag: para +#: tutorial.xml:267 +#, no-c-format +msgid "" +"For Hibernate's configuration, we can use a simple hibernate." +"properties file, a slightly more sophisticated hibernate." +"cfg.xml file, or even complete programmatic setup. Most users " +"prefer the XML configuration file:" +msgstr "" +"Hibernateの設定では、単純な hibernate.properties ファイ" +"ル、 それより少し洗練されている hibernate.cfg.xml ファイ" +"ル、 または完全にプログラム上でセットアップする方法が利用できます。 ほとんど" +"のユーザが好むのはXML設定ファイルです:" -#: index.docbook:305 +#. Tag: programlisting +#: tutorial.xml:273 +#, no-c-format +msgid "" +"\n" +"\n" +"\n" +"\n" +"\n" +" \n" +"\n" +" \n" +" org.hsqldb.jdbcDriver\n" +" jdbc:hsqldb:hsql://localhost\n" +" sa\n" +" \n" +"\n" +" \n" +" 1\n" +"\n" +" \n" +" org.hibernate.dialect.HSQLDialect\n" +"\n" +" \n" +" thread\n" +"\n" +" \n" +" org.hibernate.cache." +"NoCacheProvider\n" +"\n" +" \n" +" true\n" +"\n" +" \n" +" create\n" +"\n" +" \n" +"\n" +" \n" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: tutorial.xml:275 +#, no-c-format +msgid "" +"Note that this XML configuration uses a different DTD. We configure " +"Hibernate's SessionFactory - a global factory responsible " +"for a particular database. If you have several databases, use several " +"<session-factory> configurations, usually in " +"several configuration files (for easier startup)." +msgstr "" +"このXMLの設定が異なるDTDを使うことに注意してください。 特定のデータベースを受" +"け持つグローバルファクトリであるHibernateの SessionFactory を設定します。 もし複数のデータベースがある場合には、 (スタートアッ" +"プを簡単にするため)通常いくつかの設定ファイル内で、 いくつかの <" +"session-factory> を使う設定にしてください。" + +#. Tag: para +#: tutorial.xml:283 +#, no-c-format +msgid "" +"The first four property elements contain the necessary " +"configuration for the JDBC connection. The dialect property element specifies the particular SQL variant Hibernate generates. " +"Hibernate's automatic session management for persistence contexts will come " +"in handy as you will soon see. The hbm2ddl.auto option " +"turns on automatic generation of database schemas - directly into the " +"database. This can of course also be turned off (by removing the config " +"option) or redirected to a file with the help of the SchemaExport Ant task. Finally, we add the mapping file(s) for persistent " +"classes to the configuration." +msgstr "" +"最初の4つの property 要素はJDBCコネクションに必要な設定を" +"含んでいます。 dialectという名前の property 要素は、" +"Hibernateが生成する特定のSQL方言を指定します。 永続的なコンテキストに対する" +"Hibernateのセッションの自動管理は、後の例ですぐにわかるように、役に立つことで" +"しょう。 hbm2ddl.auto オプションはデータベーススキーマの自" +"動生成をonにします。 これは直接データベースに対して生成されます。 当然" +"(configオプションを削除して)offにしたり、 SchemaExport " +"というAntタスクの助けを借りてファイルにリダイレクトしたりできます。 最後に永" +"続クラスのためのマッピングファイルを設定に追加します。" + +#. Tag: para +#: tutorial.xml:296 +#, no-c-format +msgid "" +"Copy this file into the source directory, so it will end up in the root of " +"the classpath. Hibernate automatically looks for a file called " +"hibernate.cfg.xml in the root of the classpath, on " +"startup." +msgstr "" +"このファイルをソースディレクトリにコピーしてください。 するとこれはクラスパス" +"のルートにあることになります。 Hibernateは、スタートアップ時にクラスパスの" +"ルートで hibernate.cfg.xml というファイルを自動的に探しま" +"す。" + +#. Tag: title +#: tutorial.xml:305 +#, no-c-format msgid "Building with Ant" msgstr "Antによるビルド" -#: index.docbook:307 -msgid "We'll now build the tutorial with Ant. You will need to have Ant installed - get it from the Ant download page. How to install Ant will not be covered here. Please refer to the Ant manual. After you have installed Ant, we can start to create the buildfile. It will be called build.xml and placed directly in the development directory." -msgstr "それではAntを使ってチュートリアルをビルドしましょう。 それにはAntがインストールされていなければなりません。 Antダウンロードページ からダウンロードしてください。 Antのインストール方法はここでは説明しませんので、 Antマニュアル を参照してください。 Antをインストールすれば、ビルドファイルの作成を開始できます。 このファイルは build.xml と呼ばれ、開発ディレクトリに直接配置します。" +#. Tag: para +#: tutorial.xml:307 +#, no-c-format +msgid "" +"We'll now build the tutorial with Ant. You will need to have Ant installed - " +"get it from the Ant " +"download page. How to install Ant will not be covered here. Please " +"refer to the Ant " +"manual. After you have installed Ant, we can start to create the " +"buildfile. It will be called build.xml and placed " +"directly in the development directory." +msgstr "" +"それではAntを使ってチュートリアルをビルドしましょう。 それにはAntがインストー" +"ルされていなければなりません。 Antダウンロードページ からダウンロードしてくださ" +"い。 Antのインストール方法はここでは説明しませんので、 Antマニュアル を参照してくださ" +"い。 Antをインストールすれば、ビルドファイルの作成を開始できます。 このファイ" +"ルは build.xml と呼ばれ、開発ディレクトリに直接配置しま" +"す。" -#: index.docbook:316 +#. Tag: para +#: tutorial.xml:316 +#, no-c-format msgid "A basic build file looks like this:" msgstr "基本的なビルドファイルはこのようになります:" -#: index.docbook:320 +#. Tag: programlisting +#: tutorial.xml:320 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"\n" +"\n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:322 -msgid "This will tell Ant to add all files in the lib directory ending with .jar to the classpath used for compilation. It will also copy all non-Java source files to the target directory, e.g. configuration and Hibernate mapping files. If you now run Ant, you should get this output:" -msgstr "これは .jar で終わるlibディレクトリのすべてのファイルを、 コンパイルに使用するクラスパスに追加することをAntに教えます。 また、Javaソースファイルでないすべてのファイルをターゲットディレクトリにコピーするということでもあります。 例えば設定ファイルやHibernateマッピングファイルなどです。 今Antを実行すると、このような出力があるはずです:" - -#: index.docbook:329 +#. Tag: para +#: tutorial.xml:322 +#, no-c-format msgid "" - "ant\n" - "Buildfile: build.xml\n" - "\n" - "copy-resources:\n" - " [copy] Copying 2 files to C:\\hibernateTutorial\\bin\n" - "\n" - "compile:\n" - " [javac] Compiling 1 source file to C:\\hibernateTutorial\\bin\n" - "\n" - "BUILD SUCCESSFUL\n" - "Total time: 1 second ]]>" +"This will tell Ant to add all files in the lib directory ending with " +".jar to the classpath used for compilation. It will also " +"copy all non-Java source files to the target directory, e.g. configuration " +"and Hibernate mapping files. If you now run Ant, you should get this output:" msgstr "" - "ant \n" - "Buildfile: build.xml \n" - " \n" - "copy-resources: \n" - " [copy] Copying 2 files to C:¥hibernateTutorial¥bin \n" - " \n" - "compile: \n" - " [javac] Compiling 1 source file to C:¥hibernateTutorial¥bin \n" - " \n" - "BUILD SUCCESSFUL \n" - "Total time: 1 second ]]>" +"これは .jar で終わるlibディレクトリのすべてのファイルを、 " +"コンパイルに使用するクラスパスに追加することをAntに教えます。 また、Javaソー" +"スファイルでないすべてのファイルをターゲットディレクトリにコピーするというこ" +"とでもあります。 例えば設定ファイルやHibernateマッピングファイルなどです。 今" +"Antを実行すると、このような出力があるはずです:" -#: index.docbook:334 +#. Tag: programlisting +#: tutorial.xml:329 +#, no-c-format +msgid "" +"ant\n" +"Buildfile: build.xml\n" +"\n" +"copy-resources:\n" +" [copy] Copying 2 files to C:\\hibernateTutorial\\bin\n" +"\n" +"compile:\n" +" [javac] Compiling 1 source file to C:\\hibernateTutorial\\bin\n" +"\n" +"BUILD SUCCESSFUL\n" +"Total time: 1 second ]]>" +msgstr "" + +#. Tag: title +#: tutorial.xml:334 +#, no-c-format msgid "Startup and helpers" msgstr "スタートアップとヘルパ" -#: index.docbook:336 -msgid "It's time to load and store some Event objects, but first we have to complete the setup with some infrastructure code. We have to startup Hibernate. This startup includes building a global SessionFactory object and to store it somewhere for easy access in application code. A SessionFactory can open up new Session's. A Session represents a single-threaded unit of work, the SessionFactory is a thread-safe global object, instantiated once." -msgstr "さて Event オブジェクトをロードしたり格納したりする準備ができました。 しかしまずはインフラストラクチャのコードを書いて、セットアップを完了する必要があります。 まずはHibernateをスタートアップしなければなりません。 このスタートアップには、グローバルの SessionFactory オブジェクトを生成して、 それをアプリケーションのコードでアクセスしやすい場所に格納することが含まれます。 SessionFactory は新しく Session をオープンすることができます。 Session はシングルスレッドの作業単位(Unit of Work)を表現します。 それに対しSessionFactory はスレッドセーフのグローバルオブジェクトであり、 一度だけインスタンス化されます。" - -#: index.docbook:346 -msgid "We'll create a HibernateUtil helper class which takes care of startup and makes accessing a SessionFactory convenient. Let's have a look at the implementation:" -msgstr "ここでスタートアップを行い、 便利に SessionFactory へアクセスする HibernateUtil ヘルパクラスを作成します。 実装を見てみましょう:" - -#: index.docbook:352 +#. Tag: para +#: tutorial.xml:336 +#, no-c-format msgid "" - "" +"It's time to load and store some Event objects, but first " +"we have to complete the setup with some infrastructure code. We have to " +"startup Hibernate. This startup includes building a global " +"SessionFactory object and to store it somewhere for easy " +"access in application code. A SessionFactory can open up " +"new Session's. A Session represents a " +"single-threaded unit of work, the SessionFactory is a " +"thread-safe global object, instantiated once." msgstr "" - "" +"さて Event オブジェクトをロードしたり格納したりする準備が" +"できました。 しかしまずはインフラストラクチャのコードを書いて、セットアップを" +"完了する必要があります。 まずはHibernateをスタートアップしなければなりませ" +"ん。 このスタートアップには、グローバルの SessionFactory " +"オブジェクトを生成して、 それをアプリケーションのコードでアクセスしやすい場所" +"に格納することが含まれます。 SessionFactory は新しく " +"Session をオープンすることができます。 Session はシングルスレッドの作業単位(Unit of Work)を表現します。 それに対し" +"SessionFactory はスレッドセーフのグローバルオブジェクトで" +"あり、 一度だけインスタンス化されます。" -#: index.docbook:354 -msgid "This class does not only produce the global SessionFactory in its static initializer (called once by the JVM when the class is loaded), but also hides the fact that it uses a static singleton. It might as well lookup the SessionFactory from JNDI in an application server." -msgstr "このクラスは静的初期化ブロック(クラスがロードされるときにJVMによって一度だけ呼ばれる) でグローバルの SessionFactory を生成するだけではなく、 静的シングルトンの使用を隠蔽します。 アプリケーションサーバーのJNDIから SessionFactory を ルックアップするのと同様です。" - -#: index.docbook:361 -msgid "If you give the SessionFactory a name in your configuration file, Hibernate will in fact try to bind it to JNDI after it has been built. To avoid this code completely you could also use JMX deployment and let the JMX-capable container instantiate and bind a HibernateService to JNDI. These advanced options are discussed in the Hibernate reference documentation." -msgstr "設定ファイル内で SessionFactory に名前を与えると、 Hibernateは SessionFactory 構築後にJNDIに対しバインドを行おうとします。 このコードを完全に排除するためには、 JMXデプロイメントを利用して JMXを利用できるコンテナをインスタンス化し、 HibernateService をJNDIへバインドすることもできます。 これらの高度なオプションは、Hibernateのリファレンスドキュメントで説明されています。" - -#: index.docbook:370 -msgid "Place HibernateUtil.java in the development source directory, in a package next to events:" -msgstr "HibernateUtil.java を開発ソースディレクトリにある events パッケージの 隣に配置してください。" - -#: index.docbook:375 +#. Tag: para +#: tutorial.xml:346 +#, no-c-format msgid "" - "\n" - "+src\n" - " +events\n" - " Event.java\n" - " Event.hbm.xml\n" - " +util\n" - " HibernateUtil.java\n" - " hibernate.cfg.xml\n" - "+data\n" - "build.xml]]>" +"We'll create a HibernateUtil helper class which takes " +"care of startup and makes accessing a SessionFactory " +"convenient. Let's have a look at the implementation:" msgstr "" - " \n" - "+src \n" - " +events \n" - " Event.java \n" - " Event.hbm.xml \n" - " +util \n" - " HibernateUtil.java \n" - " hibernate.cfg.xml \n" - "+data \n" - "build.xml]]>" +"ここでスタートアップを行い、 便利に SessionFactory へアク" +"セスする HibernateUtil ヘルパクラスを作成します。 実装を見" +"てみましょう:" -#: index.docbook:377 -msgid "This should again compile without problems. We finally need to configure a logging system - Hibernate uses commons logging and leaves you the choice between Log4j and JDK 1.4 logging. Most developers prefer Log4j: copy log4j.properties from the Hibernate distribution (it's in the etc/ directory) to your src directory, next to hibernate.cfg.xml. Have a look at the example configuration and change the settings if you like to have more verbose output. By default, only Hibernate startup message are shown on stdout." -msgstr "これは問題なく再コンパイルできるはずです。 最後にロギングシステムを設定する必要があります。 Hibernateはcommons loggingを使うため、Log4jとJDK 1.4 loggingの選択をする必要がありません。 ほとんどの開発者が好むのはLog4jです。 Hibernateディストリビューション(のetc/ ディレクトリ)から log4j.properties をあなたの src ディレクトリ内の hibernate.cfg.xml の隣にコピーしてください。 設定例を見て、冗長な出力がよければ設定を変更してください。 デフォルトではHibernateのスタートアップメッセージだけが標準出力に表示されます。" +#. Tag: programlisting +#: tutorial.xml:352 +#, no-c-format +msgid "" +"" +msgstr "" -#: index.docbook:387 -msgid "The tutorial infrastructure is complete - and we are ready to do some real work with Hibernate." -msgstr "チュートリアルのインフラは完全です。 Hibernateを使って実際の作業をする準備が整いました。" +#. Tag: para +#: tutorial.xml:354 +#, no-c-format +msgid "" +"This class does not only produce the global SessionFactory in its static initializer (called once by the JVM when the class is " +"loaded), but also hides the fact that it uses a static singleton. It might " +"as well lookup the SessionFactory from JNDI in an " +"application server." +msgstr "" +"このクラスは静的初期化ブロック(クラスがロードされるときにJVMによって一度だけ" +"呼ばれる) でグローバルの SessionFactory を生成するだけで" +"はなく、 静的シングルトンの使用を隠蔽します。 アプリケーションサーバーのJNDI" +"から SessionFactory を ルックアップするのと同様です。" -#: index.docbook:395 +#. Tag: para +#: tutorial.xml:361 +#, no-c-format +msgid "" +"If you give the SessionFactory a name in your " +"configuration file, Hibernate will in fact try to bind it to JNDI after it " +"has been built. To avoid this code completely you could also use JMX " +"deployment and let the JMX-capable container instantiate and bind a " +"HibernateService to JNDI. These advanced options are " +"discussed in the Hibernate reference documentation." +msgstr "" +"設定ファイル内で SessionFactory に名前を与えると、 " +"Hibernateは SessionFactory 構築後にJNDIに対しバインドを行" +"おうとします。 このコードを完全に排除するためには、 JMXデプロイメントを利用し" +"て JMXを利用できるコンテナをインスタンス化し、 HibernateService をJNDIへバインドすることもできます。 これらの高度なオプションは、" +"Hibernateのリファレンスドキュメントで説明されています。" + +#. Tag: para +#: tutorial.xml:370 +#, no-c-format +msgid "" +"Place HibernateUtil.java in the development source " +"directory, in a package next to events:" +msgstr "" +"HibernateUtil.java を開発ソースディレクトリにある " +"events パッケージの 隣に配置してください。" + +#. Tag: programlisting +#: tutorial.xml:375 +#, no-c-format +msgid "" +"\n" +"+src\n" +" +events\n" +" Event.java\n" +" Event.hbm.xml\n" +" +util\n" +" HibernateUtil.java\n" +" hibernate.cfg.xml\n" +"+data\n" +"build.xml]]>" +msgstr "" + +#. Tag: para +#: tutorial.xml:377 +#, no-c-format +msgid "" +"This should again compile without problems. We finally need to configure a " +"logging system - Hibernate uses commons logging and leaves you the choice " +"between Log4j and JDK 1.4 logging. Most developers prefer Log4j: copy " +"log4j.properties from the Hibernate distribution (it's in " +"the etc/ directory) to your src " +"directory, next to hibernate.cfg.xml. Have a look at the " +"example configuration and change the settings if you like to have more " +"verbose output. By default, only Hibernate startup message are shown on " +"stdout." +msgstr "" +"これは問題なく再コンパイルできるはずです。 最後にロギングシステムを設定する必" +"要があります。 Hibernateはcommons loggingを使うため、Log4jとJDK 1.4 loggingの" +"選択をする必要がありません。 ほとんどの開発者が好むのはLog4jです。 Hibernate" +"ディストリビューション(のetc/ ディレクトリ)から " +"log4j.properties をあなたの src ディレ" +"クトリ内の hibernate.cfg.xml の隣にコピーしてください。 設" +"定例を見て、冗長な出力がよければ設定を変更してください。 デフォルトでは" +"Hibernateのスタートアップメッセージだけが標準出力に表示されます。" + +#. Tag: para +#: tutorial.xml:387 +#, no-c-format +msgid "" +"The tutorial infrastructure is complete - and we are ready to do some real " +"work with Hibernate." +msgstr "" +"チュートリアルのインフラは完全です。 Hibernateを使って実際の作業をする準備が" +"整いました。" + +#. Tag: title +#: tutorial.xml:395 +#, no-c-format msgid "Loading and storing objects" msgstr "オブジェクトのロードと格納" -#: index.docbook:397 -msgid "Finally, we can use Hibernate to load and store objects. We write an EventManager class with a main() method:" -msgstr "ついにオブジェクトのロードと格納にHibernateを使うことができます。 main() メソッドを持つ EventManager クラスを書きます:" - -#: index.docbook:402 +#. Tag: para +#: tutorial.xml:397 +#, no-c-format msgid "" - "" +"Finally, we can use Hibernate to load and store objects. We write an " +"EventManager class with a main() " +"method:" msgstr "" - "" +"ついにオブジェクトのロードと格納にHibernateを使うことができます。 " +"main() メソッドを持つ EventManager クラ" +"スを書きます:" -#: index.docbook:404 -msgid "We create a new Event object, and hand it over to Hibernate. Hibernate now takes care of the SQL and executes INSERTs on the database. Let's have a look at the Session and Transaction-handling code before we run this." -msgstr "新しい Event オブジェクトを生成し、それをHibernateに渡します。 今ではHibernateがSQLを処理し、データベースで INSERT を実行します。 実行前に SessionTransaction を処理するコードを確認してください。" - -#: index.docbook:411 -msgid "A Session is a single unit of work. For now we'll keep things simple and assume a one-to-one granularity between a Hibernate Session and a database transaction. To shield our code from the actual underlying transaction system (in this case plain JDBC, but it could also run with JTA) we use the Transaction API that is available on the Hibernate Session." -msgstr "Session は1つの作業単位(Unit of Work)です。 当分の間、話を簡単にするために、 SessionTransaction の対応を一対一と仮定します。 使用しているトランザクション・システム(このケースではJTAと共存できる単純なJDBC)からコードを保護するために、 Hibernate Session 上で利用可能な Transaction APIを使用します。" - -#: index.docbook:419 -msgid "What does sessionFactory.getCurrentSession() do? First, you can call it as many times and anywhere you like, once you get hold of your SessionFactory (easy thanks to HibernateUtil). The getCurrentSession() method always returns the \"current\" unit of work. Remember that we switched the configuration option for this mechanism to \"thread\" in hibernate.cfg.xml? Hence, the current unit of work is bound to the current Java thread that executes our application. However, this is not the full picture, you also have to consider scope, when a unit of work begins and when it ends." -msgstr "sessionFactory.getCurrentSession() はなにをするのでしょうか? まず、いったん SessionFactory を取得し保持すれば ( HibernateUtil のおかげで簡単です)、このメソッドを何度でも、 どこからでも呼び出すことが出来ます。 getCurrentSession() メソッドは常に「現在の」作業単位(Unit of Work)を返します。 hibernate.cfg.xml のこの機能の設定で、\"thread\"を指定したことを思い出してください。 このため現在の作業単位のスコープは、このアプリケーションを実行する現在のJavaスレッドです。 しかしこれで全てではありません。 Session は最初に必要となったとき、つまり最初に getCurrentSession() が 呼ばれたときに開始します。 そのときHibernateにより現在のスレッドに結び付けられます。 トランザクションが終了(コミットもしくはロールバック)したとき、 Hibernateもスレッドから Session を切り離し、クローズします。 再び getCurrentSession() を呼ぶと、 新しい Session を取得して新しい作業単位をスタートできます。 この thread-bound プログラミング・モデルはHibernateを利用する上で最も人気があります。" - -#: index.docbook:430 -msgid "A Session begins when it is first needed, when the first call to getCurrentSession() is made. It is then bound by Hibernate to the current thread. When the transaction ends, either through commit or rollback, Hibernate automatically unbinds the Session from the thread and closes it for you. If you call getCurrentSession() again, you get a new Session and can start a new unit of work. This thread-bound programming model is the most popular way of using Hibernate, as it allows flexible layering of your code (transaction demarcation code can be separated from data access code, we'll do this later in this tutorial)." -msgstr "トランザクションの扱いと境界の詳しい情報については、 を見てください。 この例ではエラー処理やロールバックも割愛します。" - -#: index.docbook:441 -msgid "Related to the unit of work scope, should the Hibernate Session be used to execute one or several database operations? The above example uses one Session for one operation. This is pure coincidence, the example is just not complex enough to show any other approach. The scope of a Hibernate Session is flexible but you should never design your application to use a new Hibernate Session for every database operation. So even if you see it a few more times in the following (very trivial) examples, consider session-per-operation an anti-pattern. A real (web) application is shown later in this tutorial." -msgstr "この最初のルーチンを実行するには、Antのビルドファイルに呼び出し可能なターゲットを 追加しなければなりません:" - -#: index.docbook:452 -msgid "Have a look at for more information about transaction handling and demarcation. We also skipped any error handling and rollback in the previous example." -msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" - -#: index.docbook:458 -msgid "To run this first routine we have to add a callable target to the Ant build file:" -msgstr "action 引数の値は、ターゲットを呼ぶときにコマンドラインで設定します:" - -#: index.docbook:462 +#. Tag: programlisting +#: tutorial.xml:402 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - "]]>" -msgstr "ant run -Daction=store]]>" +"" +msgstr "" -#: index.docbook:464 -msgid "The value of the action argument is set on the command line when calling the target:" -msgstr "コンパイルすると、Hibernateがスタートし、あなたの設定によりますが、 多くのログ出力があるはずです。 その最後には以下の行があるでしょう:" +#. Tag: para +#: tutorial.xml:404 +#, no-c-format +msgid "" +"We create a new Event object, and hand it over to " +"Hibernate. Hibernate now takes care of the SQL and executes INSERTs on the database. Let's have a look at the Session and Transaction-handling code before we run this." +msgstr "" +"新しい Event オブジェクトを生成し、それをHibernateに渡しま" +"す。 今ではHibernateがSQLを処理し、データベースで INSERT " +"を実行します。 実行前に SessionTransaction を処理するコードを確認してください。" -#: index.docbook:469 +#. Tag: para +#: tutorial.xml:411 +#, no-c-format +msgid "" +"A Session is a single unit of work. For now we'll keep " +"things simple and assume a one-to-one granularity between a Hibernate " +"Session and a database transaction. To shield our code " +"from the actual underlying transaction system (in this case plain JDBC, but " +"it could also run with JTA) we use the Transaction API " +"that is available on the Hibernate Session." +msgstr "" +"Session は1つの作業単位(Unit of Work)です。 当分の間、話を" +"簡単にするために、 SessionTransaction の対応を一対一と仮定します。 使用しているトランザクション・システム" +"(このケースではJTAと共存できる単純なJDBC)からコードを保護するために、 " +"Hibernate Session 上で利用可能な Transaction APIを使用します。" + +#. Tag: para +#: tutorial.xml:419 +#, no-c-format +msgid "" +"What does sessionFactory.getCurrentSession() do? First, " +"you can call it as many times and anywhere you like, once you get hold of " +"your SessionFactory (easy thanks to " +"HibernateUtil). The getCurrentSession() method always returns the \"current\" unit of work. Remember that " +"we switched the configuration option for this mechanism to \"thread\" in " +"hibernate.cfg.xml? Hence, the current unit of work is " +"bound to the current Java thread that executes our application. However, " +"this is not the full picture, you also have to consider scope, when a unit " +"of work begins and when it ends." +msgstr "" +"sessionFactory.getCurrentSession() はなにをするのでしょう" +"か? まず、いったん SessionFactory を取得し保持すれば " +"( HibernateUtil のおかげで簡単です)、このメソッドを何度" +"でも、 どこからでも呼び出すことが出来ます。 getCurrentSession() メソッドは常に「現在の」作業単位(Unit of Work)を返します。 " +"hibernate.cfg.xml のこの機能の設定で、\"thread\"を指定した" +"ことを思い出してください。 このため現在の作業単位のスコープは、このアプリケー" +"ションを実行する現在のJavaスレッドです。 しかしこれで全てではありません。" + +#. Tag: para +#: tutorial.xml:430 +#, no-c-format +msgid "" +"A Session begins when it is first needed, when the first " +"call to getCurrentSession() is made. It is then bound by " +"Hibernate to the current thread. When the transaction ends, either through " +"commit or rollback, Hibernate automatically unbinds the Session from the thread and closes it for you. If you call " +"getCurrentSession() again, you get a new " +"Session and can start a new unit of work. This " +"thread-bound programming model is the most popular way " +"of using Hibernate, as it allows flexible layering of your code (transaction " +"demarcation code can be separated from data access code, we'll do this later " +"in this tutorial)." +msgstr "" +"Session は最初に必要となったとき、つまり最初に " +"getCurrentSession() が 呼ばれたときに開始します。 そのとき" +"Hibernateにより現在のスレッドに結び付けられます。 トランザクションが終了(コ" +"ミットもしくはロールバック)したとき、 Hibernateもスレッドから " +"Session を切り離し、クローズします。 再び " +"getCurrentSession() を呼ぶと、 新しい Session を取得して新しい作業単位をスタートできます。 この thread-" +"bound プログラミング・モデルはHibernateを利用する上で最も人気があ" +"ります。" + +#. Tag: para +#: tutorial.xml:441 +#, no-c-format +msgid "" +"Related to the unit of work scope, should the Hibernate Session be used to execute one or several database operations? The above " +"example uses one Session for one operation. This is pure " +"coincidence, the example is just not complex enough to show any other " +"approach. The scope of a Hibernate Session is flexible " +"but you should never design your application to use a new Hibernate " +"Session for every database " +"operation. So even if you see it a few more times in the following (very " +"trivial) examples, consider session-per-operation an " +"anti-pattern. A real (web) application is shown later in this tutorial." +msgstr "" +"Related to the unit of work scope, should the Hibernate Session be used to execute one or several database operations? The above " +"example uses one Session for one operation. This is pure " +"coincidence, the example is just not complex enough to show any other " +"approach. The scope of a Hibernate Session is flexible " +"but you should never design your application to use a new Hibernate " +"Session for every database " +"operation. So even if you see it a few more times in the following (very " +"trivial) examples, consider session-per-operation an " +"anti-pattern. A real (web) application is shown later in this tutorial." + +#. Tag: para +#: tutorial.xml:452 +#, no-c-format +msgid "" +"Have a look at for more information about " +"transaction handling and demarcation. We also skipped any error handling and " +"rollback in the previous example." +msgstr "" +"トランザクションの扱いと境界の詳しい情報については、 を見てください。 この例ではエラー処理やロールバックも割愛" +"します。" + +#. Tag: para +#: tutorial.xml:458 +#, no-c-format +msgid "" +"To run this first routine we have to add a callable target to the Ant build " +"file:" +msgstr "" +"この最初のルーチンを実行するには、Antのビルドファイルに呼び出し可能なターゲッ" +"トを 追加しなければなりません:" + +#. Tag: programlisting +#: tutorial.xml:462 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: tutorial.xml:464 +#, no-c-format +msgid "" +"The value of the action argument is set on the command " +"line when calling the target:" +msgstr "" +"action 引数の値は、ターゲットを呼ぶときにコマンドラインで" +"設定します:" + +#. Tag: programlisting +#: tutorial.xml:469 +#, no-c-format msgid "ant run -Daction=store]]>" -msgstr "" - -#: index.docbook:471 -msgid "You should see, after compilation, Hibernate starting up and, depending on your configuration, lots of log output. At the end you will find the following line:" -msgstr "これはHibernateが実行する INSERT で、 クエスチョンマークはJDBCバインドパラメータを表しています。 引数としてバインドされる値を見るため、あるいはログの冗長性を減らすためには、 log4j.properties をチェックしてください。" - -#: index.docbook:476 -msgid "" -msgstr "それでは同じように格納されたイベントの一覧を見ようと思います。 そのためメインメソッドにオプションを追加します:" - -#: index.docbook:478 -msgid "This is the INSERT executed by Hibernate, the question marks represent JDBC bind parameters. To see the values bound as arguments, or to reduce the verbosity of the log, check your log4j.properties." msgstr "" - "" -#: index.docbook:484 -msgid "Now we'd like to list stored events as well, so we add an option to the main method:" +#. Tag: para +#: tutorial.xml:471 +#, no-c-format +msgid "" +"You should see, after compilation, Hibernate starting up and, depending on " +"your configuration, lots of log output. At the end you will find the " +"following line:" +msgstr "" +"コンパイルすると、Hibernateがスタートし、あなたの設定によりますが、 多くのロ" +"グ出力があるはずです。 その最後には以下の行があるでしょう:" + +#. Tag: programlisting +#: tutorial.xml:476 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: tutorial.xml:478 +#, no-c-format +msgid "" +"This is the INSERT executed by Hibernate, the question " +"marks represent JDBC bind parameters. To see the values bound as arguments, " +"or to reduce the verbosity of the log, check your log4j.properties." +msgstr "" +"これはHibernateが実行する INSERT で、 クエスチョンマークは" +"JDBCバインドパラメータを表しています。 引数としてバインドされる値を見るため、" +"あるいはログの冗長性を減らすためには、 log4j.properties を" +"チェックしてください。" + +#. Tag: para +#: tutorial.xml:484 +#, no-c-format +msgid "" +"Now we'd like to list stored events as well, so we add an option to the main " +"method:" +msgstr "" +"それでは同じように格納されたイベントの一覧を見ようと思います。 そのためメイン" +"メソッドにオプションを追加します:" + +#. Tag: programlisting +#: tutorial.xml:488 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: tutorial.xml:490 +#, no-c-format +msgid "We also add a new listEvents() method:" msgstr "新しい listEvents()メソッド も追加します。" -#: index.docbook:488 +#. Tag: programlisting +#: tutorial.xml:494 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:490 -msgid "We also add a new listEvents() method:" -msgstr "ここですることは、データベースから存在するすべての Event オブジェクトをロードするHQL (Hibernate Query Language) クエリを使うことです。 Hibernateは適切なSQLを生成し、それをデータベースに送り、 そのデータを使って Event オブジェクトを生成します。 当然HQLでさらに複雑なクエリを作成できます。" - -#: index.docbook:494 +#. Tag: para +#: tutorial.xml:496 +#, no-c-format msgid "" - "" +"What we do here is use an HQL (Hibernate Query Language) query to load all " +"existing Event objects from the database. Hibernate will " +"generate the appropriate SQL, send it to the database and populate " +"Event objects with the data. You can create more complex " +"queries with HQL, of course." +msgstr "" +"ここですることは、データベースから存在するすべての Event " +"オブジェクトをロードするHQL (Hibernate Query Language) クエリを使うことで" +"す。 Hibernateは適切なSQLを生成し、それをデータベースに送り、 そのデータを" +"使って Event オブジェクトを生成します。 当然HQLでさらに複" +"雑なクエリを作成できます。" + +#. Tag: para +#: tutorial.xml:503 +#, no-c-format +msgid "Now, to execute and test all of this, follow these steps:" msgstr "以下のステップで、すべての実行とテストを行います。" -#: index.docbook:496 -msgid "What we do here is use an HQL (Hibernate Query Language) query to load all existing Event objects from the database. Hibernate will generate the appropriate SQL, send it to the database and populate Event objects with the data. You can create more complex queries with HQL, of course." -msgstr "hbm2ddlを通す前にデータベースのデータを作成し、データベーススキーマを生成するために、 ant run -Daction=store を実行してください。" +#. Tag: para +#: tutorial.xml:509 +#, no-c-format +msgid "" +"Run ant run -Daction=store to store something into the " +"database and, of course, to generate the database schema before through " +"hbm2ddl." +msgstr "" +"hbm2ddlを通す前にデータベースのデータを作成し、データベーススキーマを生成する" +"ために、 ant run -Daction=store を実行してください。" -#: index.docbook:503 -msgid "Now, to execute and test all of this, follow these steps:" -msgstr "今は hibernate.cfg.xml ファイルのプロパティをコメントアウトしてhbm2ddlを無効にしてください。 通常は継続的に単体テストをしている間はhbm2ddlを有効にしておくのですが、 それ以外の場合にhbm2ddlを起動すると格納しておいた全てのデータを ドロップ するでしょう。 設定を create にすると、結果として 「SessionFactory生成の際、スキーマから全てのテーブルをドロップして再作成する」という設定になります。" +#. Tag: para +#: tutorial.xml:515 +#, no-c-format +msgid "" +"Now disable hbm2ddl by commenting out the property in your " +"hibernate.cfg.xml file. Usually you only leave it turned " +"on in continous unit testing, but another run of hbm2ddl would " +"drop everything you have stored - the create configuration setting actually translates into \"drop all tables " +"from the schema, then re-create all tables, when the SessionFactory is build" +"\"." +msgstr "" +"今は hibernate.cfg.xml ファイルのプロパティをコメントアウ" +"トしてhbm2ddlを無効にしてください。 通常は継続的に単体テストをしている間は" +"hbm2ddlを有効にしておくのですが、 それ以外の場合にhbm2ddlを起動すると格納して" +"おいた全てのデータを ドロップ するでしょう。 設定を " +"create にすると、結果として 「SessionFactory生成の際、ス" +"キーマから全てのテーブルをドロップして再作成する」という設定になります。" -#: index.docbook:509 -msgid "Run ant run -Daction=store to store something into the database and, of course, to generate the database schema before through hbm2ddl." -msgstr "今 -Daction=list と指定してAntを呼ぶと、 これまで格納したイベントが見えるはずです。 store アクションを数回以上呼ぶことも可能です。" +#. Tag: para +#: tutorial.xml:525 +#, no-c-format +msgid "" +"If you now call Ant with -Daction=list, you should see " +"the events you have stored so far. You can of course also call the " +"store action a few times more." +msgstr "" +"今 -Daction=list と指定してAntを呼ぶと、 これまで格納した" +"イベントが見えるはずです。 store アクションを数回以上呼ぶ" +"ことも可能です。" -#: index.docbook:515 -msgid "Now disable hbm2ddl by commenting out the property in your hibernate.cfg.xml file. Usually you only leave it turned on in continous unit testing, but another run of hbm2ddl would drop everything you have stored - the create configuration setting actually translates into \"drop all tables from the schema, then re-create all tables, when the SessionFactory is build\"." -msgstr "注意:初めてHibernateに触れる人々の多くがここで失敗するため、Table not found エラーメッセージに 関する質問を定期的に見かけます。 しかし上記のステップに従えば、hbm2ddlが最初に実行されたときにデータベーススキーマを作成し、 その後の実行においてもこのスキーマを使用するので、問題は起こらないでしょう。 マッピングやデータベーススキーマを変更したときは、もう一度hbm2ddlを有効にしてください。" +#. Tag: para +#: tutorial.xml:531 +#, no-c-format +msgid "" +"Note: Most new Hibernate users fail at this point and we see questions about " +"Table not found error messages regularly. However, if " +"you follow the steps outlined above you will not have this problem, as " +"hbm2ddl creates the database schema on the first run, and subsequent " +"application restarts will use this schema. If you change the mapping and/or " +"database schema, you have to re-enable hbm2ddl once again." +msgstr "" +"注意:初めてHibernateに触れる人々の多くがここで失敗するため、Table " +"not found エラーメッセージに 関する質問を定期的に見かけます。 しか" +"し上記のステップに従えば、hbm2ddlが最初に実行されたときにデータベーススキーマ" +"を作成し、 その後の実行においてもこのスキーマを使用するので、問題は起こらない" +"でしょう。 マッピングやデータベーススキーマを変更したときは、もう一度hbm2ddl" +"を有効にしてください。" -#: index.docbook:525 -msgid "If you now call Ant with -Daction=list, you should see the events you have stored so far. You can of course also call the store action a few times more." +#. Tag: title +#: tutorial.xml:544 +#, no-c-format +msgid "Part 2 - Mapping associations" msgstr "パート2 - 関連のマッピング" -#: index.docbook:531 -msgid "Note: Most new Hibernate users fail at this point and we see questions about Table not found error messages regularly. However, if you follow the steps outlined above you will not have this problem, as hbm2ddl creates the database schema on the first run, and subsequent application restarts will use this schema. If you change the mapping and/or database schema, you have to re-enable hbm2ddl once again." -msgstr "永続エンティティクラスをテーブルにマッピングしました。 さらにこの上にいくつかのクラスの関連を追加しましょう。 まず初めにアプリケーションに人々を追加し、彼らが参加するイベントのリストを格納します。" +#. Tag: para +#: tutorial.xml:546 +#, no-c-format +msgid "" +"We mapped a persistent entity class to a table. Let's build on this and add " +"some class associations. First we'll add people to our application, and " +"store a list of events they participate in." +msgstr "" +"永続エンティティクラスをテーブルにマッピングしました。 さらにこの上にいくつか" +"のクラスの関連を追加しましょう。 まず初めにアプリケーションに人々を追加し、彼" +"らが参加するイベントのリストを格納します。" -#: index.docbook:544 -msgid "Part 2 - Mapping associations" +#. Tag: title +#: tutorial.xml:552 +#, no-c-format +msgid "Mapping the Person class" msgstr "Personクラスのマッピング" -#: index.docbook:546 -msgid "We mapped a persistent entity class to a table. Let's build on this and add some class associations. First we'll add people to our application, and store a list of events they participate in." +#. Tag: para +#: tutorial.xml:554 +#, no-c-format +msgid "The first cut of the Person class is simple:" msgstr "最初の Person クラスは単純です:" -#: index.docbook:552 -msgid "Mapping the Person class" -msgstr "" - "" - -#: index.docbook:554 -msgid "The first cut of the Person class is simple:" -msgstr "Person.hbm.xml という新しいマッピングファイルを作成してください (ファイルの最初にDTDへの参照を忘れずに入れてください):" - -#: index.docbook:558 +#. Tag: programlisting +#: tutorial.xml:558 +#, no-c-format msgid "" - "" +"" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:560 -msgid "Create a new mapping file called Person.hbm.xml (don't forget the DTD reference at the top):" +#. Tag: para +#: tutorial.xml:560 +#, no-c-format +msgid "" +"Create a new mapping file called Person.hbm.xml (don't " +"forget the DTD reference at the top):" +msgstr "" +"Person.hbm.xml という新しいマッピングファイルを作成してく" +"ださい (ファイルの最初にDTDへの参照を忘れずに入れてください):" + +#. Tag: programlisting +#: tutorial.xml:565 +#, no-c-format +msgid "" +"\n" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: tutorial.xml:567 +#, no-c-format +msgid "Finally, add the new mapping to Hibernate's configuration:" msgstr "最後にHibernateの設定に新しいマッピングを追加してください:" -#: index.docbook:565 +#. Tag: programlisting +#: tutorial.xml:571 +#, no-c-format msgid "" - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"\n" +"]]>" msgstr "" - " \n" - "]]>" -#: index.docbook:567 -msgid "Finally, add the new mapping to Hibernate's configuration:" -msgstr "それではこれら2つのエンティティ間の関連を作成します。 人々がイベントに参加でき、イベントが参加者を持つのは明らかです。 扱わなければならない設計の問題は、方向、多重度、コレクションの振る舞いです。" - -#: index.docbook:571 +#. Tag: para +#: tutorial.xml:573 +#, no-c-format msgid "" - "\n" - "]]>" +"We'll now create an association between these two entities. Obviously, " +"persons can participate in events, and events have participants. The design " +"questions we have to deal with are: directionality, multiplicity, and " +"collection behavior." +msgstr "" +"それではこれら2つのエンティティ間の関連を作成します。 人々がイベントに参加で" +"き、イベントが参加者を持つのは明らかです。 扱わなければならない設計の問題は、" +"方向、多重度、コレクションの振る舞いです。" + +#. Tag: title +#: tutorial.xml:583 +#, no-c-format +msgid "A unidirectional Set-based association" msgstr "単方向Setベース関連" -#: index.docbook:573 -msgid "We'll now create an association between these two entities. Obviously, persons can participate in events, and events have participants. The design questions we have to deal with are: directionality, multiplicity, and collection behavior." -msgstr "イベントのコレクションを Person クラスに追加します。 こうしておくと、明示的なクエリ、つまりわざわざaPerson.getEvents()を呼び出さずに、 特定の人に紐付くイベントを簡単にナビゲートすることができます。 私たちはJavaのコレクション、Set を使います。 コレクションは重複要素を持たないし、順番は私たちには意味がないからです。" - -#: index.docbook:583 -msgid "A unidirectional Set-based association" -msgstr "Set で実装される単方向、多値関連が必要です。 Javaクラス内に対応するコードを書いてマッピングしましょう:" - -#: index.docbook:585 -msgid "We'll add a collection of events to the Person class. That way we can easily navigate to the events for a particular person, without executing an explicit query - by calling aPerson.getEvents(). We use a Java collection, a Set, because the collection will not contain duplicate elements and the ordering is not relevant for us." -msgstr "" - "" - -#: index.docbook:592 -msgid "We need a unidirectional, many-valued associations, implemented with a Set. Let's write the code for this in the Java classes and then map it:" -msgstr "この関連をマッピングする前に、反対側について考えてください。 明らかなことですが、今はこれを単方向にしただけです。 逆に、 Event 側にも別のコレクションを作ることもできます。 例えば anEvent.getParticipants() のように、 双方向にナビゲートしたければ、そうすることもできます。 これは機能的にみて必要ではありません。 特定のイベントに関係するデータを取得する明確なクエリを、いつでも実行することが出来ました。 この設計の選択は開発者に任されていて、この議論により明らかなのは関連の多重度です。 つまり両側を「多」値にする、 多対多 と呼ばれる関連です。 そのためHibernateのmany-to-manyマッピングを使います:" - -#: index.docbook:597 +#. Tag: para +#: tutorial.xml:585 +#, no-c-format msgid "" - "" +"We'll add a collection of events to the Person class. " +"That way we can easily navigate to the events for a particular person, " +"without executing an explicit query - by calling aPerson.getEvents()" +". We use a Java collection, a Set, because the " +"collection will not contain duplicate elements and the ordering is not " +"relevant for us." msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"イベントのコレクションを Person クラスに追加します。 こう" +"しておくと、明示的なクエリ、つまりわざわざaPerson.getEvents()を呼び出さずに、 特定の人に紐付くイベントを簡単にナビゲートすることが" +"できます。 私たちはJavaのコレクション、Set を使います。 コ" +"レクションは重複要素を持たないし、順番は私たちには意味がないからです。" -#: index.docbook:599 -msgid "Before we map this association, think about the other side. Clearly, we could just keep this unidirectional. Or, we could create another collection on the Event, if we want to be able to navigate it bi-directional, i.e. anEvent.getParticipants(). This is not necessary, from a functional perspective. You could always execute an explicit query to retrieve the participants for a particular event. This is a design choice left to you, but what is clear from this discussion is the multiplicity of the association: \"many\" valued on both sides, we call this a many-to-many association. Hence, we use Hibernate's many-to-many mapping:" -msgstr "Hibernateはありとあらゆる種類のコレクションマッピングをサポートしていますが、 最も一般的なものが <set> です。 多対多関連(または n:m エンティティリレーションシップ)には、 関連テーブルが必要です。 このテーブルのそれぞれの行は、人とイベント間のリンクを表現します。 テーブル名は set 要素の table 属性で設定します。 人側の関連の識別子カラム名は <key> 要素で、 イベント側のカラム名は <many-to-many>column 属性で定義します。 Hibernateにコレクションのオブジェクトのクラス (正確には、参照のコレクションの反対側のクラス)を教えなければなりません。" - -#: index.docbook:610 +#. Tag: para +#: tutorial.xml:592 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - "]]>" +"We need a unidirectional, many-valued associations, implemented with a " +"Set. Let's write the code for this in the Java classes " +"and then map it:" +msgstr "" +"Set で実装される単方向、多値関連が必要です。 Javaクラス内" +"に対応するコードを書いてマッピングしましょう:" + +#. Tag: programlisting +#: tutorial.xml:597 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: tutorial.xml:599 +#, no-c-format +msgid "" +"Before we map this association, think about the other side. Clearly, we " +"could just keep this unidirectional. Or, we could create another collection " +"on the Event, if we want to be able to navigate it bi-" +"directional, i.e. anEvent.getParticipants(). This is not " +"necessary, from a functional perspective. You could always execute an " +"explicit query to retrieve the participants for a particular event. This is " +"a design choice left to you, but what is clear from this discussion is the " +"multiplicity of the association: \"many\" valued on both sides, we call this " +"a many-to-many association. Hence, we use Hibernate's " +"many-to-many mapping:" +msgstr "" +"この関連をマッピングする前に、反対側について考えてください。 明らかなことです" +"が、今はこれを単方向にしただけです。 逆に、 Event 側にも別" +"のコレクションを作ることもできます。 例えば anEvent.getParticipants" +"() のように、 双方向にナビゲートしたければ、そうすることもできま" +"す。 これは機能的にみて必要ではありません。 特定のイベントに関係するデータを" +"取得する明確なクエリを、いつでも実行することが出来ました。 この設計の選択は開" +"発者に任されていて、この議論により明らかなのは関連の多重度です。 つまり両側を" +"「多」値にする、 多対多 と呼ばれる関連です。 そのため" +"Hibernateのmany-to-manyマッピングを使います:" + +#. Tag: programlisting +#: tutorial.xml:610 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +"]]>" +msgstr "" + +#. Tag: para +#: tutorial.xml:612 +#, no-c-format +msgid "" +"Hibernate supports all kinds of collection mappings, a <set> being most common. For a many-to-many association (or n:" +"m entity relationship), an association table is needed. Each row " +"in this table represents a link between a person and an event. The table " +"name is configured with the table attribute of the " +"set element. The identifier column name in the " +"association, for the person's side, is defined with the <key>" +" element, the column name for the event's side with the " +"column attribute of the <many-to-many>. You also have to tell Hibernate the class of the objects in your " +"collection (correct: the class on the other side of the collection of " +"references)." +msgstr "" +"Hibernateはありとあらゆる種類のコレクションマッピングをサポートしています" +"が、 最も一般的なものが <set> です。 多対多関連(ま" +"たは n:m エンティティリレーションシップ)には、 関連テー" +"ブルが必要です。 このテーブルのそれぞれの行は、人とイベント間のリンクを表現し" +"ます。 テーブル名は set 要素の table 属" +"性で設定します。 人側の関連の識別子カラム名は <key> " +"要素で、 イベント側のカラム名は <many-to-many> の " +"column 属性で定義します。 Hibernateにコレクションのオブ" +"ジェクトのクラス (正確には、参照のコレクションの反対側のクラス)を教えなけれ" +"ばなりません。" + +#. Tag: para +#: tutorial.xml:624 +#, no-c-format +msgid "The database schema for this mapping is therefore:" msgstr "そのためこのマッピングのデータベーススキーマは以下のようになります。:" -#: index.docbook:612 -msgid "Hibernate supports all kinds of collection mappings, a <set> being most common. For a many-to-many association (or n:m entity relationship), an association table is needed. Each row in this table represents a link between a person and an event. The table name is configured with the table attribute of the set element. The identifier column name in the association, for the person's side, is defined with the <key> element, the column name for the event's side with the column attribute of the <many-to-many>. You also have to tell Hibernate the class of the objects in your collection (correct: the class on the other side of the collection of references)." +#. Tag: programlisting +#: tutorial.xml:628 +#, no-c-format +msgid "" +" | *EVENT_ID | | |\n" +" | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID |\n" +" | TITLE | |__________________| | AGE |\n" +" |_____________| | FIRSTNAME |\n" +" | LASTNAME |\n" +" |_____________|\n" +" ]]>" msgstr "" - " | *EVENT_ID | | | \n" - " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID | \n" - " | TITLE | |__________________| | AGE | \n" - " |_____________| | FIRSTNAME | \n" - " | LASTNAME | \n" - " |_____________| \n" - " ]]>" -#: index.docbook:624 -msgid "The database schema for this mapping is therefore:" +#. Tag: title +#: tutorial.xml:633 +#, no-c-format +msgid "Working the association" msgstr "関連を働かせる" -#: index.docbook:628 +#. Tag: para +#: tutorial.xml:635 +#, no-c-format msgid "" - " | *EVENT_ID | | |\n" - " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID |\n" - " | TITLE | |__________________| | AGE |\n" - " |_____________| | FIRSTNAME |\n" - " | LASTNAME |\n" - " |_____________|\n" - " ]]>" -msgstr "EventManager の新しいメソッドで人々とイベントを一緒にしましょう:" - -#: index.docbook:633 -msgid "Working the association" +"Let's bring some people and events together in a new method in " +"EventManager:" msgstr "" - "" +"EventManager の新しいメソッドで人々とイベントを一緒にしま" +"しょう:" -#: index.docbook:635 -msgid "Let's bring some people and events together in a new method in EventManager:" -msgstr "PersonEvent をロードした後、 普通のコレクションメソッドを使って単純にそのコレクションを修正してください。 ご覧のとおり update()save() の明示的な呼び出しはありません。 Hibernateは、修正されたことにより更新する必要のあるコレクションを自動的に検知します。 これは 自動ダーティチェック と呼ばれ、 オブジェクトの名前やdateプロパティを修正することで試すことも可能です。 それらが 永続 状態にある限り、 つまり特定のHibernate Session にバインドされている限り (例えば作業単位(Unit of Work)の中で単にロードまたはセーブされた)、 Hibernateはどんな変更もモニターし、遅延書き込み(write-behind)でSQLを実行します。 通常、作業単位(Unit of Work)の最後にだけ行われるデータベースとメモリの状態を同期させる処理は、 フラッシュ と呼ばれます。 このコードでは、作業単位(Unit of Work)はデータベーストランザクションのコミット(もしくはロールバック)で終了します。 これは、 CurrentSessionContext クラスに対して thread を設定したためです。" - -#: index.docbook:639 +#. Tag: programlisting +#: tutorial.xml:639 +#, no-c-format msgid "" - "" -msgstr "異なる作業単位(Unit of Work)で人々とイベントをロードすることも当然できます。 そうでなければ、永続状態にないとき(以前に永続であったなら、この状態を 分離(detached) と呼びます)、 Session の外部でオブジェクトを修正します。 分離されるときにはコレクションを変更することも可能です:" - -#: index.docbook:641 -msgid "After loading a Person and an Event, simply modify the collection using the normal collection methods. As you can see, there is no explicit call to update() or save(), Hibernate automatically detects that the collection has been modified and needs to be updated. This is called automatic dirty checking, and you can also try it by modifying the name or the date property of any of your objects. As long as they are in persistent state, that is, bound to a particular Hibernate Session (i.e. they have been just loaded or saved in a unit of work), Hibernate monitors any changes and executes SQL in a write-behind fashion. The process of synchronizing the memory state with the database, usually only at the end of a unit of work, is called flushing. In our code, the unit of work ends with a commit (or rollback) of the database transaction - as defined by the thread configuration option for the CurrentSessionContext class." +"" msgstr "" - "" -#: index.docbook:656 -msgid "You might of course load person and event in different units of work. Or you modify an object outside of a Session, when it is not in persistent state (if it was persistent before, we call this state detached). You can even modify a collection when it is detached:" -msgstr "update の呼び出しは分離オブジェクトを再び永続化します。 これは、新しい作業単位(Unit of Work)にバインドすると言えるでしょう。 そのため分離の間に加えられたどのような修正もデータベースにセーブできます。 エンティティオブジェクトのコレクションへの修正(追加・削除)も同様にセーブできます。" - -#: index.docbook:663 +#. Tag: para +#: tutorial.xml:641 +#, no-c-format msgid "" - "" -msgstr "これは今はあまり使いみちがありませんが、 自分のアプリケーションの設計に組み込むことができる重要なコンセプトです。 それではこのエクササイズの最後に、 EventManager のメインメソッドに新しいアクションを追加して コマンドラインから呼び出してみましょう。 人やイベントの識別子が必要なら、 save() メソッドが返してくれます (場合によっては識別子を返すためにメソッドを修正する必要があるかもしれません)。" - -#: index.docbook:665 -msgid "The call to update makes a detached object persistent again, you could say it binds it to a new unit of work, so any modifications you made to it while detached can be saved to the database. This includes any modifications (additions/deletions) you made to a collection of that entity object." +"After loading a Person and an Event, " +"simply modify the collection using the normal collection methods. As you can " +"see, there is no explicit call to update() or " +"save(), Hibernate automatically detects that the " +"collection has been modified and needs to be updated. This is called " +"automatic dirty checking, and you can also try it by " +"modifying the name or the date property of any of your objects. As long as " +"they are in persistent state, that is, bound to a " +"particular Hibernate Session (i.e. they have been just " +"loaded or saved in a unit of work), Hibernate monitors any changes and " +"executes SQL in a write-behind fashion. The process of synchronizing the " +"memory state with the database, usually only at the end of a unit of work, " +"is called flushing. In our code, the unit of work ends " +"with a commit (or rollback) of the database transaction - as defined by the " +"thread configuration option for the " +"CurrentSessionContext class." msgstr "" - "" +"PersonEvent をロードした後、 普通の" +"コレクションメソッドを使って単純にそのコレクションを修正してください。 ご覧の" +"とおり update()save() の明示的な呼" +"び出しはありません。 Hibernateは、修正されたことにより更新する必要のあるコレ" +"クションを自動的に検知します。 これは 自動ダーティチェック と呼ばれ、 オブジェクトの名前やdateプロパティを修正することで試すこ" +"とも可能です。 それらが 永続 状態にある限り、 つまり特定" +"のHibernate Session にバインドされている限り (例えば作業" +"単位(Unit of Work)の中で単にロードまたはセーブされた)、 Hibernateはどんな変" +"更もモニターし、遅延書き込み(write-behind)でSQLを実行します。 通常、作業単位" +"(Unit of Work)の最後にだけ行われるデータベースとメモリの状態を同期させる処理" +"は、 フラッシュ と呼ばれます。 このコードでは、作業単位" +"(Unit of Work)はデータベーストランザクションのコミット(もしくはロールバッ" +"ク)で終了します。 これは、 CurrentSessionContext クラスに" +"対して thread を設定したためです。" -#: index.docbook:672 -msgid "Well, this is not much use in our current situation, but it's an important concept you can design into your own application. For now, complete this exercise by adding a new action to the EventManager's main method and call it from the command line. If you need the identifiers of a person and an event - the save() method returns it (you might have to modify some of the previous methods to return that identifier):" -msgstr "これは同じように重要な2つのクラス、つまり2つのエンティティ間の関連の例でした。 前に述べたように、典型的なモデルには、普通「比較的重要ではない」他のクラスと型があります。 これまでに見たような intString のようなものです。 このようなクラスを 値型 と言います。 このインスタンスは特定のエンティティに 依存 します。 この型のインスタンスは独自のIDを持ちませんし、 エンティティ間で共有されることもありません (ファーストネームが同じだったとしても、2人の人は同じ firstname オブジェクトを参照しません)。 値型はもちろんJDK内に見つかりますが、それだけではなく (実際、HibernateアプリケーションにおいてすべてのJDKクラスは値型と見なせます)、 例えば AddressMonetaryAmount のような独自の依存クラスを書くこともできます。" - -#: index.docbook:680 +#. Tag: para +#: tutorial.xml:656 +#, no-c-format msgid "" - "" -msgstr "値型のコレクションを設計することもできます。 これは他のエンティティへの参照のコレクションとは概念的に非常に異なりますが、 Javaではほとんど同じように見えます。" +"You might of course load person and event in different units of work. Or you " +"modify an object outside of a Session, when it is not in " +"persistent state (if it was persistent before, we call this state " +"detached). You can even modify a collection when it is " +"detached:" +msgstr "" +"異なる作業単位(Unit of Work)で人々とイベントをロードすることも当然できます。 " +"そうでなければ、永続状態にないとき(以前に永続であったなら、この状態を " +"分離(detached) と呼びます)、 Session の外部でオブジェクトを修正します。 分離されるときにはコレクションを" +"変更することも可能です:" -#: index.docbook:682 -msgid "This was an example of an association between two equally important classes, two entities. As mentioned earlier, there are other classes and types in a typical model, usually \"less important\". Some you have already seen, like an int or a String. We call these classes value types, and their instances depend on a particular entity. Instances of these types don't have their own identity, nor are they shared between entities (two persons don't reference the same firstname object, even if they have the same first name). Of course, value types can not only be found in the JDK (in fact, in a Hibernate application all JDK classes are considered value types), but you can also write dependent classes yourself, Address or MonetaryAmount, for example." +#. Tag: programlisting +#: tutorial.xml:663 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: tutorial.xml:665 +#, no-c-format +msgid "" +"The call to update makes a detached object persistent " +"again, you could say it binds it to a new unit of work, so any modifications " +"you made to it while detached can be saved to the database. This includes " +"any modifications (additions/deletions) you made to a collection of that " +"entity object." +msgstr "" +"update の呼び出しは分離オブジェクトを再び永続化します。 こ" +"れは、新しい作業単位(Unit of Work)にバインドすると言えるでしょう。 そのため分" +"離の間に加えられたどのような修正もデータベースにセーブできます。 エンティティ" +"オブジェクトのコレクションへの修正(追加・削除)も同様にセーブできます。" + +#. Tag: para +#: tutorial.xml:672 +#, no-c-format +msgid "" +"Well, this is not much use in our current situation, but it's an important " +"concept you can design into your own application. For now, complete this " +"exercise by adding a new action to the EventManager's " +"main method and call it from the command line. If you need the identifiers " +"of a person and an event - the save() method returns it " +"(you might have to modify some of the previous methods to return that " +"identifier):" +msgstr "" +"これは今はあまり使いみちがありませんが、 自分のアプリケーションの設計に組み込" +"むことができる重要なコンセプトです。 それではこのエクササイズの最後に、 " +"EventManager のメインメソッドに新しいアクションを追加して " +"コマンドラインから呼び出してみましょう。 人やイベントの識別子が必要なら、 " +"save() メソッドが返してくれます (場合によっては識別子を返" +"すためにメソッドを修正する必要があるかもしれません)。" + +#. Tag: programlisting +#: tutorial.xml:680 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: tutorial.xml:682 +#, no-c-format +msgid "" +"This was an example of an association between two equally important classes, " +"two entities. As mentioned earlier, there are other classes and types in a " +"typical model, usually \"less important\". Some you have already seen, like " +"an int or a String. We call these " +"classes value types, and their instances " +"depend on a particular entity. Instances of these types " +"don't have their own identity, nor are they shared between entities (two " +"persons don't reference the same firstname object, even " +"if they have the same first name). Of course, value types can not only be " +"found in the JDK (in fact, in a Hibernate application all JDK classes are " +"considered value types), but you can also write dependent classes yourself, " +"Address or MonetaryAmount, for example." +msgstr "" +"これは同じように重要な2つのクラス、つまり2つのエンティティ間の関連の例でし" +"た。 前に述べたように、典型的なモデルには、普通「比較的重要ではない」他のクラ" +"スと型があります。 これまでに見たような int や " +"String のようなものです。 このようなクラスを 値" +"型 と言います。 このインスタンスは特定のエンティティに " +"依存 します。 この型のインスタンスは独自のIDを持ちませんし、 エン" +"ティティ間で共有されることもありません (ファーストネームが同じだったとして" +"も、2人の人は同じ firstname オブジェクトを参照しませ" +"ん)。 値型はもちろんJDK内に見つかりますが、それだけではなく (実際、" +"HibernateアプリケーションにおいてすべてのJDKクラスは値型と見なせます)、 例え" +"ば AddressMonetaryAmount のような独" +"自の依存クラスを書くこともできます。" + +#. Tag: para +#: tutorial.xml:695 +#, no-c-format +msgid "" +"You can also design a collection of value types. This is conceptually very " +"different from a collection of references to other entities, but looks " +"almost the same in Java." +msgstr "" +"値型のコレクションを設計することもできます。 これは他のエンティティへの参照の" +"コレクションとは概念的に非常に異なりますが、 Javaではほとんど同じように見えま" +"す。" + +#. Tag: title +#: tutorial.xml:703 +#, no-c-format +msgid "Collection of values" msgstr "値のコレクション" -#: index.docbook:695 -msgid "You can also design a collection of value types. This is conceptually very different from a collection of references to other entities, but looks almost the same in Java." -msgstr "値型オブジェクトのコレクションを Person エンティティへ追加します。 Eメールアドレスを格納したいのですが、String 型を使っているので、 コレクションは再び Set です:" - -#: index.docbook:703 -msgid "Collection of values" +#. Tag: para +#: tutorial.xml:705 +#, no-c-format +msgid "" +"We add a collection of value typed objects to the Person " +"entity. We want to store email addresses, so the type we use is " +"String, and the collection is again a Set:" msgstr "" - "" +"値型オブジェクトのコレクションを Person エンティティへ追加" +"します。 Eメールアドレスを格納したいのですが、String 型を" +"使っているので、 コレクションは再び Set です:" -#: index.docbook:705 -msgid "We add a collection of value typed objects to the Person entity. We want to store email addresses, so the type we use is String, and the collection is again a Set:" +#. Tag: programlisting +#: tutorial.xml:710 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: tutorial.xml:712 +#, no-c-format +msgid "The mapping of this Set:" msgstr "この Set のマッピングです:" -#: index.docbook:710 +#. Tag: programlisting +#: tutorial.xml:716 +#, no-c-format msgid "" - "" +"\n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - "]]>" -#: index.docbook:712 -msgid "The mapping of this Set:" -msgstr "前のマッピングと比べて違うのは element の部分ですが、 Hibernateにこのコレクションが他のエンティティへの参照を含まず、 String 型の要素のコレクションを含むことを教えます。 (小文字の名前(string)はHibernateのマッピング型またはコンバータであるということです)。 繰り返しますが、set 要素の table 属性は、 コレクションのためのテーブル名を指定します。 key 要素はコレクションテーブルの外部キーカラム名を定義します。 element 要素の column 属性は String の値が実際に格納されるカラムの名前を定義します。" - -#: index.docbook:716 +#. Tag: para +#: tutorial.xml:718 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "]]>" +"The difference compared with the earlier mapping is the element part, which tells Hibernate that the collection does not contain " +"references to another entity, but a collection of elements of type " +"String (the lowercase name tells you it's a Hibernate " +"mapping type/converter). Once again, the table attribute " +"of the set element determines the table name for the " +"collection. The key element defines the foreign-key " +"column name in the collection table. The column attribute " +"in the element element defines the column name where the " +"String values will actually be stored." +msgstr "" +"前のマッピングと比べて違うのは element の部分ですが、 " +"Hibernateにこのコレクションが他のエンティティへの参照を含まず、 " +"String 型の要素のコレクションを含むことを教えます。 (小文" +"字の名前(string)はHibernateのマッピング型またはコンバータであるということで" +"す)。 繰り返しますが、set 要素の table 属性は、 コレクションのためのテーブル名を指定します。 key 要素はコレクションテーブルの外部キーカラム名を定義します。 " +"element 要素の column 属性は " +"String の値が実際に格納されるカラムの名前を定義します。" + +#. Tag: para +#: tutorial.xml:728 +#, no-c-format +msgid "Have a look at the updated schema:" msgstr "更新したスキーマを見てください:" -#: index.docbook:718 -msgid "The difference compared with the earlier mapping is the element part, which tells Hibernate that the collection does not contain references to another entity, but a collection of elements of type String (the lowercase name tells you it's a Hibernate mapping type/converter). Once again, the table attribute of the set element determines the table name for the collection. The key element defines the foreign-key column name in the collection table. The column attribute in the element element defines the column name where the String values will actually be stored." -msgstr "" - " | *EVENT_ID | | | |___________________| \n" - " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID | <--> | *PERSON_ID | \n" - " | TITLE | |__________________| | AGE | | *EMAIL_ADDR | \n" - " |_____________| | FIRSTNAME | |___________________| \n" - " | LASTNAME | \n" - " |_____________| \n" - " ]]>" - -#: index.docbook:728 -msgid "Have a look at the updated schema:" -msgstr "コレクションテーブルの主キーは、実際は両方のカラムを使った複合キーであることがわかります。 これは人ごとにEメールアドレスが重複できないということで、 Javaのsetに要求されるセマンティクスそのものです。" - -#: index.docbook:732 +#. Tag: programlisting +#: tutorial.xml:732 +#, no-c-format msgid "" - " | *EVENT_ID | | | |___________________|\n" - " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID | <--> | *PERSON_ID |\n" - " | TITLE | |__________________| | AGE | | *EMAIL_ADDR |\n" - " |_____________| | FIRSTNAME | |___________________|\n" - " | LASTNAME |\n" - " |_____________|\n" - " ]]>" -msgstr "以前人とイベントを関連づけたときと全く同じように、 今や試しにコレクションに要素を追加することができるようになりました。 両方ともJavaでは同じコードです。" - -#: index.docbook:734 -msgid "You can see that the primary key of the collection table is in fact a composite key, using both columns. This also implies that there can't be duplicate email addresses per person, which is exactly the semantics we need for a set in Java." +" | *EVENT_ID | | | |" +"___________________|\n" +" | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID | <--> | " +"*PERSON_ID |\n" +" | TITLE | |__________________| | AGE | | " +"*EMAIL_ADDR |\n" +" |_____________| | FIRSTNAME | |" +"___________________|\n" +" | LASTNAME |\n" +" |_____________|\n" +" ]]>" msgstr "" - "" -#: index.docbook:740 -msgid "You can now try and add elements to this collection, just like we did before by linking persons and events. It's the same code in Java:" -msgstr "今回、コレクションの初期化に fetch クエリを使用しませんでした。 そのため、getterメソッドの呼び出しによってコレクションを初期化するためのSELECTが 実行されるので、コレクションに要素を追加できます。 SQLのログを監視して、即時フェッチを使って最適化してください。" - -#: index.docbook:745 +#. Tag: para +#: tutorial.xml:734 +#, no-c-format msgid "" - "" +"You can see that the primary key of the collection table is in fact a " +"composite key, using both columns. This also implies that there can't be " +"duplicate email addresses per person, which is exactly the semantics we need " +"for a set in Java." +msgstr "" +"コレクションテーブルの主キーは、実際は両方のカラムを使った複合キーであること" +"がわかります。 これは人ごとにEメールアドレスが重複できないということで、 Java" +"のsetに要求されるセマンティクスそのものです。" + +#. Tag: para +#: tutorial.xml:740 +#, no-c-format +msgid "" +"You can now try and add elements to this collection, just like we did before " +"by linking persons and events. It's the same code in Java:" +msgstr "" +"以前人とイベントを関連づけたときと全く同じように、 今や試しにコレクションに要" +"素を追加することができるようになりました。 両方ともJavaでは同じコードです。" + +#. Tag: programlisting +#: tutorial.xml:745 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: tutorial.xml:747 +#, no-c-format +msgid "" +"This time we didnt' use a fetch query to initialize the " +"collection. Hence, the call to its getter method will trigger an additional " +"select to initialize it, so we can add an element to it. Monitor the SQL log " +"and try to optimize this with an eager fetch." +msgstr "" +"今回、コレクションの初期化に fetch クエリを使用しません" +"でした。 そのため、getterメソッドの呼び出しによってコレクションを初期化するた" +"めのSELECTが 実行されるので、コレクションに要素を追加できます。 SQLのログを監" +"視して、即時フェッチを使って最適化してください。" + +#. Tag: title +#: tutorial.xml:757 +#, no-c-format +msgid "Bi-directional associations" msgstr "双方向関連" -#: index.docbook:747 -msgid "This time we didnt' use a fetch query to initialize the collection. Hence, the call to its getter method will trigger an additional select to initialize it, so we can add an element to it. Monitor the SQL log and try to optimize this with an eager fetch." -msgstr "次に双方向関連をマッピングします。 Javaで両側から人とイベントの関連を動作させます。 もちろん、データベーススキーマは変わりませんが、多重度は多対多のままです。 リレーショナルデータベースはネットワークプログラミング言語よりも柔軟なので、 ナビゲーションの方向のようなものを必要としません。 データはあらゆるの方法で見たり復元できるということです。" - -#: index.docbook:757 -msgid "Bi-directional associations" -msgstr "まず Event イベントクラスに参加者のコレクションを追加します:" - -#: index.docbook:759 -msgid "Next we are going to map a bi-directional association - making the association between person and event work from both sides in Java. Of course, the database schema doesn't change, we still have many-to-many multiplicity. A relational database is more flexible than a network programming language, so it doesn't need anything like a navigation direction - data can be viewed and retrieved in any possible way." -msgstr "" - "" - -#: index.docbook:767 -msgid "First, add a collection of participants to the Event Event class:" -msgstr "それでは Event.hbm.xml で関連のこちら側をマッピングしてください。" - -#: index.docbook:771 +#. Tag: para +#: tutorial.xml:759 +#, no-c-format msgid "" - "" +"Next we are going to map a bi-directional association - making the " +"association between person and event work from both sides in Java. Of " +"course, the database schema doesn't change, we still have many-to-many " +"multiplicity. A relational database is more flexible than a network " +"programming language, so it doesn't need anything like a navigation " +"direction - data can be viewed and retrieved in any possible way." msgstr "" - " \n" - " \n" - " \n" - "]]>" +"次に双方向関連をマッピングします。 Javaで両側から人とイベントの関連を動作させ" +"ます。 もちろん、データベーススキーマは変わりませんが、多重度は多対多のままで" +"す。 リレーショナルデータベースはネットワークプログラミング言語よりも柔軟なの" +"で、 ナビゲーションの方向のようなものを必要としません。 データはあらゆるの方" +"法で見たり復元できるということです。" -#: index.docbook:773 -msgid "Now map this side of the association too, in Event.hbm.xml." -msgstr "ご覧のとおり、いずれのマッピングドキュメント(XMLファイル)でも、普通の set マッピングを使っています。 keymany-to-many のカラム名が、 両方のマッピングドキュメントで入れ替えになっていることに注目してください。 ここで最も重要な追加項目は、 Event のコレクションマッピングの set 要素にある inverse=\"true\" 属性です。" - -#: index.docbook:777 +#. Tag: para +#: tutorial.xml:767 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - "]]>" -msgstr "この指定の意味は、2つの間のエンティティ間のリンクについての情報を探す必要があるとき、 Hibernateは反対側のエンティティ、つまり Person クラスから探すということです。 一度2つのエンティティ間の双方向リンクがどのように作成されるかがわかれば、 これを理解することはとても簡単です。" +"First, add a collection of participants to the Event " +"Event class:" +msgstr "" +"まず Event イベントクラスに参加者のコレクションを追加しま" +"す:" -#: index.docbook:779 -msgid "As you see, these are normal set mappings in both mapping documents. Notice that the column names in key and many-to-many are swapped in both mapping documents. The most important addition here is the inverse=\"true\" attribute in the set element of the Event's collection mapping." +#. Tag: programlisting +#: tutorial.xml:771 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: tutorial.xml:773 +#, no-c-format +msgid "" +"Now map this side of the association too, in Event.hbm.xml." +msgstr "" +"それでは Event.hbm.xml で関連のこちら側をマッピングしてく" +"ださい。" + +#. Tag: programlisting +#: tutorial.xml:777 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: tutorial.xml:779 +#, no-c-format +msgid "" +"As you see, these are normal set mappings in both mapping " +"documents. Notice that the column names in key and " +"many-to-many are swapped in both mapping documents. The " +"most important addition here is the inverse=\"true\" " +"attribute in the set element of the Event's collection mapping." +msgstr "" +"ご覧のとおり、いずれのマッピングドキュメント(XMLファイル)でも、普通の " +"set マッピングを使っています。 key と " +"many-to-many のカラム名が、 両方のマッピングドキュメントで" +"入れ替えになっていることに注目してください。 ここで最も重要な追加項目は、 " +"Event のコレクションマッピングの set 要" +"素にある inverse=\"true\" 属性です。" + +#. Tag: para +#: tutorial.xml:787 +#, no-c-format +msgid "" +"What this means is that Hibernate should take the other side - the " +"Person class - when it needs to find out information " +"about the link between the two. This will be a lot easier to understand once " +"you see how the bi-directional link between our two entities is created ." +msgstr "" +"この指定の意味は、2つの間のエンティティ間のリンクについての情報を探す必要があ" +"るとき、 Hibernateは反対側のエンティティ、つまり Person ク" +"ラスから探すということです。 一度2つのエンティティ間の双方向リンクがどのよう" +"に作成されるかがわかれば、 これを理解することはとても簡単です。" + +#. Tag: title +#: tutorial.xml:796 +#, no-c-format +msgid "Working bi-directional links" msgstr "双方向リンクの動作" -#: index.docbook:787 -msgid "What this means is that Hibernate should take the other side - the Person class - when it needs to find out information about the link between the two. This will be a lot easier to understand once you see how the bi-directional link between our two entities is created ." -msgstr "まず、Hibernateが通常のJavaのセマンティクスに影響を及ぼさないことを心に留めておいてください。 私たちは、単方向の例としてどのように PersonEvent の間のリンクを作成したでしょうか? Person のインスタンスのイベントへの参照のコレクションに Event のインスタンスを追加しました。 そのためこのリンクを双方向にしたければ、 当たり前ですが反対側にも同じことをしなければなりません。 Event のコレクションに Person への 参照を追加するということです。 この「両側でリンクを設定すること」は絶対に必要なので、決して忘れないでください。" - -#: index.docbook:796 -msgid "Working bi-directional links" -msgstr "多くの開発者は慎重にプログラムするので、 エンティティの両側に正しく関連を設定するリンク管理メソッドを作成します。 例えば Person では以下のようになります。:" - -#: index.docbook:798 -msgid "First, keep in mind that Hibernate does not affect normal Java semantics. How did we create a link between a Person and an Event in the unidirectional example? We added an instance of Event to the collection of event references, of an instance of Person. So, obviously, if we want to make this link working bi-directional, we have to do the same on the other side - adding a Person reference to the collection in an Event. This \"setting the link on both sides\" is absolutely necessary and you should never forget doing it." -msgstr "" - "" - -#: index.docbook:808 -msgid "Many developers program defensive and create link management methods to correctly set both sides, e.g. in Person:" -msgstr "コレクションのゲットとセットメソッドが現在protectedになっていることに注意してください。 これは同じパッケージのクラスやサブクラスのメソッドは依然アクセスが可能ですが、 (ほとんど)そのパッケージ外のどのクラスでも直接そのコレクションを台無しにすることを防ぎます。 おそらく反対側のコレクションにも同じことをした方がいいでしょう。" - -#: index.docbook:813 +#. Tag: para +#: tutorial.xml:798 +#, no-c-format msgid "" - "" -msgstr "inverse マッピング属性とはいったい何でしょうか? 開発者とJavaにとっては、双方向リンクは単に両側の参照を正しく設定するということです。 しかしHibernateは(制約違反を避けるために)SQLの INSERTUPDATE 文を正確に変更するための十分な情報を持っていないので、 双方向関連プロパティを扱うための何らかの助けを必要とします。 関連の片側を inverse に設定することで、Hibernateは基本的には設定した側を無視し、 反対側の として考えます。 これだけで、Hibernateは方向を持つナビゲーションモデルをSQLデータベーススキーマへ変換するときの すべての問題にうまく対処できます。 覚えておかなければならないルールは簡単です。 双方向関連は必ず片側を inverse にする必要があるということです。 一対多関連ではそれは多側でなければなりません。 多対多関連ではどちら側でも構いません。どちらでも違いはありません。" +"First, keep in mind that Hibernate does not affect normal Java semantics. " +"How did we create a link between a Person and an " +"Event in the unidirectional example? We added an instance " +"of Event to the collection of event references, of an " +"instance of Person. So, obviously, if we want to make " +"this link working bi-directional, we have to do the same on the other side - " +"adding a Person reference to the collection in an " +"Event. This \"setting the link on both sides\" is " +"absolutely necessary and you should never forget doing it." +msgstr "" +"まず、Hibernateが通常のJavaのセマンティクスに影響を及ぼさないことを心に留めて" +"おいてください。 私たちは、単方向の例としてどのように PersonEvent の間のリンクを作成したでしょうか? " +"Person のインスタンスのイベントへの参照のコレクションに " +"Event のインスタンスを追加しました。 そのためこのリンクを" +"双方向にしたければ、 当たり前ですが反対側にも同じことをしなければなりませ" +"ん。 Event のコレクションに Person へ" +"の 参照を追加するということです。 この「両側でリンクを設定すること」は絶対に" +"必要なので、決して忘れないでください。" -#: index.docbook:815 -msgid "Notice that the get and set methods for the collection are now protected - this allows classes in the same package and subclasses to still access the methods, but prevents everybody else from messing with the collections directly (well, almost). You should probably do the same with the collection on the other side." +#. Tag: para +#: tutorial.xml:808 +#, no-c-format +msgid "" +"Many developers program defensive and create link management methods to " +"correctly set both sides, e.g. in Person:" +msgstr "" +"多くの開発者は慎重にプログラムするので、 エンティティの両側に正しく関連を設定" +"するリンク管理メソッドを作成します。 例えば Person では以" +"下のようになります。:" + +#. Tag: programlisting +#: tutorial.xml:813 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: tutorial.xml:815 +#, no-c-format +msgid "" +"Notice that the get and set methods for the collection are now protected - " +"this allows classes in the same package and subclasses to still access the " +"methods, but prevents everybody else from messing with the collections " +"directly (well, almost). You should probably do the same with the collection " +"on the other side." +msgstr "" +"コレクションのゲットとセットメソッドが現在protectedになっていることに注意して" +"ください。 これは同じパッケージのクラスやサブクラスのメソッドは依然アクセスが" +"可能ですが、 (ほとんど)そのパッケージ外のどのクラスでも直接そのコレクション" +"を台無しにすることを防ぎます。 おそらく反対側のコレクションにも同じことをした" +"方がいいでしょう。" + +#. Tag: para +#: tutorial.xml:822 +#, no-c-format +msgid "" +"What about the inverse mapping attribute? For you, and " +"for Java, a bi-directional link is simply a matter of setting the references " +"on both sides correctly. Hibernate however doesn't have enough information " +"to correctly arrange SQL INSERT and UPDATE statements (to avoid constraint violations), and needs some help to " +"handle bi-directional associations properly. Making one side of the " +"association inverse tells Hibernate to basically ignore " +"it, to consider it a mirror of the other side. That's " +"all that is necessary for Hibernate to work out all of the issues when " +"transformation a directional navigation model to a SQL database schema. The " +"rules you have to remember are straightforward: All bi-directional " +"associations need one side as inverse. In a one-to-many " +"association it has to be the many-side, in many-to-many association you can " +"pick either side, there is no difference." +msgstr "" +"inverse マッピング属性とはいったい何でしょうか? 開発者と" +"Javaにとっては、双方向リンクは単に両側の参照を正しく設定するということです。 " +"しかしHibernateは(制約違反を避けるために)SQLの INSERT " +"と UPDATE 文を正確に変更するための十分な情報を持っていない" +"ので、 双方向関連プロパティを扱うための何らかの助けを必要とします。 関連の片" +"側を inverse に設定することで、Hibernateは基本的には設定し" +"た側を無視し、 反対側の として考えます。 これだけで、" +"Hibernateは方向を持つナビゲーションモデルをSQLデータベーススキーマへ変換する" +"ときの すべての問題にうまく対処できます。 覚えておかなければならないルールは" +"簡単です。 双方向関連は必ず片側を inverse にする必要がある" +"ということです。 一対多関連ではそれは多側でなければなりません。 多対多関連で" +"はどちら側でも構いません。どちらでも違いはありません。" + +#. Tag: para +#: tutorial.xml:837 +#, no-c-format +msgid "Let's turn this into a small web application." msgstr "ではこれを小さなWebアプリケーションにしてみましょう。" -#: index.docbook:822 -msgid "What about the inverse mapping attribute? For you, and for Java, a bi-directional link is simply a matter of setting the references on both sides correctly. Hibernate however doesn't have enough information to correctly arrange SQL INSERT and UPDATE statements (to avoid constraint violations), and needs some help to handle bi-directional associations properly. Making one side of the association inverse tells Hibernate to basically ignore it, to consider it a mirror of the other side. That's all that is necessary for Hibernate to work out all of the issues when transformation a directional navigation model to a SQL database schema. The rules you have to remember are straightforward: All bi-directional associations need one side as inverse. In a one-to-many association it has to be the many-side, in many-to-many association you can pick either side, there is no difference." +#. Tag: title +#: tutorial.xml:844 +#, no-c-format +msgid "Part 3 - The EventManager web application" msgstr "パート3 - EventManager Webアプリケーション" -#: index.docbook:837 -msgid "Let's turn this into a small web application." -msgstr "HibernateのWebアプリケーションは、スタンドアローンのアプリケーションのように SessionTransaction を使用します。 しかしいくつかの一般的なパターンが役立ちます。 ここで EventManagerServlet を作成します。このサーブレットは、 データベースに格納した全てのイベントをリストにでき、さらにHTMLフォームから新しいイベントを入力できるものです。" +#. Tag: para +#: tutorial.xml:846 +#, no-c-format +msgid "" +"A Hibernate web application uses Session and " +"Transaction almost like a standalone application. " +"However, some common patterns are useful. We now write an " +"EventManagerServlet. This servlet can list all events " +"stored in the database, and it provides an HTML form to enter new events." +msgstr "" +"HibernateのWebアプリケーションは、スタンドアローンのアプリケーションのように " +"SessionTransaction を使用します。 " +"しかしいくつかの一般的なパターンが役立ちます。 ここで " +"EventManagerServlet を作成します。このサーブレットは、 " +"データベースに格納した全てのイベントをリストにでき、さらにHTMLフォームから新" +"しいイベントを入力できるものです。" -#: index.docbook:844 -msgid "Part 3 - The EventManager web application" +#. Tag: title +#: tutorial.xml:854 +#, no-c-format +msgid "Writing the basic servlet" msgstr "基本的なServletの記述" -#: index.docbook:846 -msgid "A Hibernate web application uses Session and Transaction almost like a standalone application. However, some common patterns are useful. We now write an EventManagerServlet. This servlet can list all events stored in the database, and it provides an HTML form to enter new events." -msgstr "新しいクラスを、ソースディレクトリの events パッケージに作成してください。" - -#: index.docbook:854 -msgid "Writing the basic servlet" -msgstr "" - "" - -#: index.docbook:856 -msgid "Create a new class in your source directory, in the events package:" -msgstr "ServletはHTTPの GET リクエストのみを処理するので、 doGet() を実装します。" - -#: index.docbook:861 +#. Tag: para +#: tutorial.xml:856 +#, no-c-format msgid "" - "" +"Create a new class in your source directory, in the events package:" msgstr "" - "" +"新しいクラスを、ソースディレクトリの events パッケージに作" +"成してください。" -#: index.docbook:863 -msgid "The servlet handles HTTP GET requests only, hence, the method we implement is doGet():" -msgstr "これは session-per-request というパターンです。 Servletがリクエストを受け取ると、 SessionFactorygetCurrentSession() の最初の呼び出しで、 Hibernateの新しい Session が開かれます。 そのときデータベーストランザクションが開始されます。 データの読み書きに関わらず、すべてのデータアクセスはトランザクション内で行います。 (アプリケーション内ではオートコミットモードを使用しません)。" - -#: index.docbook:868 +#. Tag: programlisting +#: tutorial.xml:861 +#, no-c-format msgid "" - "" -msgstr "次に、リクエストのアクションは処理され、レスポンスであるHTMLが描画されます。 これについてはすぐに説明します。" +"" +msgstr "" -#: index.docbook:870 -msgid "The pattern we are applying here is called session-per-request. When a request hits the servlet, a new Hibernate Session is opened through the first call to getCurrentSession() on the SessionFactory. Then a database transaction is started—all data access as to occur inside a transaction, no matter if data is read or written (we don't use the auto-commit mode in applications)." -msgstr "最後にリクエストの処理とHTML描画が完了したときに、作業単位(Unit of Work)を終了します。 もし処理や描画中に問題が発生した場合、exceptionが投げられてデータベーストランザクションをロールバックします。 これで session-per-request パターンが完了します。 全てのサーブレットにトランザクション境界のコードを書く代わりに、サーブレットフィルタに記述することも可能です。 Open Session in View と呼ばれるこのパターンについては、 HibernateのWebサイトやWikiを参照してください。 サーブレットではなくJSPでHTML描画をしようとすると、すぐにこのパターンについての情報が必要になるでしょう。" +#. Tag: para +#: tutorial.xml:863 +#, no-c-format +msgid "" +"The servlet handles HTTP GET requests only, hence, the " +"method we implement is doGet():" +msgstr "" +"ServletはHTTPの GET リクエストのみを処理するので、 " +"doGet() を実装します。" -#: index.docbook:879 -msgid "Do not use a new Hibernate Session for every database operation. Use one Hibernate Session that is scoped to the whole request. Use getCurrentSession(), so that it is automatically bound to the current Java thread." +#. Tag: programlisting +#: tutorial.xml:868 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: tutorial.xml:870 +#, fuzzy, no-c-format +msgid "" +"The pattern we are applying here is called session-per-request. When a request hits the servlet, a new Hibernate " +"Session is opened through the first call to " +"getCurrentSession() on the SessionFactory. Then a database transaction is started—all data access as to " +"occur inside a transaction, no matter if data is read or written (we don't " +"use the auto-commit mode in applications)." +msgstr "" +"これは session-per-request というパターンです。 Servlet" +"がリクエストを受け取ると、 SessionFactory の " +"getCurrentSession() の最初の呼び出しで、 Hibernateの新し" +"い Session が開かれます。 そのときデータベーストランザク" +"ションが開始されます。 データの読み書きに関わらず、すべてのデータアクセスはト" +"ランザクション内で行います。 (アプリケーション内ではオートコミットモードを使" +"用しません)。" + +#. Tag: para +#: tutorial.xml:879 +#, no-c-format +msgid "" +"Do not use a new Hibernate Session " +"for every database operation. Use one Hibernate Session " +"that is scoped to the whole request. Use getCurrentSession(), so that it is automatically bound to the current Java thread." +msgstr "" +"Do not use a new Hibernate Session " +"for every database operation. Use one Hibernate Session " +"that is scoped to the whole request. Use getCurrentSession(), so that it is automatically bound to the current Java thread." + +#. Tag: para +#: tutorial.xml:886 +#, no-c-format +msgid "" +"Next, the possible actions of the request are processed and the response " +"HTML is rendered. We'll get to that part soon." +msgstr "" +"次に、リクエストのアクションは処理され、レスポンスであるHTMLが描画されます。 " +"これについてはすぐに説明します。" + +#. Tag: para +#: tutorial.xml:891 +#, fuzzy, no-c-format +msgid "" +"Finally, the unit of work ends when processing and rendering is complete. If " +"any problem occured during processing or rendering, an exception will be " +"thrown and the database transaction rolled back. This completes the " +"session-per-request pattern. Instead of the transaction " +"demarcation code in every servlet you could also write a servlet filter. See " +"the Hibernate website and Wiki for more information about this pattern, " +"called Open Session in View—you'll need it as " +"soon as you consider rendering your view in JSP, not in a servlet." +msgstr "" +"最後にリクエストの処理とHTML描画が完了したときに、作業単位(Unit of Work)を終" +"了します。 もし処理や描画中に問題が発生した場合、exceptionが投げられてデータ" +"ベーストランザクションをロールバックします。 これで session-per-" +"request パターンが完了します。 全てのサーブレットにトランザクション" +"境界のコードを書く代わりに、サーブレットフィルタに記述することも可能です。 " +"Open Session in View と呼ばれるこのパターンについては、 " +"HibernateのWebサイトやWikiを参照してください。 サーブレットではなくJSPでHTML" +"描画をしようとすると、すぐにこのパターンについての情報が必要になるでしょう。" + +#. Tag: title +#: tutorial.xml:905 +#, no-c-format +msgid "Processing and rendering" msgstr "処理と描画" -#: index.docbook:886 -msgid "Next, the possible actions of the request are processed and the response HTML is rendered. We'll get to that part soon." +#. Tag: para +#: tutorial.xml:907 +#, no-c-format +msgid "" +"Let's implement the processing of the request and rendering of the page." msgstr "では、リクエストの処理とページの描画を実装します。" -#: index.docbook:891 -msgid "Finally, the unit of work ends when processing and rendering is complete. If any problem occured during processing or rendering, an exception will be thrown and the database transaction rolled back. This completes the session-per-request pattern. Instead of the transaction demarcation code in every servlet you could also write a servlet filter. See the Hibernate website and Wiki for more information about this pattern, called Open Session in View—you'll need it as soon as you consider rendering your view in JSP, not in a servlet." -msgstr "" - "Event Manager\"); \n" - " \n" - "// Handle actions \n" - "if ( \"store\".equals(request.getParameter(\"action\")) ) { \n" - " \n" - " String eventTitle = request.getParameter(\"eventTitle\"); \n" - " String eventDate = request.getParameter(\"eventDate\"); \n" - " \n" - " if ( \"\".equals(eventTitle) || \"\".equals(eventDate) ) { \n" - " out.println(\"Please enter event title and date.\"); \n" - " } else { \n" - " createAndStoreEvent(eventTitle, dateFormatter.parse(eventDate)); \n" - " out.println(\"Added event.\"); \n" - " } \n" - "} \n" - " \n" - "// Print page \n" - "printEventForm(out); \n" - "listEvents(out, dateFormatter); \n" - " \n" - "// Write HTML footer \n" - "out.println(\"\"); \n" - "out.flush(); \n" - "out.close();]]>" - -#: index.docbook:905 -msgid "Processing and rendering" -msgstr "JavaとHTMLが混在するコーディングスタイルは、より複雑なアプリケーションには適していないでしょう (このチュートリアルでは、基本的なHibernateのコンセプトを示しているだけであることを覚えておいてください)。 このコードはHTMLのヘッダーとフッターの記述です。 このページには、イベントを入力するHTMLフォームと、データベースにある全てのイベントのリストが表示されます。 最初のメソッドはごく単純なHTML出力です。" - -#: index.docbook:907 -msgid "Let's implement the processing of the request and rendering of the page." -msgstr "" - "Add new event:\"); \n" - " out.println(\"
\"); \n" - " out.println(\"Title:
\"); \n" - " out.println(\"Date (e.g. 24.12.2009):
\"); \n" - " out.println(\"\"); \n" - " out.println(\"
\"); \n" - "}]]>" - -#: index.docbook:911 +#. Tag: programlisting +#: tutorial.xml:911 +#, no-c-format msgid "" - "Event Manager\");\n" - "\n" - "// Handle actions\n" - "if ( \"store\".equals(request.getParameter(\"action\")) ) {\n" - "\n" - " String eventTitle = request.getParameter(\"eventTitle\");\n" - " String eventDate = request.getParameter(\"eventDate\");\n" - "\n" - " if ( \"\".equals(eventTitle) || \"\".equals(eventDate) ) {\n" - " out.println(\"Please enter event title and date.\");\n" - " } else {\n" - " createAndStoreEvent(eventTitle, dateFormatter.parse(eventDate));\n" - " out.println(\"Added event.\");\n" - " }\n" - "}\n" - "\n" - "// Print page\n" - "printEventForm(out);\n" - "listEvents(out, dateFormatter);\n" - "\n" - "// Write HTML footer\n" - "out.println(\"\");\n" - "out.flush();\n" - "out.close();]]>" -msgstr "listEvents() メソッドは、現在のスレッドに結びつく Hibernateの Session を使用して、クエリを実行します。" - -#: index.docbook:913 -msgid "Granted, this coding style with a mix of Java and HTML would not scale in a more complex application—keep in mind that we are only illustrating basic Hibernate concepts in this tutorial. The code prints an HTML header and a footer. Inside this page, an HTML form for event entry and a list of all events in the database are printed. The first method is trivial and only outputs HTML:" +"Event Manager\");\n" +"\n" +"// Handle actions\n" +"if ( \"store\".equals(request.getParameter(\"action\")) ) {\n" +"\n" +" String eventTitle = request.getParameter(\"eventTitle\");\n" +" String eventDate = request.getParameter(\"eventDate\");\n" +"\n" +" if ( \"\".equals(eventTitle) || \"\".equals(eventDate) ) {\n" +" out.println(\"Please enter event title and date.\");\n" +" } else {\n" +" createAndStoreEvent(eventTitle, dateFormatter.parse(eventDate));\n" +" out.println(\"Added event.\");\n" +" }\n" +"}\n" +"\n" +"// Print page\n" +"printEventForm(out);\n" +"listEvents(out, dateFormatter);\n" +"\n" +"// Write HTML footer\n" +"out.println(\"\");\n" +"out.flush();\n" +"out.close();]]>" msgstr "" - " 0) { \n" - " out.println(\"

Events in database:

\"); \n" - " out.println(\"\"); \n" - " out.println(\"\"); \n" - " out.println(\"\"); \n" - " out.println(\"\"); \n" - " out.println(\"\"); \n" - " for (Iterator it = result.iterator(); it.hasNext();) { \n" - " Event event = (Event) it.next(); \n" - " out.println(\"\"); \n" - " out.println(\"\"); \n" - " out.println(\"\"); \n" - " out.println(\"\"); \n" - " } \n" - " out.println(\"
Event titleEvent date
\" + event.getTitle() + \"\" + dateFormatter.format(event.getDate()) + \"
\"); \n" - " } \n" - "}]]>" -#: index.docbook:922 +#. Tag: para +#: tutorial.xml:913 +#, fuzzy, no-c-format msgid "" - "Add new event:\");\n" - " out.println(\"
\");\n" - " out.println(\"Title:
\");\n" - " out.println(\"Date (e.g. 24.12.2009):
\");\n" - " out.println(\"\");\n" - " out.println(\"
\");\n" - "}]]>" -msgstr "最後に、 store アクションが createAndStoreEvent() メソッドを 呼び出します。このメソッドでも現在のスレッドの Session を利用します。" - -#: index.docbook:924 -msgid "The listEvents() method uses the Hibernate Session bound to the current thread to execute a query:" +"Granted, this coding style with a mix of Java and HTML would not scale in a " +"more complex application—keep in mind that we are only illustrating " +"basic Hibernate concepts in this tutorial. The code prints an HTML header " +"and a footer. Inside this page, an HTML form for event entry and a list of " +"all events in the database are printed. The first method is trivial and only " +"outputs HTML:" msgstr "" - "" +"JavaとHTMLが混在するコーディングスタイルは、より複雑なアプリケーションには適" +"していないでしょう (このチュートリアルでは、基本的なHibernateのコンセプトを" +"示しているだけであることを覚えておいてください)。 このコードはHTMLのヘッダー" +"とフッターの記述です。 このページには、イベントを入力するHTMLフォームと、デー" +"タベースにある全てのイベントのリストが表示されます。 最初のメソッドはごく単純" +"なHTML出力です。" -#: index.docbook:930 +#. Tag: programlisting +#: tutorial.xml:922 +#, no-c-format msgid "" - " 0) {\n" - " out.println(\"

Events in database:

\");\n" - " out.println(\"\");\n" - " out.println(\"\");\n" - " out.println(\"\");\n" - " out.println(\"\");\n" - " out.println(\"\");\n" - " for (Iterator it = result.iterator(); it.hasNext();) {\n" - " Event event = (Event) it.next();\n" - " out.println(\"\");\n" - " out.println(\"\");\n" - " out.println(\"\");\n" - " out.println(\"\");\n" - " }\n" - " out.println(\"
Event titleEvent date
\" + event.getTitle() + \"\" + dateFormatter.format(event.getDate()) + \"
\");\n" - " }\n" - "}]]>" -msgstr "これでサーブレットの完成です。 サーブレットへのリクエストは、一つの SessionTransaction で処理されるでしょう。 最初のスタンドアローンのアプリケーションのように、 Hibernateは自動的にこれらのオブジェクトを実行するスレッドに結び付けることができます。 これにより、開発者が自由にコードをレイヤー分けでき、 好きな方法で SessionFactory へのアクセスができるようになります。 通常、開発者はより洗練されたデザインを使用して、データアクセスのコードを データアクセスオブジェクトに移動するでしょう(DAOパターン)。 より多くの例は、HibernateのWikiを参照してください。" +"Add new event:\");\n" +" out.println(\"
\");\n" +" out.println(\"Title:
\");\n" +" out.println(\"Date (e.g. 24.12.2009):
\");\n" +" out.println(\"\");\n" +" out.println(\"
\");\n" +"}]]>" +msgstr "" -#: index.docbook:932 -msgid "Finally, the store action is dispatched to the createAndStoreEvent() method, which also uses the Session of the current thread:" +#. Tag: para +#: tutorial.xml:924 +#, no-c-format +msgid "" +"The listEvents() method uses the Hibernate " +"Session bound to the current thread to execute a query:" +msgstr "" +"listEvents() メソッドは、現在のスレッドに結びつく " +"Hibernateの Session を使用して、クエリを実行します。" + +#. Tag: programlisting +#: tutorial.xml:930 +#, no-c-format +msgid "" +" 0) {\n" +" out.println(\"

Events in database:

\");\n" +" out.println(\"\");\n" +" out.println(\"\");\n" +" out.println(\"\");\n" +" out.println(\"\");\n" +" out.println(\"\");\n" +" for (Iterator it = result.iterator(); it.hasNext();) {\n" +" Event event = (Event) it.next();\n" +" out.println(\"\");\n" +" out.println(\"\");\n" +" out.println(\"\");\n" +" out.println(\"\");\n" +" }\n" +" out.println(\"
Event titleEvent date
\" + event.getTitle() + \"\" + dateFormatter.format(event.getDate()) + " +"\"
\");\n" +" }\n" +"}]]>" +msgstr "" + +#. Tag: para +#: tutorial.xml:932 +#, no-c-format +msgid "" +"Finally, the store action is dispatched to the " +"createAndStoreEvent() method, which also uses the " +"Session of the current thread:" +msgstr "" +"最後に、 store アクションが createAndStoreEvent()" +" メソッドを 呼び出します。このメソッドでも現在のスレッドの " +"Session を利用します。" + +#. Tag: programlisting +#: tutorial.xml:938 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: tutorial.xml:940 +#, no-c-format +msgid "" +"That's it, the servlet is complete. A request to the servlet will be " +"processed in a single Session and Transaction. As earlier in the standalone application, Hibernate can " +"automatically bind these ojects to the current thread of execution. This " +"gives you the freedom to layer your code and access the " +"SessionFactory in any way you like. Usually you'd use a " +"more sophisticated design and move the data access code into data access " +"objects (the DAO pattern). See the Hibernate Wiki for more examples." +msgstr "" +"これでサーブレットの完成です。 サーブレットへのリクエストは、一つの " +"SessionTransaction で処理されるで" +"しょう。 最初のスタンドアローンのアプリケーションのように、 Hibernateは自動的" +"にこれらのオブジェクトを実行するスレッドに結び付けることができます。 これによ" +"り、開発者が自由にコードをレイヤー分けでき、 好きな方法で " +"SessionFactory へのアクセスができるようになります。 通常、" +"開発者はより洗練されたデザインを使用して、データアクセスのコードを データアク" +"セスオブジェクトに移動するでしょう(DAOパターン)。 より多くの例は、Hibernate" +"のWikiを参照してください。" + +#. Tag: title +#: tutorial.xml:954 +#, no-c-format +msgid "Deploying and testing" msgstr "デプロイとテスト" -#: index.docbook:938 +#. Tag: para +#: tutorial.xml:956 +#, no-c-format msgid "" - "" -msgstr "このアプリケーションのデプロイのために、Webアーカイブ(WAR)を作成してください。 以下のAntターゲットを build.xml に加えてください。" - -#: index.docbook:940 -msgid "That's it, the servlet is complete. A request to the servlet will be processed in a single Session and Transaction. As earlier in the standalone application, Hibernate can automatically bind these ojects to the current thread of execution. This gives you the freedom to layer your code and access the SessionFactory in any way you like. Usually you'd use a more sophisticated design and move the data access code into data access objects (the DAO pattern). See the Hibernate Wiki for more examples." +"To deploy this application you have to create a web archive, a WAR. Add the " +"following Ant target to your build.xml:" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "]]>" +"このアプリケーションのデプロイのために、Webアーカイブ(WAR)を作成してくださ" +"い。 以下のAntターゲットを build.xml に加えてください。" -#: index.docbook:954 -msgid "Deploying and testing" -msgstr "このターゲットは hibernate-tutorial.war というファイルを プロジェクトディレクトリに作成します。 このファイルはすべてのライブラリと web.xml 記述子を含んでおり、 プロジェクトのベースディレクトリに置かれることを期待されます。" - -#: index.docbook:956 -msgid "To deploy this application you have to create a web archive, a WAR. Add the following Ant target to your build.xml:" +#. Tag: programlisting +#: tutorial.xml:961 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +"\n" +" \n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " Event Manager \n" - " events.EventManagerServlet \n" - " \n" - " \n" - " \n" - " Event Manager \n" - " /eventmanager \n" - " \n" - "]]>" -#: index.docbook:961 +#. Tag: para +#: tutorial.xml:963 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - "\n" - " \n" - " \n" - "]]>" -msgstr "Webアプリケーションのコンパイルとデプロイの前に、 jsdk.jar という 追加のライブラリが必要なことに注意してください。 これはJavaサーブレットの開発キットです。 もしまだこのライブラリを持っていないなら、Sunのウェブサイトで入手して、 ライブラリディレクトリにコピーしてください。 しかし、これはコンパイルにのみ使用され、WARパッケージからは除外されます。" +"This target creates a file called hibernate-tutorial.war " +"in your project directory. It packages all libraries and the web." +"xml descriptor, which is expected in the base directory of your " +"project:" +msgstr "" +"このターゲットは hibernate-tutorial.war というファイルを " +"プロジェクトディレクトリに作成します。 このファイルはすべてのライブラリと " +"web.xml 記述子を含んでおり、 プロジェクトのベースディレク" +"トリに置かれることを期待されます。" -#: index.docbook:963 -msgid "This target creates a file called hibernate-tutorial.war in your project directory. It packages all libraries and the web.xml descriptor, which is expected in the base directory of your project:" -msgstr "ビルドとデプロイのために、プロジェクトディレクトリで ant war を呼び出し、 hibernate-tutorial.war ファイルをTomcatの webapp ディレクトリにコピーしてください。 まだTomcatをインストールしていなければ、ダウンロードして、以下のインストールガイドに従ってください。 しかし、このアプリケーションのデプロイするために、Tomcatの設定を変更する必要はありません。" - -#: index.docbook:969 +#. Tag: programlisting +#: tutorial.xml:969 +#, no-c-format msgid "" - "\n" - "\n" - "\n" - " \n" - " Event Manager\n" - " events.EventManagerServlet\n" - " \n" - "\n" - " \n" - " Event Manager\n" - " /eventmanager\n" - " \n" - "]]>" -msgstr "一度デプロイしてTomcatを起動すれば、 http://localhost:8080/hibernate-tutorial/eventmanager で アプリケーションへのアクセスが可能です。 最初のリクエストが作成したサーブレットに渡ったときに、Tomcatのログで Hibernateの初期化処理を確認してください ( HibernateUtil 内の静的初期化ブロックが呼ばれています)。 また、exceptionが発生したなら詳細を確認してください。" +"\n" +"\n" +"\n" +" \n" +" Event Manager\n" +" events.EventManagerServlet\n" +" \n" +"\n" +" \n" +" Event Manager\n" +" /eventmanager\n" +" \n" +"]]>" +msgstr "" -#: index.docbook:971 -msgid "Before you compile and deploy the web application, note that an additional library is required: jsdk.jar. This is the Java servlet development kit, if you don't have this library already, get it from the Sun website and copy it to your library directory. However, it will be only used for compliation and excluded from the WAR package." -msgstr "要約" +#. Tag: para +#: tutorial.xml:971 +#, no-c-format +msgid "" +"Before you compile and deploy the web application, note that an additional " +"library is required: jsdk.jar. This is the Java servlet " +"development kit, if you don't have this library already, get it from the Sun " +"website and copy it to your library directory. However, it will be only used " +"for compliation and excluded from the WAR package." +msgstr "" +"Webアプリケーションのコンパイルとデプロイの前に、 jsdk.jar という 追加のライブラリが必要なことに注意してください。 これはJava" +"サーブレットの開発キットです。 もしまだこのライブラリを持っていないなら、Sun" +"のウェブサイトで入手して、 ライブラリディレクトリにコピーしてください。 しか" +"し、これはコンパイルにのみ使用され、WARパッケージからは除外されます。" -#: index.docbook:979 -msgid "To build and deploy call ant war in your project directory and copy the hibernate-tutorial.war file into your Tomcat webapp directory. If you don't have Tomcat installed, download it and follow the installation instructions. You don't have to change any Tomcat configuration to deploy this application though." -msgstr "このチュートリアルでは、簡単なスタンドアローンのHibernateアプリケーションと 小規模のWebアプリケーションを書くための基本を紹介しました。" +#. Tag: para +#: tutorial.xml:979 +#, no-c-format +msgid "" +"To build and deploy call ant war in your project " +"directory and copy the hibernate-tutorial.war file into " +"your Tomcat webapp directory. If you don't have Tomcat " +"installed, download it and follow the installation instructions. You don't " +"have to change any Tomcat configuration to deploy this application though." +msgstr "" +"ビルドとデプロイのために、プロジェクトディレクトリで ant war を呼び出し、 hibernate-tutorial.war ファイルを" +"Tomcatの webapp ディレクトリにコピーしてください。 まだ" +"Tomcatをインストールしていなければ、ダウンロードして、以下のインストールガイ" +"ドに従ってください。 しかし、このアプリケーションのデプロイするために、Tomcat" +"の設定を変更する必要はありません。" -#: index.docbook:987 -msgid "Once deployed and Tomcat is running, access the application at http://localhost:8080/hibernate-tutorial/eventmanager. Make sure you watch the Tomcat log to see Hibernate initialize when the first request hits your servlet (the static initializer in HibernateUtil is called) and to get the detailed output if any exceptions occurs." -msgstr "もうHibernateに自信があれば、リファレンスドキュメントの目次に目を通して、 面白そうだと思うトピックを探してください。 最も頻繁に質問があるのは、トランザクション処理()、 フェッチのパフォーマンス()、 APIの使い方()とクエリ ()です。" +#. Tag: para +#: tutorial.xml:987 +#, no-c-format +msgid "" +"Once deployed and Tomcat is running, access the application at " +"http://localhost:8080/hibernate-tutorial/eventmanager. " +"Make sure you watch the Tomcat log to see Hibernate initialize when the " +"first request hits your servlet (the static initializer in " +"HibernateUtil is called) and to get the detailed output " +"if any exceptions occurs." +msgstr "" +"一度デプロイしてTomcatを起動すれば、 http://localhost:8080/" +"hibernate-tutorial/eventmanager で アプリケーションへのアクセスが可" +"能です。 最初のリクエストが作成したサーブレットに渡ったときに、Tomcatのログ" +"で Hibernateの初期化処理を確認してください ( HibernateUtil 内の静的初期化ブロックが呼ばれています)。 また、exceptionが発生した" +"なら詳細を確認してください。" -#: index.docbook:1000 +#. Tag: title +#: tutorial.xml:1000 +#, no-c-format msgid "Summary" -msgstr "さらに(特別な)チュートリアルが必要なら、Hibernateウェブサイトを忘れずにチェックしてください。" +msgstr "要約" -#: index.docbook:1002 -msgid "This tutorial covered the basics of writing a simple standalone Hibernate application and a small web application." +#. Tag: para +#: tutorial.xml:1002 +#, no-c-format +msgid "" +"This tutorial covered the basics of writing a simple standalone Hibernate " +"application and a small web application." msgstr "" +"このチュートリアルでは、簡単なスタンドアローンのHibernateアプリケーションと " +"小規模のWebアプリケーションを書くための基本を紹介しました。" -#: index.docbook:1007 -msgid "If you already feel confident with Hibernate, continue browsing through the reference documentation table of contents for topics you find interesting - most asked are transactional processing (), fetch performance (), or the usage of the API () and the query features ()." +#. Tag: para +#: tutorial.xml:1007 +#, no-c-format +msgid "" +"If you already feel confident with Hibernate, continue browsing through the " +"reference documentation table of contents for topics you find interesting - " +"most asked are transactional processing (), " +"fetch performance (), or the usage of the API " +"() and the query features ()." msgstr "" +"もうHibernateに自信があれば、リファレンスドキュメントの目次に目を通して、 面" +"白そうだと思うトピックを探してください。 最も頻繁に質問があるのは、トランザク" +"ション処理()、 フェッチのパフォーマンス" +"()、 APIの使い方()とクエリ ()で" +"す。" -#: index.docbook:1015 -msgid "Don't forget to check the Hibernate website for more (specialized) tutorials." +#. Tag: para +#: tutorial.xml:1015 +#, no-c-format +msgid "" +"Don't forget to check the Hibernate website for more (specialized) tutorials." msgstr "" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" - +"さらに(特別な)チュートリアルが必要なら、Hibernateウェブサイトを忘れずに" +"チェックしてください。" diff --git a/documentation/manual/translations/ja-JP/content/xml.po b/documentation/manual/translations/ja-JP/content/xml.po index d4e2b8a577..0f64abc95d 100644 --- a/documentation/manual/translations/ja-JP/content/xml.po +++ b/documentation/manual/translations/ja-JP/content/xml.po @@ -1,420 +1,442 @@ -#, fuzzy msgid "" msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: http://bugs.kde.org\n" +"POT-Creation-Date: 2007-10-25 07:48+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" -"Content-Type: text/plain; charset=utf-8\n" -#: index.docbook:5 +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Tag: title +#: xml.xml:5 +#, no-c-format msgid "XML Mapping" msgstr "XMLマッピング" -#: index.docbook:7 -msgid "Note that this is an experimental feature in Hibernate 3.0 and is under extremely active development." -msgstr "XMLマッピングはHibernate3.0では試験的な機能であり、非常に活動的に開発中です。" +#. Tag: emphasis +#: xml.xml:7 +#, no-c-format +msgid "" +"Note that this is an experimental feature in Hibernate 3.0 and is under " +"extremely active development." +msgstr "" +"XMLマッピングはHibernate3.0では試験的な機能であり、非常に活動的に開発中です。" -#: index.docbook:13 +#. Tag: title +#: xml.xml:13 +#, no-c-format msgid "Working with XML data" msgstr "XMLデータでの作業" -#: index.docbook:15 -msgid "Hibernate lets you work with persistent XML data in much the same way you work with persistent POJOs. A parsed XML tree can be thought of as just another way to represent the relational data at the object level, instead of POJOs." -msgstr "Hibernateでは永続性のPOJOを使って作業するのとほぼ同じようなやり方で、 永続性のXMLデータを使って作業できます。" +#. Tag: para +#: xml.xml:15 +#, no-c-format +msgid "" +"Hibernate lets you work with persistent XML data in much the same way you " +"work with persistent POJOs. A parsed XML tree can be thought of as just " +"another way to represent the relational data at the object level, instead of " +"POJOs." +msgstr "" +"Hibernateでは永続性のPOJOを使って作業するのとほぼ同じようなやり方で、 永続性" +"のXMLデータを使って作業できます。" -#: index.docbook:22 -msgid "Hibernate supports dom4j as API for manipulating XML trees. You can write queries that retrieve dom4j trees from the database and have any modification you make to the tree automatically synchronized to the database. You can even take an XML document, parse it using dom4j, and write it to the database with any of Hibernate's basic operations: persist(), saveOrUpdate(), merge(), delete(), replicate() (merging is not yet supported)." -msgstr "HibernateはXMLツリーを操作するためのAPIとしてdom4jをサポートしています。 データベースからdom4jのツリーを復元するクエリを書くことができ、 ツリーに対して行った修正は自動的にデータベースと同期されます。 またXMLドキュメントを取得することができ、dom4jを使ってドキュメントをパースし、 Hibernateの任意の基本操作を使ってデータベースへ書き込むことができます。: つまり、persist(), saveOrUpdate(), merge(), delete(), replicate() 操作です(マージはまだサポートしていません)。" +#. Tag: para +#: xml.xml:22 +#, no-c-format +msgid "" +"Hibernate supports dom4j as API for manipulating XML trees. You can write " +"queries that retrieve dom4j trees from the database and have any " +"modification you make to the tree automatically synchronized to the " +"database. You can even take an XML document, parse it using dom4j, and write " +"it to the database with any of Hibernate's basic operations: persist" +"(), saveOrUpdate(), merge(), delete(), replicate() (merging is not " +"yet supported)." +msgstr "" +"HibernateはXMLツリーを操作するためのAPIとしてdom4jをサポートしています。 デー" +"タベースからdom4jのツリーを復元するクエリを書くことができ、 ツリーに対して" +"行った修正は自動的にデータベースと同期されます。 またXMLドキュメントを取得す" +"ることができ、dom4jを使ってドキュメントをパースし、 Hibernateの任意の基本操作" +"を使ってデータベースへ書き込むことができます。: つまり、persist(), " +"saveOrUpdate(), merge(), delete(), replicate() 操作です(マージはま" +"だサポートしていません)。" -#: index.docbook:32 -msgid "This feature has many applications including data import/export, externalization of entity data via JMS or SOAP and XSLT-based reporting." -msgstr "データのインポート/エクスポート、 JMSによるエンティティデータの外部化やSOAP、XSLTベースのレポートなど、 この機能には多くの用途があります。" +#. Tag: para +#: xml.xml:32 +#, no-c-format +msgid "" +"This feature has many applications including data import/export, " +"externalization of entity data via JMS or SOAP and XSLT-based reporting." +msgstr "" +"データのインポート/エクスポート、 JMSによるエンティティデータの外部化やSOAP、" +"XSLTベースのレポートなど、 この機能には多くの用途があります。" -#: index.docbook:37 -msgid "A single mapping may be used to simultaneously map properties of a class and nodes of an XML document to the database, or, if there is no class to map, it may be used to map just the XML." -msgstr "単一のマッピングは、クラスのプロパティとXMLドキュメントのノードを 同時にデータベースへマッピングするために使うことができます。 またマッピングするクラスがなければ、 XMLだけをマッピングするために使うことができます。" +#. Tag: para +#: xml.xml:37 +#, no-c-format +msgid "" +"A single mapping may be used to simultaneously map properties of a class and " +"nodes of an XML document to the database, or, if there is no class to map, " +"it may be used to map just the XML." +msgstr "" +"単一のマッピングは、クラスのプロパティとXMLドキュメントのノードを 同時にデー" +"タベースへマッピングするために使うことができます。 またマッピングするクラスが" +"なければ、 XMLだけをマッピングするために使うことができます。" -#: index.docbook:44 +#. Tag: title +#: xml.xml:44 +#, no-c-format msgid "Specifying XML and class mapping together" msgstr "XMLとクラスのマッピングを同時に指定する" -#: index.docbook:46 +#. Tag: para +#: xml.xml:46 +#, no-c-format msgid "Here is an example of mapping a POJO and XML simultaneously:" msgstr "これはPOJOとXMLを同時にマッピングする例です。:" -#: index.docbook:50 +#. Tag: programlisting +#: xml.xml:50 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ... \n" - " \n" - "]]>" -#: index.docbook:54 +#. Tag: title +#: xml.xml:54 +#, no-c-format msgid "Specifying only an XML mapping" msgstr "XMLマッピングだけを指定する" -#: index.docbook:56 +#. Tag: para +#: xml.xml:56 +#, no-c-format msgid "Here is an example where there is no POJO class:" msgstr "これはPOJOクラスがないマッピングの例です。:" -#: index.docbook:60 +#. Tag: programlisting +#: xml.xml:60 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +"]]>" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ... \n" - " \n" - "]]>" -#: index.docbook:62 -msgid "This mapping allows you to access the data as a dom4j tree, or as a graph of property name/value pairs (java Maps). The property names are purely logical constructs that may be referred to in HQL queries." -msgstr "このマッピングにより、dom4jツリーか、 プロパティ名/値の組のグラフ(javaの Map)として データにアクセスできます。 プロパティの名前は、HQLクエリー内で参照できる純粋な論理構造です。" +#. Tag: para +#: xml.xml:62 +#, no-c-format +msgid "" +"This mapping allows you to access the data as a dom4j tree, or as a graph of " +"property name/value pairs (java Maps). The property names " +"are purely logical constructs that may be referred to in HQL queries." +msgstr "" +"このマッピングにより、dom4jツリーか、 プロパティ名/値の組のグラフ(javaの " +"Map)として データにアクセスできます。 プロパティの名前" +"は、HQLクエリー内で参照できる純粋な論理構造です。" -#: index.docbook:73 +#. Tag: title +#: xml.xml:73 +#, no-c-format msgid "XML mapping metadata" msgstr "XMLマッピングのメタデータ" -#: index.docbook:75 -msgid "Many Hibernate mapping elements accept the node attribute. This let's you specify the name of an XML attribute or element that holds the property or entity data. The format of the node attribute must be one of the following:" -msgstr "多くのHibernateのマッピング要素は node 属性が使用できます。 これによりXML属性の名前やプロパティやエンティティデータを保持する要素を指定できます。 node 属性のフォーマットは以下の中の1つでなければなりません。:" +#. Tag: para +#: xml.xml:75 +#, no-c-format +msgid "" +"Many Hibernate mapping elements accept the node " +"attribute. This let's you specify the name of an XML attribute or element " +"that holds the property or entity data. The format of the node attribute must be one of the following:" +msgstr "" +"多くのHibernateのマッピング要素は node 属性が使用できま" +"す。 これによりXML属性の名前やプロパティやエンティティデータを保持する要素を" +"指定できます。 node 属性のフォーマットは以下の中の1つでな" +"ければなりません。:" -#: index.docbook:84 +#. Tag: para +#: xml.xml:84 +#, no-c-format msgid "\"element-name\" - map to the named XML element" -msgstr "\"element-name\" - 指定したXML要素へマッピングします" +msgstr "" +"\"element-name\" - 指定したXML要素へマッピングします" -#: index.docbook:87 +#. Tag: para +#: xml.xml:87 +#, no-c-format msgid "\"@attribute-name\" - map to the named XML attribute" -msgstr "\"@attribute-name\" - 指定したXML属性へマッピングします" +msgstr "" +"\"@attribute-name\" - 指定したXML属性へマッピングします" -#: index.docbook:90 +#. Tag: para +#: xml.xml:90 +#, no-c-format msgid "\".\" - map to the parent element" msgstr "\".\" - 親要素へマッピングします" -#: index.docbook:93 -msgid "\"element-name/@attribute-name\" - map to the named attribute of the named element" -msgstr "\"element-name/@attribute-name\" - 指定したエレメントの指定した属性へマッピングします" - -#: index.docbook:100 -msgid "For collections and single valued associations, there is an additional embed-xml attribute. If embed-xml=\"true\", the default, the XML tree for the associated entity (or collection of value type) will be embedded directly in the XML tree for the entity that owns the association. Otherwise, if embed-xml=\"false\", then only the referenced identifier value will appear in the XML for single point associations and collections will simply not appear at all." -msgstr "コレクションと単一の値の関連に対して、 おまけの embed-xml 属性があります。 デフォルトの embed-xml=\"true\" と設定した場合、 関連するエンティティ(値型のコレクション)のXMLツリーは、 直接関連を所有するエンティティのXMLツリー内に埋め込まれます。 反対に、embed-xml=\"false\" と設定した場合、 参照される識別子の値だけが多重度1側の関連に対するXMLに現れ、 単純にコレクションはまったく現れなくなります。" - -#: index.docbook:110 -msgid "You should be careful not to leave embed-xml=\"true\" for too many associations, since XML does not deal well with circularity!" -msgstr "あまりに多くの関連に対して embed-xml=\"true\" としたままにするのは注意すべきです。 XMLは循環をうまく扱えません。" - -#: index.docbook:115 +#. Tag: para +#: xml.xml:93 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ...\n" - " \n" - "]]>" +"\"element-name/@attribute-name\" - map to the named " +"attribute of the named element" msgstr "" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " ... \n" - " \n" - "]]>" +"\"element-name/@attribute-name\" - 指定したエレメントの指" +"定した属性へマッピングします" -#: index.docbook:117 -msgid "in this case, we have decided to embed the collection of account ids, but not the actual account data. The following HQL query:" -msgstr "この例では、実際のaccountのデータではなく、 accountのidのコレクションを埋め込むことにしました。 続きのHQLクエリです:" +#. Tag: para +#: xml.xml:100 +#, no-c-format +msgid "" +"For collections and single valued associations, there is an additional " +"embed-xml attribute. If embed-xml=\"true\", the default, the XML tree for the associated entity (or collection " +"of value type) will be embedded directly in the XML tree for the entity that " +"owns the association. Otherwise, if embed-xml=\"false\", " +"then only the referenced identifier value will appear in the XML for single " +"point associations and collections will simply not appear at all." +msgstr "" +"コレクションと単一の値の関連に対して、 おまけの embed-xml " +"属性があります。 デフォルトの embed-xml=\"true\" と設定し" +"た場合、 関連するエンティティ(値型のコレクション)のXMLツリーは、 直接関連を所" +"有するエンティティのXMLツリー内に埋め込まれます。 反対に、embed-xml=" +"\"false\" と設定した場合、 参照される識別子の値だけが多重度1側の関" +"連に対するXMLに現れ、 単純にコレクションはまったく現れなくなります。" -#: index.docbook:122 -msgid "" -msgstr "" +#. Tag: para +#: xml.xml:110 +#, no-c-format +msgid "" +"You should be careful not to leave embed-xml=\"true\" for " +"too many associations, since XML does not deal well with circularity!" +msgstr "" +"あまりに多くの関連に対して embed-xml=\"true\" としたままに" +"するのは注意すべきです。 XMLは循環をうまく扱えません。" -#: index.docbook:124 +#. Tag: programlisting +#: xml.xml:115 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" \n" +" ...\n" +" \n" +"]]>" +msgstr "" + +#. Tag: para +#: xml.xml:117 +#, no-c-format +msgid "" +"in this case, we have decided to embed the collection of account ids, but " +"not the actual account data. The following HQL query:" +msgstr "" +"この例では、実際のaccountのデータではなく、 accountのidのコレクションを埋め込" +"むことにしました。 続きのHQLクエリです:" + +#. Tag: programlisting +#: xml.xml:122 +#, no-c-format +msgid "" +"" +msgstr "" + +#. Tag: para +#: xml.xml:124 +#, no-c-format msgid "Would return datasets such as this:" msgstr "このようなデータセットを返すでしょう" -#: index.docbook:128 +#. Tag: programlisting +#: xml.xml:128 +#, no-c-format msgid "" - "\n" - " 987632567\n" - " 985612323\n" - " \n" - " Gavin\n" - " A\n" - " King\n" - " \n" - " ...\n" - "]]>" +"\n" +" 987632567\n" +" 985612323\n" +" \n" +" Gavin\n" +" A\n" +" King\n" +" \n" +" ...\n" +"]]>" msgstr "" - " \n" - " 987632567 \n" - " 985612323 \n" - " \n" - " Gavin \n" - " A \n" - " King \n" - " \n" - " ... \n" - "]]>" -#: index.docbook:130 -msgid "If you set embed-xml=\"true\" on the <one-to-many> mapping, the data might look more like this:" -msgstr "<one-to-many> マッピングで embed-xml=\"true\" と設定した場合、 データはこのようになるでしょう。" - -#: index.docbook:135 +#. Tag: para +#: xml.xml:130 +#, no-c-format msgid "" - "\n" - " \n" - " \n" - " 100.29\n" - " \n" - " \n" - " \n" - " -2370.34\n" - " \n" - " \n" - " Gavin\n" - " A\n" - " King\n" - " \n" - " ...\n" - "]]>" +"If you set embed-xml=\"true\" on the <one-to-" +"many> mapping, the data might look more like this:" msgstr "" - " \n" - " \n" - " \n" - " 100.29 \n" - " \n" - " \n" - " \n" - " -2370.34 \n" - " \n" - " \n" - " Gavin \n" - " A \n" - " King \n" - " \n" - " ... \n" - "]]>" +"<one-to-many> マッピングで embed-xml=\"true" +"\" と設定した場合、 データはこのようになるでしょう。" -#: index.docbook:141 +#. Tag: programlisting +#: xml.xml:135 +#, no-c-format +msgid "" +"\n" +" \n" +" \n" +" 100.29\n" +" \n" +" \n" +" \n" +" -2370.34\n" +" \n" +" \n" +" Gavin\n" +" A\n" +" King\n" +" \n" +" ...\n" +"]]>" +msgstr "" + +#. Tag: title +#: xml.xml:141 +#, no-c-format msgid "Manipulating XML data" msgstr "XMLデータを扱う" -#: index.docbook:143 -msgid "Let's rearead and update XML documents in the application. We do this by obtaining a dom4j session:" -msgstr "XMLドキュメントを、アプリケーション内で再読み込みや更新をしてみましょう。 以下ではdom4jのセッションを取得することで行います。:" - -#: index.docbook:148 +#. Tag: para +#: xml.xml:143 +#, no-c-format msgid "" - "" +"Let's rearead and update XML documents in the application. We do this by " +"obtaining a dom4j session:" msgstr "" - "" +"XMLドキュメントを、アプリケーション内で再読み込みや更新をしてみましょう。 以" +"下ではdom4jのセッションを取得することで行います。:" -#: index.docbook:150 +#. Tag: programlisting +#: xml.xml:148 +#, no-c-format msgid "" - "" +"" msgstr "" - "" -#: index.docbook:152 -msgid "It is extremely useful to combine this feature with Hibernate's replicate() operation to implement XML-based data import/export." -msgstr "XMLベースのデータのインポート/エクスポートを実装するために、 Hibernateの replicate() 操作をこの機能を結びつけるのは 極めて有効です。" - -msgid "ROLES_OF_TRANSLATORS" -msgstr "" - -msgid "CREDIT_FOR_TRANSLATORS" -msgstr "" +#. Tag: programlisting +#: xml.xml:150 +#, no-c-format +msgid "" +"" +msgstr "" +#. Tag: para +#: xml.xml:152 +#, no-c-format +msgid "" +"It is extremely useful to combine this feature with Hibernate's " +"replicate() operation to implement XML-based data import/" +"export." +msgstr "" +"XMLベースのデータのインポート/エクスポートを実装するために、 Hibernateの " +"replicate() 操作をこの機能を結びつけるのは 極めて有効で" +"す。"