'converted docs for publican compatibility and added translations from Core 3.3.2.GA branch'
git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@18776 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
parent
7d0258ec55
commit
9400bc277c
|
@ -38,13 +38,13 @@
|
|||
</executions>
|
||||
|
||||
<configuration>
|
||||
<sourceDocumentName>Hibernate_Reference.xml</sourceDocumentName>
|
||||
<sourceDocumentName>HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.xml</sourceDocumentName>
|
||||
<masterTranslation>en-US</masterTranslation>
|
||||
<translations>
|
||||
<translation>es-ES</translation>
|
||||
<translation>fr-FR</translation>
|
||||
<translation>ja-JP</translation>
|
||||
<translation>ko-KR</translation>
|
||||
<!-- <translation>ko-KR</translation> -->
|
||||
<translation>pt-BR</translation>
|
||||
<translation>zh-CN</translation>
|
||||
</translations>
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
<?xml version='1.0' encoding='UTF-8' ?>
|
||||
<!--
|
||||
~ Hibernate, Relational Persistence for Idiomatic Java
|
||||
~
|
||||
|
@ -21,8 +22,8 @@
|
|||
~ 51 Franklin Street, Fifth Floor
|
||||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
|
||||
<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
]>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Gavin</firstname>
|
||||
|
|
|
@ -23,13 +23,17 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="architecture">
|
||||
|
||||
<title>Architecture</title>
|
||||
|
||||
<sect1 id="architecture-overview" revision="1">
|
||||
<section id="architecture-overview" revision="1">
|
||||
<title>Overview</title>
|
||||
|
||||
<para>
|
||||
|
@ -38,10 +42,10 @@
|
|||
|
||||
<mediaobject>
|
||||
<imageobject role="fo">
|
||||
<imagedata fileref="../images/overview.svg" format="SVG" align="center"/>
|
||||
<imagedata fileref="images/overview.svg" format="SVG" align="center"/>
|
||||
</imageobject>
|
||||
<imageobject role="html">
|
||||
<imagedata fileref="../images/overview.png" format="PNG" align="center"/>
|
||||
<imagedata fileref="images/overview.png" format="PNG" align="center"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
|
||||
|
@ -64,10 +68,10 @@
|
|||
|
||||
<mediaobject>
|
||||
<imageobject role="fo">
|
||||
<imagedata fileref="../images/lite.svg" format="SVG" align="center"/>
|
||||
<imagedata fileref="images/lite.svg" format="SVG" align="center"/>
|
||||
</imageobject>
|
||||
<imageobject role="html">
|
||||
<imagedata fileref="../images/lite.png" format="PNG" align="center"/>
|
||||
<imagedata fileref="images/lite.png" format="PNG" align="center"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
|
||||
|
@ -78,10 +82,10 @@
|
|||
|
||||
<mediaobject>
|
||||
<imageobject role="fo">
|
||||
<imagedata fileref="../images/full_cream.svg" format="SVG" align="center"/>
|
||||
<imagedata fileref="images/full_cream.svg" format="SVG" align="center"/>
|
||||
</imageobject>
|
||||
<imageobject role="html">
|
||||
<imagedata fileref="../images/full_cream.png" format="PNG" align="center"/>
|
||||
<imagedata fileref="images/full_cream.png" format="PNG" align="center"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
|
||||
|
@ -185,9 +189,9 @@
|
|||
<literal>Transaction</literal>/<literal>TransactionFactory</literal> and/or
|
||||
<literal>ConnectionProvider</literal> APIs to communicate with JTA or JDBC directly.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="architecture-states" revision="1">
|
||||
<section id="architecture-states" revision="1">
|
||||
<title>Instance states</title>
|
||||
<para>
|
||||
An instance of a persistent class can be in one of three different states. These states are
|
||||
|
@ -235,9 +239,9 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="architecture-jmx" revision="1">
|
||||
<section id="architecture-jmx" revision="1">
|
||||
<title>JMX Integration</title>
|
||||
|
||||
<para>
|
||||
|
@ -285,17 +289,17 @@
|
|||
Another feature available as a JMX service is runtime Hibernate statistics. See
|
||||
<xref linkend="configuration-optional-statistics"/> for more information.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="architecture-jca" revision="1">
|
||||
<section id="architecture-jca" revision="1">
|
||||
<title>JCA Support</title>
|
||||
<para>
|
||||
Hibernate can also be configured as a JCA connector. Please see the website for more
|
||||
information. Please note, however, that at this stage Hibernate JCA support is under development.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="architecture-current-session" revision="2">
|
||||
<section id="architecture-current-session" revision="2">
|
||||
<title>Contextual sessions</title>
|
||||
<para>
|
||||
Most applications using Hibernate need some form of "contextual" session, where a given
|
||||
|
@ -379,7 +383,7 @@
|
|||
short names: "jta", "thread", and "managed".
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -23,13 +23,17 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="associations">
|
||||
|
||||
<title>Association Mappings</title>
|
||||
|
||||
<sect1 id="assoc-intro" revision="1">
|
||||
<section id="assoc-intro" revision="1">
|
||||
<title>Introduction</title>
|
||||
|
||||
<para>
|
||||
|
@ -52,12 +56,12 @@
|
|||
nullability constraints.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="assoc-unidirectional" revision="1">
|
||||
<section id="assoc-unidirectional" revision="1">
|
||||
<title>Unidirectional associations</title>
|
||||
|
||||
<sect2 id="assoc-unidirectional-m21">
|
||||
<section id="assoc-unidirectional-m21">
|
||||
<title>Many-to-one</title>
|
||||
|
||||
<para>
|
||||
|
@ -84,9 +88,9 @@ create table Person ( personId bigint not null primary key, addressId bigint not
|
|||
create table Address ( addressId bigint not null primary key )
|
||||
]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="assoc-unidirectional-121">
|
||||
<section id="assoc-unidirectional-121">
|
||||
<title>One-to-one</title>
|
||||
|
||||
<para>
|
||||
|
@ -139,9 +143,9 @@ create table Person ( personId bigint not null primary key )
|
|||
create table Address ( personId bigint not null primary key )
|
||||
]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="assoc-unidirectional-12m">
|
||||
<section id="assoc-unidirectional-12m">
|
||||
<title>One-to-many</title>
|
||||
|
||||
<para>
|
||||
|
@ -174,14 +178,14 @@ create table Address ( addressId bigint not null primary key, personId bigint no
|
|||
You should instead use a join table for this kind of association.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="assoc-unidirectional-join" revision="1">
|
||||
<section id="assoc-unidirectional-join" revision="1">
|
||||
<title>Unidirectional associations with join tables</title>
|
||||
|
||||
<sect2 id="assoc-unidirectional-join-12m">
|
||||
<section id="assoc-unidirectional-join-12m">
|
||||
<title>One-to-many</title>
|
||||
|
||||
<para>
|
||||
|
@ -213,9 +217,9 @@ create table PersonAddress ( personId not null, addressId bigint not null primar
|
|||
create table Address ( addressId bigint not null primary key )
|
||||
]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="assoc-unidirectional-join-m21">
|
||||
<section id="assoc-unidirectional-join-m21">
|
||||
<title>Many-to-one</title>
|
||||
|
||||
<para>
|
||||
|
@ -247,9 +251,9 @@ create table PersonAddress ( personId bigint not null primary key, addressId big
|
|||
create table Address ( addressId bigint not null primary key )
|
||||
]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="assoc-unidirectional-join-121">
|
||||
<section id="assoc-unidirectional-join-121">
|
||||
<title>One-to-one</title>
|
||||
|
||||
<para>
|
||||
|
@ -283,9 +287,9 @@ create table PersonAddress ( personId bigint not null primary key, addressId big
|
|||
create table Address ( addressId bigint not null primary key )
|
||||
]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="assoc-unidirectional-join-m2m">
|
||||
<section id="assoc-unidirectional-join-m2m">
|
||||
<title>Many-to-many</title>
|
||||
|
||||
<para>
|
||||
|
@ -314,14 +318,14 @@ create table PersonAddress ( personId bigint not null, addressId bigint not null
|
|||
create table Address ( addressId bigint not null primary key )
|
||||
]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="assoc-bidirectional" revision="1">
|
||||
<section id="assoc-bidirectional" revision="1">
|
||||
<title>Bidirectional associations</title>
|
||||
|
||||
<sect2 id="assoc-bidirectional-m21" revision="2">
|
||||
<section id="assoc-bidirectional-m21" revision="2">
|
||||
<title>one-to-many / many-to-one</title>
|
||||
|
||||
<para>
|
||||
|
@ -392,9 +396,9 @@ create table Address ( addressId bigint not null primary key )
|
|||
element.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="assoc-bidirectional-121">
|
||||
<section id="assoc-bidirectional-121">
|
||||
<title>One-to-one</title>
|
||||
|
||||
<para>
|
||||
|
@ -450,14 +454,14 @@ create table Person ( personId bigint not null primary key )
|
|||
create table Address ( personId bigint not null primary key )
|
||||
]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="assoc-bidirectional-join" revision="1">
|
||||
<section id="assoc-bidirectional-join" revision="1">
|
||||
<title>Bidirectional associations with join tables</title>
|
||||
|
||||
<sect2 id="assoc-bidirectional-join-12m">
|
||||
<section id="assoc-bidirectional-join-12m">
|
||||
<title>one-to-many / many-to-one</title>
|
||||
|
||||
<para>
|
||||
|
@ -498,9 +502,9 @@ create table PersonAddress ( personId bigint not null, addressId bigint not null
|
|||
create table Address ( addressId bigint not null primary key )
|
||||
]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="assoc-bidirectional-join-121">
|
||||
<section id="assoc-bidirectional-join-121">
|
||||
<title>one to one</title>
|
||||
|
||||
<para>
|
||||
|
@ -544,9 +548,9 @@ create table PersonAddress ( personId bigint not null primary key, addressId big
|
|||
create table Address ( addressId bigint not null primary key )
|
||||
]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="assoc-bidirectional-join-m2m" revision="1">
|
||||
<section id="assoc-bidirectional-join-m2m" revision="1">
|
||||
<title>Many-to-many</title>
|
||||
|
||||
<para>
|
||||
|
@ -581,11 +585,11 @@ create table PersonAddress ( personId bigint not null, addressId bigint not null
|
|||
create table Address ( addressId bigint not null primary key )
|
||||
]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="assoc-complex">
|
||||
<section id="assoc-complex">
|
||||
<title>More complex association mappings</title>
|
||||
|
||||
<para>
|
||||
|
@ -644,7 +648,7 @@ create table Address ( addressId bigint not null primary key )
|
|||
to handle these kinds of cases using HQL or a criteria query.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -23,12 +23,16 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="mapping">
|
||||
<title>Basic O/R Mapping</title>
|
||||
|
||||
<sect1 id="mapping-declaration" revision="2">
|
||||
<section id="mapping-declaration" revision="2">
|
||||
<title>Mapping declaration</title>
|
||||
|
||||
<para>
|
||||
|
@ -48,7 +52,8 @@
|
|||
Here is an example mapping:
|
||||
</para>
|
||||
|
||||
<programlisting id="mapping-declaration-ex1" role="XML"><![CDATA[<?xml version="1.0"?>
|
||||
|
||||
<programlisting role="XML"><![CDATA[<?xml version="1.0"?>
|
||||
<!DOCTYPE hibernate-mapping PUBLIC
|
||||
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
|
||||
|
@ -123,7 +128,7 @@
|
|||
|
||||
|
||||
|
||||
<sect2 id="mapping-declaration-doctype" revision="3">
|
||||
<section id="mapping-declaration-doctype" revision="3">
|
||||
<title>Doctype</title>
|
||||
|
||||
<para>
|
||||
|
@ -135,7 +140,7 @@
|
|||
classpath.
|
||||
</para>
|
||||
|
||||
<sect3 id="mapping-declaration-entity-resolution">
|
||||
<section id="mapping-declaration-entity-resolution">
|
||||
<title>EntityResolver</title>
|
||||
<para>
|
||||
Hibernate will first attempt to resolve DTDs in its classpath.
|
||||
|
@ -166,29 +171,17 @@
|
|||
<para>
|
||||
The following is an example of utilizing user namespacing:
|
||||
</para>
|
||||
<programlisting role="XML"><![CDATA[<?xml version="1.0"?>
|
||||
<!DOCTYPE hibernate-mapping PUBLIC
|
||||
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" [
|
||||
<!ENTITY types SYSTEM "classpath://your/domain/types.xml">
|
||||
]>
|
||||
|
||||
<hibernate-mapping package="your.domain">
|
||||
<class name="MyEntity">
|
||||
<id name="id" type="my-custom-id-type">
|
||||
...
|
||||
</id>
|
||||
<class>
|
||||
&types;
|
||||
</hibernate-mapping>]]></programlisting>
|
||||
<programlisting language="XML" role="XML">
|
||||
<xi:include parse="text" href="../extras/namespacing.xml_sample" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</programlisting>
|
||||
<para>
|
||||
Where <literal>types.xml</literal> is a resource in the <literal>your.domain</literal>
|
||||
package and contains a custom <link linkend="mapping-types-custom">typedef</link>.
|
||||
</para>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-mapping" revision="3">
|
||||
<section id="mapping-declaration-mapping" revision="3">
|
||||
<title>Hibernate-mapping</title>
|
||||
|
||||
<para>
|
||||
|
@ -284,9 +277,9 @@
|
|||
<literal>Animal.hbm.xml</literal>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-class" revision="3">
|
||||
<section id="mapping-declaration-class" revision="3">
|
||||
<title>Class</title>
|
||||
|
||||
<para>
|
||||
|
@ -601,9 +594,9 @@
|
|||
a nested mapping element.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-id" revision="4">
|
||||
<section id="mapping-declaration-id" revision="4">
|
||||
<title>id</title>
|
||||
|
||||
<para>
|
||||
|
@ -679,7 +672,7 @@
|
|||
legacy data with composite keys. Its use is strongly discouraged for anything else.
|
||||
</para>
|
||||
|
||||
<sect3 id="mapping-declaration-id-generator" revision="2">
|
||||
<section id="mapping-declaration-id-generator" revision="2">
|
||||
<title>Generator</title>
|
||||
|
||||
<para>
|
||||
|
@ -829,9 +822,9 @@
|
|||
</variablelist>
|
||||
|
||||
</para>
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
<sect3 id="mapping-declaration-id-hilo" revision="1">
|
||||
<section id="mapping-declaration-id-hilo" revision="1">
|
||||
<title>Hi/lo algorithm</title>
|
||||
<para>
|
||||
The <literal>hilo</literal> and <literal>seqhilo</literal> generators provide two alternate
|
||||
|
@ -861,9 +854,9 @@
|
|||
server datasource to obtain connections enlisted with JTA, you must configure
|
||||
the <literal>hibernate.transaction.manager_lookup_class</literal>.
|
||||
</para>
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
<sect3 id="mapping-declaration-id-uuid">
|
||||
<section id="mapping-declaration-id-uuid">
|
||||
<title>UUID algorithm</title>
|
||||
<para>
|
||||
The UUID contains: IP address, startup time of the JVM that is accurate to a quarter
|
||||
|
@ -871,9 +864,9 @@
|
|||
possible to obtain a MAC address or memory address from Java code, so this is
|
||||
the best option without using JNI.
|
||||
</para>
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
<sect3 id="mapping-declaration-id-sequences">
|
||||
<section id="mapping-declaration-id-sequences">
|
||||
<title>Identity columns and sequences</title>
|
||||
<para>
|
||||
For databases that support identity columns (DB2, MySQL, Sybase, MS SQL), you
|
||||
|
@ -898,9 +891,9 @@
|
|||
choose from the <literal>identity</literal>, <literal>sequence</literal> and
|
||||
<literal>hilo</literal> strategies.
|
||||
</para>
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
<sect3 id="mapping-declaration-id-assigned">
|
||||
<section id="mapping-declaration-id-assigned">
|
||||
<title>Assigned identifiers</title>
|
||||
<para>
|
||||
If you want the application to assign identifiers, as opposed to having
|
||||
|
@ -918,9 +911,9 @@
|
|||
there is a version or timestamp property, or you define
|
||||
<literal>Interceptor.isUnsaved()</literal>.
|
||||
</para>
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
<sect3 id="mapping-declaration-id-select">
|
||||
<section id="mapping-declaration-id-select">
|
||||
<title>Primary keys assigned by triggers</title>
|
||||
<para>
|
||||
Hibernate does not generate DDL with triggers. It is for legacy schemas only.
|
||||
|
@ -939,11 +932,11 @@
|
|||
whose value is generated by a trigger.
|
||||
</para>
|
||||
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-id-enhanced">
|
||||
<section id="mapping-declaration-id-enhanced">
|
||||
<title>Enhanced identifier generators</title>
|
||||
|
||||
<para>
|
||||
|
@ -1070,9 +1063,9 @@
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-id-enhanced-optimizers">
|
||||
<section id="mapping-declaration-id-enhanced-optimizers">
|
||||
<title>Identifier generator optimization</title>
|
||||
<para>
|
||||
For identifier generators that store values in the database, it is inefficient for them to hit the
|
||||
|
@ -1107,9 +1100,9 @@
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-compositeid" revision="3">
|
||||
<section id="mapping-declaration-compositeid" revision="3">
|
||||
<title>composite-id</title>
|
||||
|
||||
<programlisting role="XML"><![CDATA[<composite-id
|
||||
|
@ -1224,9 +1217,9 @@
|
|||
for almost all applications.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-discriminator" revision="3">
|
||||
<section id="mapping-declaration-discriminator" revision="3">
|
||||
<title>Discriminator</title>
|
||||
|
||||
<para>
|
||||
|
@ -1312,9 +1305,9 @@
|
|||
formula="case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end"
|
||||
type="integer"/>]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-version" revision="4">
|
||||
<section id="mapping-declaration-version" revision="4">
|
||||
<title>Version (optional)</title>
|
||||
|
||||
<para>
|
||||
|
@ -1407,9 +1400,9 @@
|
|||
problems with transitive reattachment in Hibernate. It is especially useful for people
|
||||
using assigned identifiers or composite keys</emphasis>.
|
||||
</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-timestamp" revision="4" >
|
||||
<section id="mapping-declaration-timestamp" revision="4" >
|
||||
<title>Timestamp (optional)</title>
|
||||
|
||||
<para>
|
||||
|
@ -1499,10 +1492,10 @@
|
|||
</para>
|
||||
</note>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
|
||||
<sect2 id="mapping-declaration-property" revision="4">
|
||||
<section id="mapping-declaration-property" revision="4">
|
||||
<title>Property</title>
|
||||
|
||||
<para>
|
||||
|
@ -1695,9 +1688,9 @@
|
|||
if you do not want to use the attribute.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-manytoone" revision="5">
|
||||
<section id="mapping-declaration-manytoone" revision="5">
|
||||
<title>Many-to-one</title>
|
||||
|
||||
<para>
|
||||
|
@ -1908,9 +1901,9 @@
|
|||
|
||||
<programlisting role="XML"><![CDATA[<many-to-one name="owner" property-ref="identity.ssn" column="OWNER_SSN"/>]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-onetoone" revision="3">
|
||||
<section id="mapping-declaration-onetoone" revision="3">
|
||||
<title>One-to-one</title>
|
||||
|
||||
<para>
|
||||
|
@ -2084,9 +2077,9 @@
|
|||
|
||||
<programlisting role="XML"><![CDATA[<one-to-one name="employee" class="Employee" property-ref="person"/>]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-naturalid">
|
||||
<section id="mapping-declaration-naturalid">
|
||||
<title>Natural-id</title>
|
||||
|
||||
<programlisting role="XML"><![CDATA[<natural-id mutable="true|false"/>
|
||||
|
@ -2122,9 +2115,9 @@
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-component" revision="2">
|
||||
<section id="mapping-declaration-component" revision="2">
|
||||
<title>Component and dynamic-component</title>
|
||||
|
||||
<para>
|
||||
|
@ -2233,9 +2226,9 @@
|
|||
<xref linkend="components-dynamic"/> for more information.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-properties" revision="2">
|
||||
<section id="mapping-declaration-properties" revision="2">
|
||||
<title>Properties</title>
|
||||
|
||||
<para>
|
||||
|
@ -2336,9 +2329,9 @@
|
|||
legacy data is not recommended.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-subclass" revision="4">
|
||||
<section id="mapping-declaration-subclass" revision="4">
|
||||
<title>Subclass</title>
|
||||
|
||||
<para>
|
||||
|
@ -2407,9 +2400,9 @@
|
|||
For information about inheritance mappings see <xref linkend="inheritance"/>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-joinedsubclass" revision="3">
|
||||
<section id="mapping-declaration-joinedsubclass" revision="3">
|
||||
<title>Joined-subclass</title>
|
||||
|
||||
<para>
|
||||
|
@ -2514,9 +2507,9 @@
|
|||
For information about inheritance mappings see <xref linkend="inheritance"/>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-unionsubclass" revision="2">
|
||||
<section id="mapping-declaration-unionsubclass" revision="2">
|
||||
<title>Union-subclass</title>
|
||||
|
||||
<para>
|
||||
|
@ -2590,9 +2583,9 @@
|
|||
For information about inheritance mappings see <xref linkend="inheritance"/>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-join" revision="3">
|
||||
<section id="mapping-declaration-join" revision="3">
|
||||
<title>Join</title>
|
||||
|
||||
<para>
|
||||
|
@ -2696,9 +2689,9 @@
|
|||
explained later.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-key">
|
||||
<section id="mapping-declaration-key">
|
||||
<title>Key</title>
|
||||
|
||||
<para>
|
||||
|
@ -2786,9 +2779,9 @@
|
|||
<literal><key not-null="true"></literal>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-column" revision="5">
|
||||
<section id="mapping-column" revision="5">
|
||||
<title>Column and formula elements</title>
|
||||
<para>
|
||||
Mapping elements which accept a <literal>column</literal> attribute will alternatively
|
||||
|
@ -2833,9 +2826,9 @@
|
|||
<formula>'MAILING'</formula>
|
||||
</many-to-one>]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-declaration-import">
|
||||
<section id="mapping-declaration-import">
|
||||
<title>Import</title>
|
||||
|
||||
<para>
|
||||
|
@ -2871,9 +2864,9 @@
|
|||
</calloutlist>
|
||||
</programlistingco>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-types-anymapping" revision="2">
|
||||
<section id="mapping-types-anymapping" revision="2">
|
||||
<title>Any</title>
|
||||
|
||||
<para>
|
||||
|
@ -2965,14 +2958,14 @@
|
|||
</calloutlist>
|
||||
</programlistingco>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="mapping-types">
|
||||
<section id="mapping-types">
|
||||
<title>Hibernate types</title>
|
||||
|
||||
<sect2 id="mapping-types-entitiesvalues" revision="1">
|
||||
<section id="mapping-types-entitiesvalues" revision="1">
|
||||
<title>Entities and values</title>
|
||||
|
||||
<para>
|
||||
|
@ -3037,9 +3030,9 @@
|
|||
With the exception of collections, all built-in Hibernate types support null semantics.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-types-basictypes" revision="3">
|
||||
<section id="mapping-types-basictypes" revision="3">
|
||||
<title>Basic value types</title>
|
||||
|
||||
<para>
|
||||
|
@ -3193,9 +3186,9 @@
|
|||
represents the <literal>string</literal> type.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-types-custom" revision="2">
|
||||
<section id="mapping-types-custom" revision="2">
|
||||
<title>Custom value types</title>
|
||||
|
||||
<para>
|
||||
|
@ -3281,11 +3274,11 @@
|
|||
monetary values are represented.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="mapping-entityname">
|
||||
<section id="mapping-entityname">
|
||||
<title>Mapping a class more than once</title>
|
||||
<para>
|
||||
It is possible to provide more than one mapping for a particular persistent class. In this
|
||||
|
@ -3318,9 +3311,9 @@
|
|||
<literal>class</literal>.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="mapping-quotedidentifiers">
|
||||
<section id="mapping-quotedidentifiers">
|
||||
<title>SQL quoted identifiers</title>
|
||||
<para>
|
||||
You can force Hibernate to quote an identifier in the generated SQL by enclosing the table or
|
||||
|
@ -3335,17 +3328,17 @@
|
|||
...
|
||||
</class>]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
|
||||
<sect1 id="mapping-alternatives">
|
||||
<section id="mapping-alternatives">
|
||||
<title>Metadata alternatives</title>
|
||||
|
||||
<para>
|
||||
XML does not suit all users so there are some alternative ways to define O/R mapping metadata in Hibernate.
|
||||
</para>
|
||||
|
||||
<sect2 id="mapping-xdoclet">
|
||||
<section id="mapping-xdoclet">
|
||||
<title>Using XDoclet markup</title>
|
||||
|
||||
<para>
|
||||
|
@ -3464,9 +3457,9 @@ public class Cat {
|
|||
See the Hibernate website for more examples of XDoclet and Hibernate.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="mapping-annotations" revision="2">
|
||||
<section id="mapping-annotations" revision="2">
|
||||
<title>Using JDK 5.0 Annotations</title>
|
||||
|
||||
<para>
|
||||
|
@ -3515,10 +3508,10 @@ public class Customer implements Serializable {
|
|||
</para>
|
||||
</note>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<sect1 id="mapping-generated" revision="1">
|
||||
<section id="mapping-generated" revision="1">
|
||||
<title>Generated properties</title>
|
||||
<para>
|
||||
Generated properties are properties that have their values generated by the
|
||||
|
@ -3552,9 +3545,9 @@ public class Customer implements Serializable {
|
|||
<literal>always</literal>: the property value is generated both
|
||||
on insert and on update.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="mapping-column-read-and-write" revision="1">
|
||||
<section id="mapping-column-read-and-write" revision="1">
|
||||
<title>Column read and write expressions</title>
|
||||
<para>
|
||||
Hibernate allows you to customize the SQL it uses to read and write the values
|
||||
|
@ -3590,9 +3583,9 @@ public class Customer implements Serializable {
|
|||
The <literal>write</literal> expression, if specified, must contain exactly one '?' placeholder
|
||||
for the value.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="mapping-database-object">
|
||||
<section id="mapping-database-object">
|
||||
<title>Auxiliary database objects</title>
|
||||
<para>
|
||||
Auxiliary database objects allow for the CREATE and DROP of arbitrary database objects. In conjunction with
|
||||
|
@ -3637,6 +3630,6 @@ public class Customer implements Serializable {
|
|||
<dialect-scope name="org.hibernate.dialect.Oracle10gDialect"/>
|
||||
</database-object>
|
||||
</hibernate-mapping>]]></programlisting>
|
||||
</sect1>
|
||||
</section>
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="batch">
|
||||
<title>Batch processing</title>
|
||||
|
@ -75,7 +79,7 @@ session.close();]]></programlisting>
|
|||
<literal>CacheMode</literal> to disable interaction with the second-level cache.
|
||||
</para>
|
||||
|
||||
<sect1 id="batch-inserts">
|
||||
<section id="batch-inserts">
|
||||
<title>Batch inserts</title>
|
||||
|
||||
<para>
|
||||
|
@ -100,9 +104,9 @@ for ( int i=0; i<100000; i++ ) {
|
|||
tx.commit();
|
||||
session.close();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="batch-update" >
|
||||
<section id="batch-update" >
|
||||
<title>Batch updates</title>
|
||||
|
||||
<para>
|
||||
|
@ -131,9 +135,9 @@ while ( customers.next() ) {
|
|||
tx.commit();
|
||||
session.close();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="batch-statelesssession">
|
||||
<section id="batch-statelesssession">
|
||||
<title>The StatelessSession interface</title>
|
||||
<para>
|
||||
Alternatively, Hibernate provides a command-oriented API that can be used for
|
||||
|
@ -180,9 +184,9 @@ session.close();]]></programlisting>
|
|||
interface.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="batch-direct" revision="3">
|
||||
<section id="batch-direct" revision="3">
|
||||
<title>DML-style operations</title>
|
||||
|
||||
<para>
|
||||
|
@ -372,6 +376,6 @@ int createdEntities = s.createQuery( hqlInsert )
|
|||
tx.commit();
|
||||
session.close();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="best-practices" revision="3">
|
||||
<title>Best Practices</title>
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
<?xml version='1.0' encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Hibernate, Relational Persistence for Idiomatic Java
|
||||
~
|
||||
|
@ -21,7 +22,11 @@
|
|||
~ 51 Franklin Street, Fifth Floor
|
||||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
<!DOCTYPE bibliography PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<bibliography>
|
||||
<title>References</title>
|
||||
|
@ -72,4 +77,4 @@
|
|||
</publisher>
|
||||
</biblioentry>
|
||||
|
||||
</bibliography>
|
||||
</bibliography>
|
||||
|
|
|
@ -23,12 +23,16 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="collections">
|
||||
<title>Collection mapping</title>
|
||||
|
||||
<sect1 id="collections-persistent" revision="3">
|
||||
<section id="collections-persistent" revision="3">
|
||||
<title>Persistent collections</title>
|
||||
|
||||
<para>
|
||||
|
@ -99,9 +103,9 @@ kittens = cat.getKittens(); // Okay, kittens collection is a Set
|
|||
the semantics of bidirectional associations (these are discussed later).
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="collections-mapping" revision="4">
|
||||
<section id="collections-mapping" revision="4">
|
||||
<title>Collection mappings</title>
|
||||
|
||||
<tip>
|
||||
|
@ -270,7 +274,7 @@ kittens = cat.getKittens(); // Okay, kittens collection is a Set
|
|||
</calloutlist>
|
||||
</programlistingco>
|
||||
|
||||
<sect2 id="collections-foreignkeys" >
|
||||
<section id="collections-foreignkeys" >
|
||||
<title>Collection foreign keys</title>
|
||||
|
||||
<para>
|
||||
|
@ -301,9 +305,9 @@ kittens = cat.getKittens(); // Okay, kittens collection is a Set
|
|||
element.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="collections-elements" >
|
||||
<section id="collections-elements" >
|
||||
<title>Collection elements</title>
|
||||
|
||||
<para>
|
||||
|
@ -324,9 +328,9 @@ kittens = cat.getKittens(); // Okay, kittens collection is a Set
|
|||
associations.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="collections-indexed">
|
||||
<section id="collections-indexed">
|
||||
<title>Indexed collections</title>
|
||||
|
||||
<para>
|
||||
|
@ -439,9 +443,9 @@ kittens = cat.getKittens(); // Okay, kittens collection is a Set
|
|||
optionally sorted or ordered.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="collections-ofvalues" revision="2">
|
||||
<section id="collections-ofvalues" revision="2">
|
||||
<title>Collections of values and many-to-many associations</title>
|
||||
|
||||
<para>
|
||||
|
@ -643,9 +647,9 @@ kittens = cat.getKittens(); // Okay, kittens collection is a Set
|
|||
</composite-element>
|
||||
</list>]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="collections-onetomany">
|
||||
<section id="collections-onetomany">
|
||||
<title>One-to-many associations</title>
|
||||
|
||||
<para>
|
||||
|
@ -740,14 +744,14 @@ kittens = cat.getKittens(); // Okay, kittens collection is a Set
|
|||
<map-key formula="partName"/>
|
||||
<one-to-many class="Part"/>
|
||||
</map>]]></programlisting>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="collections-advancedmappings">
|
||||
<section id="collections-advancedmappings">
|
||||
<title>Advanced collection mappings</title>
|
||||
|
||||
<sect2 id="collections-sorted" revision="2">
|
||||
<section id="collections-sorted" revision="2">
|
||||
<title>Sorted collections</title>
|
||||
|
||||
<para>
|
||||
|
@ -814,9 +818,9 @@ kittens = cat.getKittens(); // Okay, kittens collection is a Set
|
|||
|
||||
<programlisting role="JAVA"><![CDATA[sortedUsers = s.createFilter( group.getUsers(), "order by this.name" ).list();]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="collections-bidirectional" revision="1">
|
||||
<section id="collections-bidirectional" revision="1">
|
||||
<title>Bidirectional associations</title>
|
||||
|
||||
<para>
|
||||
|
@ -925,9 +929,9 @@ session.persist(category); // The relationship will be saved]]></p
|
|||
affect the operation of cascades as these are orthogonal concepts.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="collections-indexedbidirectional">
|
||||
<section id="collections-indexedbidirectional">
|
||||
<title>Bidirectional associations with indexed collections</title>
|
||||
<para>
|
||||
A bidirectional association where one end is represented as a <literal><list></literal>
|
||||
|
@ -993,9 +997,9 @@ session.persist(category); // The relationship will be saved]]></p
|
|||
updates to the foreign key. <!--TODO: Does this really result in some unnecessary update statements?-->
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="collections-ternary">
|
||||
<section id="collections-ternary">
|
||||
<title>Ternary associations</title>
|
||||
|
||||
<para>
|
||||
|
@ -1024,9 +1028,9 @@ session.persist(category); // The relationship will be saved]]></p
|
|||
A final alternative is to use composite elements, which will be discussed later.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="collections-idbag" revision="1">
|
||||
<section id="collections-idbag" revision="1">
|
||||
<title><literal>Using an <idbag></literal></title>
|
||||
|
||||
<para>
|
||||
|
@ -1070,13 +1074,13 @@ session.persist(category); // The relationship will be saved]]></p
|
|||
strategy is not supported for <literal><idbag></literal> collection identifiers.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<!--undocumenting this stuff -->
|
||||
|
||||
<!--sect1 id="collections-heterogeneous">
|
||||
<!--section id="collections-heterogeneous">
|
||||
<title>Heterogeneous Associations</title>
|
||||
|
||||
<para>
|
||||
|
@ -1086,9 +1090,9 @@ session.persist(category); // The relationship will be saved]]></p
|
|||
rarely, if ever.
|
||||
</para>
|
||||
|
||||
</sect1-->
|
||||
</section-->
|
||||
|
||||
<sect1 id="collections-example" revision="1">
|
||||
<section id="collections-example" revision="1">
|
||||
<title>Collection examples</title>
|
||||
|
||||
<para>
|
||||
|
@ -1264,6 +1268,6 @@ alter table childset add constraint childsetfk1 (child_id) references child]]></
|
|||
in the next chapter.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="components">
|
||||
<title>Component Mapping</title>
|
||||
|
@ -33,7 +37,7 @@
|
|||
throughout Hibernate.
|
||||
</para>
|
||||
|
||||
<sect1 id="components-dependentobjects" revision="2" >
|
||||
<section id="components-dependentobjects" revision="2" >
|
||||
<title>Dependent objects</title>
|
||||
|
||||
<para>
|
||||
|
@ -157,9 +161,9 @@
|
|||
</component>
|
||||
</class>]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="components-incollections" revision="1">
|
||||
<section id="components-incollections" revision="1">
|
||||
<title>Collections of dependent objects</title>
|
||||
|
||||
<para>
|
||||
|
@ -258,9 +262,9 @@
|
|||
associations to other entities.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="components-asmapindex">
|
||||
<section id="components-asmapindex">
|
||||
<title>Components as Map indices</title>
|
||||
|
||||
<para>
|
||||
|
@ -269,9 +273,9 @@
|
|||
<literal>hashCode()</literal> and <literal>equals()</literal> correctly on
|
||||
the component class.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="components-compositeid" revision="1">
|
||||
<section id="components-compositeid" revision="1">
|
||||
<title>Components as composite identifiers</title>
|
||||
|
||||
<para>
|
||||
|
@ -409,9 +413,9 @@
|
|||
</set>
|
||||
</class>]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="components-dynamic" revision="1">
|
||||
<section id="components-dynamic" revision="1">
|
||||
<title>Dynamic components</title>
|
||||
|
||||
<para>
|
||||
|
@ -433,6 +437,6 @@
|
|||
configuration-time metamodel via the <literal>Configuration</literal> object.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="session-configuration" revision="1">
|
||||
<title>Configuration</title>
|
||||
|
@ -36,7 +40,7 @@
|
|||
the various options. Simply put the example file in your classpath and customize it to suit your needs.
|
||||
</para>
|
||||
|
||||
<sect1 id="configuration-programmatic" revision="1">
|
||||
<section id="configuration-programmatic" revision="1">
|
||||
<title>Programmatic configuration</title>
|
||||
|
||||
<para>
|
||||
|
@ -122,9 +126,9 @@
|
|||
be discarded once a <literal>SessionFactory</literal> is created.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="configuration-sessionfactory">
|
||||
<section id="configuration-sessionfactory">
|
||||
<title>Obtaining a SessionFactory</title>
|
||||
|
||||
<para>
|
||||
|
@ -141,9 +145,9 @@
|
|||
one database.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="configuration-hibernatejdbc" revision="1">
|
||||
<section id="configuration-hibernatejdbc" revision="1">
|
||||
<title>JDBC connections</title>
|
||||
|
||||
<para>
|
||||
|
@ -248,7 +252,8 @@
|
|||
The following is an example <filename>hibernate.properties</filename> file for c3p0:
|
||||
</para>
|
||||
|
||||
<programlisting id="c3p0-configuration" revision="1"><![CDATA[hibernate.connection.driver_class = org.postgresql.Driver
|
||||
|
||||
<programlisting><![CDATA[hibernate.connection.driver_class = org.postgresql.Driver
|
||||
hibernate.connection.url = jdbc:postgresql://localhost/mydatabase
|
||||
hibernate.connection.username = myuser
|
||||
hibernate.connection.password = secret
|
||||
|
@ -349,9 +354,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
custom implementation via the <property>hibernate.connection.provider_class</property> property.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="configuration-optional" revision="1">
|
||||
<section id="configuration-optional" revision="1">
|
||||
<title>Optional configuration properties</title>
|
||||
|
||||
<para>
|
||||
|
@ -360,9 +365,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
</para>
|
||||
|
||||
<para>
|
||||
<warning><emphasis>Some of these properties are "system-level" only.</emphasis> System-level properties can
|
||||
<warning><para><emphasis>Some of these properties are "system-level" only.</emphasis> System-level properties can
|
||||
be set only via <literal>java -Dproperty=value</literal> or <filename>hibernate.properties</filename>. They
|
||||
<emphasis>cannot</emphasis> be set by the other techniques described above.</warning>
|
||||
<emphasis>cannot</emphasis> be set by the other techniques described above.</para></warning>
|
||||
</para>
|
||||
|
||||
<table frame="topbot" id="configuration-optional-properties" revision="8">
|
||||
|
@ -1040,7 +1045,7 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
</tgroup>
|
||||
</table>
|
||||
|
||||
<sect2 id="configuration-optional-dialects" revision="1">
|
||||
<section id="configuration-optional-dialects" revision="1">
|
||||
<title>SQL Dialects</title>
|
||||
|
||||
<para>
|
||||
|
@ -1137,9 +1142,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
</tgroup>
|
||||
</table>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="configuration-optional-outerjoin" revision="4">
|
||||
<section id="configuration-optional-outerjoin" revision="4">
|
||||
<title>Outer Join Fetching</title>
|
||||
|
||||
<para>
|
||||
|
@ -1163,9 +1168,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
See <xref linkend="performance-fetching"/> for more information.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="configuration-optional-binarystreams" revision="1">
|
||||
<section id="configuration-optional-binarystreams" revision="1">
|
||||
<title>Binary Streams</title>
|
||||
|
||||
<para>
|
||||
|
@ -1176,9 +1181,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
<emphasis>This is a system-level setting only.</emphasis>
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="configuration-optional-cacheprovider" revision="2">
|
||||
<section id="configuration-optional-cacheprovider" revision="2">
|
||||
<title>Second-level and query cache</title>
|
||||
|
||||
<para>
|
||||
|
@ -1188,9 +1193,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
more information.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="configuration-optional-querysubstitution">
|
||||
<section id="configuration-optional-querysubstitution">
|
||||
<title>Query Language Substitution</title>
|
||||
|
||||
<para>
|
||||
|
@ -1211,9 +1216,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
This would allow you to rename the SQL <literal>LOWER</literal> function.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="configuration-optional-statistics" revision="2">
|
||||
<section id="configuration-optional-statistics" revision="2">
|
||||
<title>Hibernate statistics</title>
|
||||
|
||||
<para>
|
||||
|
@ -1224,10 +1229,10 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
<literal>org.hibernate.stats</literal> for more information.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<sect1 id="configuration-logging">
|
||||
<section id="configuration-logging">
|
||||
<title>Logging</title>
|
||||
|
||||
<para>
|
||||
|
@ -1320,9 +1325,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
</para>
|
||||
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="configuration-namingstrategy">
|
||||
<section id="configuration-namingstrategy">
|
||||
<title>Implementing a <literal>NamingStrategy</literal></title>
|
||||
|
||||
<para>
|
||||
|
@ -1355,9 +1360,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
strategy that might be a useful starting point for some applications.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="configuration-xmlconfig" revision="2">
|
||||
<section id="configuration-xmlconfig" revision="2">
|
||||
<title>XML configuration file</title>
|
||||
|
||||
<para>
|
||||
|
@ -1428,9 +1433,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
.configure("catdb.cfg.xml")
|
||||
.buildSessionFactory();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="configuration-j2ee" revision="1">
|
||||
<section id="configuration-j2ee" revision="1">
|
||||
<title>J2EE Application Server integration</title>
|
||||
|
||||
<para>
|
||||
|
@ -1493,7 +1498,7 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
application server shows "connection containment" exceptions.
|
||||
</para>
|
||||
|
||||
<sect2 id="configuration-optional-transactionstrategy" revision="3">
|
||||
<section id="configuration-optional-transactionstrategy" revision="3">
|
||||
<title>Transaction strategy configuration</title>
|
||||
|
||||
<para>
|
||||
|
@ -1608,9 +1613,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
</tgroup>
|
||||
</table>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="configuration-optional-jndi" revision="3">
|
||||
<section id="configuration-optional-jndi" revision="3">
|
||||
<title>JNDI-bound <literal>SessionFactory</literal></title>
|
||||
|
||||
<para>
|
||||
|
@ -1656,15 +1661,15 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
class is also a convenient way to startup Hibernate—see chapter 1.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="configuration-j2ee-currentsession" revision="4">
|
||||
<section id="configuration-j2ee-currentsession" revision="4">
|
||||
<title>Current Session context management with JTA</title>
|
||||
|
||||
<para>
|
||||
The easiest way to handle <literal>Sessions</literal> and transactions is
|
||||
Hibernate's automatic "current" <literal>Session</literal> management.
|
||||
For a discussion of contextual sessions see <link linkend="architecture-current-session"></link>.
|
||||
For a discussion of contextual sessions see <xref linkend="architecture-current-session"/>.
|
||||
Using the <literal>"jta"</literal> session context, if there is no Hibernate
|
||||
<literal>Session</literal> associated with the current JTA transaction, one will
|
||||
be started and associated with that JTA transaction the first time you call
|
||||
|
@ -1681,9 +1686,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
demarcation with CMT is preferred.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="configuration-j2ee-jmx" revision="1">
|
||||
<section id="configuration-j2ee-jmx" revision="1">
|
||||
<title>JMX deployment</title>
|
||||
|
||||
<para>
|
||||
|
@ -1754,9 +1759,9 @@ hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]></programlisting>
|
|||
documentation for more information about JMX service and EJB deployment.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="events">
|
||||
<title>Interceptors and events</title>
|
||||
|
@ -34,7 +38,7 @@
|
|||
functionality and the extension of Hibernate functionality.
|
||||
</para>
|
||||
|
||||
<sect1 id="objectstate-interceptors" revision="3">
|
||||
<section id="objectstate-interceptors" revision="3">
|
||||
<title>Interceptors</title>
|
||||
|
||||
<para>
|
||||
|
@ -160,9 +164,9 @@ public class AuditInterceptor extends EmptyInterceptor {
|
|||
|
||||
<programlisting role="JAVA"><![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-events" revision="4">
|
||||
<section id="objectstate-events" revision="4">
|
||||
<title>Event system</title>
|
||||
|
||||
<para>
|
||||
|
@ -249,9 +253,9 @@ cfg.EventListeners().setLoadEventListeners(stack);]]></programlisting>
|
|||
or off during configuration.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-decl-security" revision="2">
|
||||
<section id="objectstate-decl-security" revision="2">
|
||||
<title>Hibernate declarative security</title>
|
||||
<para>
|
||||
Usually, declarative security in Hibernate applications is managed in a session facade
|
||||
|
@ -286,7 +290,7 @@ cfg.EventListeners().setLoadEventListeners(stack);]]></programlisting>
|
|||
The role names are the roles understood by your JACC provider.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="example-mappings">
|
||||
<title>Example: Various Mappings</title>
|
||||
|
@ -33,7 +37,7 @@
|
|||
This chapters explores some more complex association mappings.
|
||||
</para>
|
||||
|
||||
<sect1 id="example-mappings-emp">
|
||||
<section id="example-mappings-emp">
|
||||
<title>Employer/Employee</title>
|
||||
|
||||
<para>
|
||||
|
@ -46,10 +50,10 @@
|
|||
|
||||
<mediaobject>
|
||||
<imageobject role="html">
|
||||
<imagedata fileref="../images/EmployerEmployee.png" format="PNG" align="center" />
|
||||
<imagedata fileref="images/EmployerEmployee.png" format="PNG" align="center" />
|
||||
</imageobject>
|
||||
<imageobject role="fo">
|
||||
<imagedata fileref="../images/EmployerEmployee.png" format="PNG" align="center" width="17cm" />
|
||||
<imagedata fileref="images/EmployerEmployee.png" format="PNG" align="center" width="17cm" />
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
|
||||
|
@ -144,9 +148,9 @@ create sequence employee_id_seq
|
|||
create sequence employment_id_seq
|
||||
create sequence employer_id_seq]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="example-mappings-authorwork">
|
||||
<section id="example-mappings-authorwork">
|
||||
<title>Author/Work</title>
|
||||
|
||||
<para>
|
||||
|
@ -160,10 +164,10 @@ create sequence employer_id_seq]]></programlisting>
|
|||
|
||||
<mediaobject>
|
||||
<imageobject role="html">
|
||||
<imagedata fileref="../images/AuthorWork.png" format="PNG" align="center" />
|
||||
<imagedata fileref="images/AuthorWork.png" format="PNG" align="center" />
|
||||
</imageobject>
|
||||
<imageobject role="fo">
|
||||
<imagedata fileref="../images/AuthorWork.png" format="PNG" align="center" width="17cm" />
|
||||
<imagedata fileref="images/AuthorWork.png" format="PNG" align="center" width="17cm" />
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
|
||||
|
@ -266,9 +270,9 @@ alter table author_work
|
|||
alter table author_work
|
||||
add constraint author_workFK1 foreign key (work_id) references works]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="example-mappings-customerorderproduct">
|
||||
<section id="example-mappings-customerorderproduct">
|
||||
<title>Customer/Order/Product</title>
|
||||
|
||||
<para>
|
||||
|
@ -284,10 +288,10 @@ alter table author_work
|
|||
|
||||
<mediaobject>
|
||||
<imageobject role="html">
|
||||
<imagedata fileref="../images/CustomerOrderProduct.png" format="PNG" align="center" />
|
||||
<imagedata fileref="images/CustomerOrderProduct.png" format="PNG" align="center" />
|
||||
</imageobject>
|
||||
<imageobject role="fo">
|
||||
<imagedata fileref="../images/CustomerOrderProduct.png" format="PNG" align="center" width="17cm" />
|
||||
<imagedata fileref="images/CustomerOrderProduct.png" format="PNG" align="center" width="17cm" />
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
|
||||
|
@ -374,9 +378,9 @@ alter table line_items
|
|||
alter table line_items
|
||||
add constraint line_itemsFK1 foreign key (order_id) references orders]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="misc">
|
||||
<section id="misc">
|
||||
<title>Miscellaneous example mappings</title>
|
||||
|
||||
<para>
|
||||
|
@ -387,7 +391,7 @@ alter table line_items
|
|||
|
||||
<!-- <<para>TODO: put words around this stuff</para>-->
|
||||
|
||||
<sect2 id="example-mappings-typed-onetone">
|
||||
<section id="example-mappings-typed-onetone">
|
||||
<title>"Typed" one-to-one association</title>
|
||||
<programlisting role="XML"><![CDATA[<class name="Person">
|
||||
<id name="name"/>
|
||||
|
@ -415,9 +419,9 @@ alter table line_items
|
|||
<property name="state"/>
|
||||
<property name="zip"/>
|
||||
</class>]]></programlisting>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="example-mappings-composite-key">
|
||||
<section id="example-mappings-composite-key">
|
||||
<title>Composite key example</title>
|
||||
<programlisting role="XML"><![CDATA[<class name="Customer">
|
||||
|
||||
|
@ -532,9 +536,9 @@ alter table line_items
|
|||
</property>
|
||||
|
||||
</class>]]></programlisting>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="example-mappings-composite-key-manytomany">
|
||||
<section id="example-mappings-composite-key-manytomany">
|
||||
<title>Many-to-many with shared composite key attribute</title>
|
||||
<programlisting role="XML"><![CDATA[<class name="User" table="`User`">
|
||||
<composite-id>
|
||||
|
@ -571,9 +575,9 @@ alter table line_items
|
|||
</set>
|
||||
</class>
|
||||
]]></programlisting>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="example-mappings-content-discrimination">
|
||||
<section id="example-mappings-content-discrimination">
|
||||
<title>Content based discrimination</title>
|
||||
<programlisting role="XML"><![CDATA[<class name="Person"
|
||||
discriminator-value="P">
|
||||
|
@ -625,9 +629,9 @@ alter table line_items
|
|||
</subclass>
|
||||
|
||||
</class>]]></programlisting>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="example-mappings-association-alternatekeys" revision="2">
|
||||
<section id="example-mappings-association-alternatekeys" revision="2">
|
||||
<title>Associations on alternate keys</title>
|
||||
<programlisting role="XML"><![CDATA[<class name="Person">
|
||||
|
||||
|
@ -678,9 +682,9 @@ alter table line_items
|
|||
<property name="type" not-null="true"/>
|
||||
|
||||
</class>]]></programlisting>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="example-parentchild">
|
||||
<title>Example: Parent/Child</title>
|
||||
|
@ -41,7 +45,7 @@
|
|||
|
||||
</para>
|
||||
|
||||
<sect1 id="example-parentchild-collections">
|
||||
<section id="example-parentchild-collections">
|
||||
<title>A note about collections</title>
|
||||
|
||||
<para>
|
||||
|
@ -82,9 +86,9 @@
|
|||
child is bound to the life cycle of the parent.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="example-parentchild-bidir">
|
||||
<section id="example-parentchild-bidir">
|
||||
<title>Bidirectional one-to-many</title>
|
||||
|
||||
<para>
|
||||
|
@ -195,9 +199,9 @@ p.addChild(c);
|
|||
session.save(c);
|
||||
session.flush();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="example-parentchild-cascades">
|
||||
<section id="example-parentchild-cascades">
|
||||
<title>Cascading life cycle</title>
|
||||
|
||||
<para>
|
||||
|
@ -268,9 +272,9 @@ session.flush();]]></programlisting>
|
|||
<literal>setParent()</literal>.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="example-parentchild-update">
|
||||
<section id="example-parentchild-update">
|
||||
<title>Cascades and <literal>unsaved-value</literal></title>
|
||||
|
||||
<para>
|
||||
|
@ -306,9 +310,9 @@ session.flush();]]></programlisting>
|
|||
row exists.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="example-parentchild-conclusion">
|
||||
<section id="example-parentchild-conclusion">
|
||||
<title>Conclusion</title>
|
||||
|
||||
<para>
|
||||
|
@ -323,6 +327,6 @@ session.flush();]]></programlisting>
|
|||
cannot own collections and they should not be the child of any entity other than the unique parent.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
|
|
@ -23,12 +23,16 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="example-weblog">
|
||||
<title>Example: Weblog Application</title>
|
||||
|
||||
<sect1 id="example-weblog-classes">
|
||||
<section id="example-weblog-classes">
|
||||
<title>Persistent Classes</title>
|
||||
|
||||
<para>
|
||||
|
@ -110,9 +114,9 @@ public class BlogItem {
|
|||
}
|
||||
}]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="example-weblog-mappings">
|
||||
<section id="example-weblog-mappings">
|
||||
<title>Hibernate Mappings</title>
|
||||
|
||||
<para>
|
||||
|
@ -203,9 +207,9 @@ public class BlogItem {
|
|||
|
||||
</hibernate-mapping>]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="example-weblog-code">
|
||||
<section id="example-weblog-code">
|
||||
<title>Hibernate Code</title>
|
||||
|
||||
<para>
|
||||
|
@ -451,7 +455,7 @@ public class BlogMain {
|
|||
}
|
||||
}]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="filters">
|
||||
<title>Filtering data</title>
|
||||
|
@ -34,7 +38,7 @@
|
|||
enabled or disabled for a particular Hibernate session.
|
||||
</para>
|
||||
|
||||
<sect1 id="objectstate-filters" revision="1">
|
||||
<section id="objectstate-filters" revision="1">
|
||||
<title>Hibernate filters</title>
|
||||
|
||||
<para>
|
||||
|
@ -167,7 +171,7 @@ List results = session.createQuery("from Employee as e where e.salary > :targetS
|
|||
particular case.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -23,12 +23,16 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="inheritance">
|
||||
<title>Inheritance mapping</title>
|
||||
|
||||
<sect1 id="inheritance-strategies" revision="3">
|
||||
<section id="inheritance-strategies" revision="3">
|
||||
<title>The three strategies</title>
|
||||
|
||||
<para>
|
||||
|
@ -99,7 +103,7 @@
|
|||
</hibernate-mapping>]]></programlisting>
|
||||
|
||||
|
||||
<sect2 id="inheritance-tableperclass" >
|
||||
<section id="inheritance-tableperclass" >
|
||||
<title>Table per class hierarchy</title>
|
||||
|
||||
<para>
|
||||
|
@ -134,9 +138,9 @@
|
|||
cannot have <literal>NOT NULL</literal> constraints.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="inheritance-tablepersubclass">
|
||||
<section id="inheritance-tablepersubclass">
|
||||
<title>Table per subclass</title>
|
||||
|
||||
<para>
|
||||
|
@ -170,9 +174,9 @@
|
|||
is actually a one-to-one association.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="inheritance-tablepersubclass-discriminator" revision="2">
|
||||
<section id="inheritance-tablepersubclass-discriminator" revision="2">
|
||||
<title>Table per subclass: using a discriminator</title>
|
||||
|
||||
<para>
|
||||
|
@ -221,9 +225,9 @@
|
|||
outer join when querying the superclass.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="inheritance-mixing-tableperclass-tablepersubclass">
|
||||
<section id="inheritance-mixing-tableperclass-tablepersubclass">
|
||||
<title>Mixing table per class hierarchy with table per subclass</title>
|
||||
|
||||
<para>
|
||||
|
@ -260,9 +264,9 @@
|
|||
|
||||
<programlisting role="XML"><![CDATA[<many-to-one name="payment" column="PAYMENT_ID" class="Payment"/>]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="inheritance-tableperconcrete" revision="2">
|
||||
<section id="inheritance-tableperconcrete" revision="2">
|
||||
<title>Table per concrete class</title>
|
||||
|
||||
<para>
|
||||
|
@ -309,9 +313,9 @@
|
|||
of the superclass.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="inheritance-tableperconcreate-polymorphism">
|
||||
<section id="inheritance-tableperconcreate-polymorphism">
|
||||
<title>Table per concrete class using implicit polymorphism</title>
|
||||
|
||||
<para>
|
||||
|
@ -349,7 +353,7 @@
|
|||
using XML entities
|
||||
(for example, <literal>[ <!ENTITY allproperties SYSTEM "allproperties.xml"> ]</literal>
|
||||
in the <literal>DOCTYPE</literal> declaration and
|
||||
<literal>&allproperties;</literal> in the mapping).
|
||||
<literal>&allproperties;</literal> in the mapping).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -370,9 +374,9 @@
|
|||
<column name="PAYMENT_ID"/>
|
||||
</any>]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="inheritance-mixingpolymorphism">
|
||||
<section id="inheritance-mixingpolymorphism">
|
||||
<title>Mixing implicit polymorphism with other inheritance mappings</title>
|
||||
|
||||
<para>
|
||||
|
@ -421,11 +425,11 @@
|
|||
not instances of <literal>NonelectronicTransaction</literal>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="inheritance-limitations">
|
||||
<section id="inheritance-limitations">
|
||||
<title>Limitations</title>
|
||||
|
||||
<para>
|
||||
|
@ -514,6 +518,6 @@
|
|||
</tgroup>
|
||||
</table>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
|
|
@ -23,12 +23,16 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="performance">
|
||||
<title>Improving performance</title>
|
||||
|
||||
<sect1 id="performance-fetching" revision="2">
|
||||
<section id="performance-fetching" revision="2">
|
||||
<title>Fetching strategies</title>
|
||||
|
||||
<para>
|
||||
|
@ -139,7 +143,7 @@
|
|||
in any detached instance of a particular class.
|
||||
</para>
|
||||
|
||||
<sect2 id="performance-fetching-lazy">
|
||||
<section id="performance-fetching-lazy">
|
||||
<title>Working with lazy associations</title>
|
||||
|
||||
<para>
|
||||
|
@ -198,9 +202,9 @@ Integer accessLevel = (Integer) permissions.get("accounts"); // Error!]]></prog
|
|||
collections.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-fetching-custom" revision="4">
|
||||
<section id="performance-fetching-custom" revision="4">
|
||||
<title>Tuning fetch strategies</title>
|
||||
|
||||
<para>
|
||||
|
@ -278,9 +282,9 @@ Integer accessLevel = (Integer) permissions.get("accounts"); // Error!]]></prog
|
|||
second-level cache.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-fetching-proxies" revision="2">
|
||||
<section id="performance-fetching-proxies" revision="2">
|
||||
<title>Single-ended association proxies</title>
|
||||
|
||||
<para>
|
||||
|
@ -427,9 +431,9 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
will result in immediate proxy initialization.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-fetching-initialization" revision="1">
|
||||
<section id="performance-fetching-initialization" revision="1">
|
||||
<title>Initializing collections and proxies</title>
|
||||
|
||||
<para>
|
||||
|
@ -521,9 +525,9 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
|
||||
<programlisting role="JAVA"><![CDATA[s.createFilter( lazyCollection, "").setFirstResult(0).setMaxResults(10).list();]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-fetching-batch">
|
||||
<section id="performance-fetching-batch">
|
||||
<title>Using batch fetching</title>
|
||||
|
||||
<para>
|
||||
|
@ -575,9 +579,9 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
<emphasis>materialized path</emphasis> might be a better option for read-mostly trees.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-fetching-subselect">
|
||||
<section id="performance-fetching-subselect">
|
||||
<title>Using subselect fetching</title>
|
||||
|
||||
<para>
|
||||
|
@ -588,9 +592,9 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
|
||||
<!-- TODO: Write more about this -->
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-fetching-profiles">
|
||||
<section id="performance-fetching-profiles">
|
||||
<title>Fetch profiles</title>
|
||||
|
||||
<para>
|
||||
|
@ -657,9 +661,9 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
styles. See <ulink url="http://opensource.atlassian.com/projects/hibernate/browse/HHH-3414">HHH-3414</ulink>
|
||||
for details.
|
||||
</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-fetching-lazyproperties">
|
||||
<section id="performance-fetching-lazyproperties">
|
||||
<title>Using lazy property fetching</title>
|
||||
|
||||
<para>
|
||||
|
@ -721,10 +725,10 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
properties</literal> in HQL.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</sect1>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<sect1 id="performance-cache" revision="1">
|
||||
<section id="performance-cache" revision="1">
|
||||
<title>The Second Level Cache</title>
|
||||
|
||||
<para>
|
||||
|
@ -809,7 +813,7 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
</tgroup>
|
||||
</table>
|
||||
|
||||
<sect2 id="performance-cache-mapping" revision="2">
|
||||
<section id="performance-cache-mapping" revision="2">
|
||||
<title>Cache mappings</title>
|
||||
|
||||
<para>
|
||||
|
@ -865,9 +869,9 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
The <literal>usage</literal> attribute specifies a <emphasis>cache concurrency strategy</emphasis>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-cache-readonly">
|
||||
<section id="performance-cache-readonly">
|
||||
<title>Strategy: read only</title>
|
||||
|
||||
<para>
|
||||
|
@ -881,10 +885,10 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
....
|
||||
</class>]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
|
||||
<sect2 id="performance-cache-readwrite">
|
||||
<section id="performance-cache-readwrite">
|
||||
<title>Strategy: read/write</title>
|
||||
|
||||
<para>
|
||||
|
@ -907,9 +911,9 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
</set>
|
||||
</class>]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-cache-nonstrict">
|
||||
<section id="performance-cache-nonstrict">
|
||||
<title>Strategy: nonstrict read/write</title>
|
||||
|
||||
<para>
|
||||
|
@ -921,9 +925,9 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
<literal>Session.close()</literal> or <literal>Session.disconnect()</literal> is called.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-cache-transactional">
|
||||
<section id="performance-cache-transactional">
|
||||
<title>Strategy: transactional</title>
|
||||
|
||||
<para>
|
||||
|
@ -932,9 +936,9 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
specify <literal>hibernate.transaction.manager_lookup_class</literal>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-cache-compat-matrix">
|
||||
<section id="performance-cache-compat-matrix">
|
||||
<title>Cache-provider/concurrency-strategy compatibility</title>
|
||||
|
||||
<important>
|
||||
|
@ -1011,11 +1015,11 @@ Cat fritz = (Cat) iter.next();]]></programlisting>
|
|||
</tgroup>
|
||||
</table>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="performance-sessioncache" revision="2">
|
||||
<section id="performance-sessioncache" revision="2">
|
||||
<title>Managing the caches</title>
|
||||
|
||||
<para>
|
||||
|
@ -1109,9 +1113,9 @@ sessionFactory.evictCollection("Cat.kittens"); //evict all kitten collections]]>
|
|||
<programlisting><![CDATA[hibernate.generate_statistics true
|
||||
hibernate.cache.use_structured_entries true]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="performance-querycache" revision="1">
|
||||
<section id="performance-querycache" revision="1">
|
||||
<title>The Query Cache</title>
|
||||
|
||||
<para>
|
||||
|
@ -1119,7 +1123,7 @@ hibernate.cache.use_structured_entries true]]></programlisting>
|
|||
frequently with the same parameters.
|
||||
</para>
|
||||
|
||||
<sect2 id="performance-querycache-enable">
|
||||
<section id="performance-querycache-enable">
|
||||
<title>Enabling query caching</title>
|
||||
<para>
|
||||
Caching of query results introduces some overhead in terms of your applications normal
|
||||
|
@ -1175,9 +1179,9 @@ hibernate.cache.use_structured_entries true]]></programlisting>
|
|||
collection caching).
|
||||
</para>
|
||||
</note>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-querycache-regions">
|
||||
<section id="performance-querycache-regions">
|
||||
<title>Query cache regions</title>
|
||||
<para>
|
||||
If you require fine-grained control over query cache expiration policies, you can
|
||||
|
@ -1201,10 +1205,10 @@ hibernate.cache.use_structured_entries true]]></programlisting>
|
|||
efficient alternative to bulk eviction of the region via
|
||||
<literal>org.hibernate.SessionFactory.evictQueries()</literal>.
|
||||
</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<sect1 id="performance-collections">
|
||||
<section id="performance-collections">
|
||||
<title>Understanding Collection performance</title>
|
||||
|
||||
<para>
|
||||
|
@ -1213,7 +1217,7 @@ hibernate.cache.use_structured_entries true]]></programlisting>
|
|||
collections at runtime.
|
||||
</para>
|
||||
|
||||
<sect2 id="performance-collections-taxonomy">
|
||||
<section id="performance-collections-taxonomy">
|
||||
<title>Taxonomy</title>
|
||||
|
||||
<para>Hibernate defines three basic kinds of collections:</para>
|
||||
|
@ -1290,9 +1294,9 @@ hibernate.cache.use_structured_entries true]]></programlisting>
|
|||
collection.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-collections-mostefficientupdate">
|
||||
<section id="performance-collections-mostefficientupdate">
|
||||
<title>Lists, maps, idbags and sets are the most efficient collections to update</title>
|
||||
|
||||
<para>
|
||||
|
@ -1325,9 +1329,9 @@ hibernate.cache.use_structured_entries true]]></programlisting>
|
|||
considerations of collection update performance simply do not apply.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-collections-mostefficentinverse">
|
||||
<section id="performance-collections-mostefficentinverse">
|
||||
<title>Bags and lists are the most efficient inverse collections</title>
|
||||
|
||||
<para>
|
||||
|
@ -1346,9 +1350,9 @@ c.setParent(p);
|
|||
p.getChildren().add(c); //no need to fetch the collection!
|
||||
sess.flush();]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-collections-oneshotdelete">
|
||||
<section id="performance-collections-oneshotdelete">
|
||||
<title>One shot delete</title>
|
||||
|
||||
<para>
|
||||
|
@ -1395,11 +1399,11 @@ sess.flush();]]></programlisting>
|
|||
One-shot-delete does not apply to collections mapped <literal>inverse="true"</literal>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="performance-monitoring" revision="1">
|
||||
<section id="performance-monitoring" revision="1">
|
||||
<title>Monitoring performance</title>
|
||||
|
||||
<para>
|
||||
|
@ -1408,7 +1412,7 @@ sess.flush();]]></programlisting>
|
|||
Statistics in Hibernate are available per <literal>SessionFactory</literal>.
|
||||
</para>
|
||||
|
||||
<sect2 id="performance-monitoring-sf" revision="2">
|
||||
<section id="performance-monitoring-sf" revision="2">
|
||||
<title>Monitoring a SessionFactory</title>
|
||||
|
||||
<para>
|
||||
|
@ -1469,9 +1473,9 @@ server.registerMBean(stats, on); // Register the MBean on the server]]></program
|
|||
method.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="performance-monitoring-metrics" revision="1">
|
||||
<section id="performance-monitoring-metrics" revision="1">
|
||||
<title>Metrics</title>
|
||||
|
||||
<para>
|
||||
|
@ -1542,8 +1546,8 @@ log.info(Cat.class.getName() + " changed " + changes + "times" );]]></programli
|
|||
<literal>getSecondLevelCacheRegionNames()</literal>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="persistent-classes" revision="2">
|
||||
<title>Persistent Classes</title>
|
||||
|
@ -43,7 +47,7 @@
|
|||
ways (using trees of <literal>Map</literal> instances, for example).
|
||||
</para>
|
||||
|
||||
<sect1 id="persistent-classes-pojo">
|
||||
<section id="persistent-classes-pojo">
|
||||
<title>A simple POJO example</title>
|
||||
|
||||
<para>
|
||||
|
@ -134,7 +138,7 @@ public class Cat {
|
|||
</para>
|
||||
|
||||
|
||||
<sect2 id="persistent-classes-pojo-constructor" revision="1">
|
||||
<section id="persistent-classes-pojo-constructor" revision="1">
|
||||
<title>Implement a no-argument constructor</title>
|
||||
|
||||
<para>
|
||||
|
@ -144,9 +148,9 @@ public class Cat {
|
|||
default constructor with at least <emphasis>package</emphasis> visibility for runtime proxy
|
||||
generation in Hibernate.
|
||||
</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="persistent-classes-pojo-identifier" revision="2">
|
||||
<section id="persistent-classes-pojo-identifier" revision="2">
|
||||
<title>Provide an identifier property (optional)</title>
|
||||
|
||||
<para>
|
||||
|
@ -191,9 +195,9 @@ public class Cat {
|
|||
We recommend that you declare consistently-named identifier properties on persistent
|
||||
classes and that you use a nullable (i.e., non-primitive) type.
|
||||
</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="persistent-classes-pojo-final">
|
||||
<section id="persistent-classes-pojo-final">
|
||||
<title>Prefer non-final classes (optional)</title>
|
||||
<para>
|
||||
A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon the
|
||||
|
@ -210,9 +214,9 @@ public class Cat {
|
|||
non-final classes. If you want to use a class with a <literal>public final</literal>
|
||||
method, you must explicitly disable proxying by setting <literal>lazy="false"</literal>.
|
||||
</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="persistent-classes-pojo-accessors" revision="2">
|
||||
<section id="persistent-classes-pojo-accessors" revision="2">
|
||||
<title>Declare accessors and mutators for persistent fields (optional)</title>
|
||||
|
||||
<para>
|
||||
|
@ -231,11 +235,11 @@ public class Cat {
|
|||
<literal>private</literal> get / set pair.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="persistent-classes-inheritance">
|
||||
<section id="persistent-classes-inheritance">
|
||||
<title>Implementing inheritance</title>
|
||||
|
||||
<para>
|
||||
|
@ -255,9 +259,9 @@ public class DomesticCat extends Cat {
|
|||
this.name=name;
|
||||
}
|
||||
}]]></programlisting>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="persistent-classes-equalshashcode" revision="1">
|
||||
<section id="persistent-classes-equalshashcode" revision="1">
|
||||
<title>Implementing <literal>equals()</literal> and <literal>hashCode()</literal></title>
|
||||
|
||||
<para>
|
||||
|
@ -340,9 +344,9 @@ public class DomesticCat extends Cat {
|
|||
candidates for a business key.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="persistent-classes-dynamicmodels">
|
||||
<section id="persistent-classes-dynamicmodels">
|
||||
<title>Dynamic models</title>
|
||||
|
||||
|
||||
|
@ -485,9 +489,9 @@ dynamicSession.close()
|
|||
in <xref linkend="xml"/>.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="persistent-classes-tuplizers" revision="1">
|
||||
<section id="persistent-classes-tuplizers" revision="1">
|
||||
<title>Tuplizers</title>
|
||||
|
||||
<para>
|
||||
|
@ -554,10 +558,10 @@ public class CustomMapTuplizerImpl
|
|||
}]]></programlisting>
|
||||
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
|
||||
<sect1 id="persistent-classes-entity-name-resolver" revision="0">
|
||||
<section id="persistent-classes-entity-name-resolver" revision="0">
|
||||
<title>EntityNameResolvers</title>
|
||||
|
||||
<para>
|
||||
|
@ -701,7 +705,7 @@ public class MyEntityTuplizer extends PojoEntityTuplizer {
|
|||
</listitem>
|
||||
</orderedlist>
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -20,12 +20,17 @@
|
|||
~ 51 Franklin Street, Fifth Floor
|
||||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="portability">
|
||||
<title>Database Portability Considerations</title>
|
||||
|
||||
<sect1 id="portability-basics">
|
||||
<section id="portability-basics">
|
||||
<title>Portability Basics</title>
|
||||
|
||||
<para>
|
||||
|
@ -36,9 +41,9 @@
|
|||
the exact scenario, the basic idea is that you want Hibernate to help you run against any number
|
||||
of databases without changes to your code, and ideally without any changes to the mapping metadata.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="portability-dialect">
|
||||
<section id="portability-dialect">
|
||||
<title>Dialect</title>
|
||||
|
||||
<para>
|
||||
|
@ -49,9 +54,9 @@
|
|||
of dialects for many of the most popular databases. If you find that your particular database is
|
||||
not among them, it is not terribly difficult to write your own.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="portability-dialectresolver">
|
||||
<section id="portability-dialectresolver">
|
||||
<title>Dialect resolution</title>
|
||||
|
||||
<para>
|
||||
|
@ -92,9 +97,9 @@
|
|||
<constant>DIALECT_RESOLVERS</constant> constant on
|
||||
<classname>org.hibernate.cfg.Environment</classname>).
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="portability-idgen">
|
||||
<section id="portability-idgen">
|
||||
<title>Identifier generation</title>
|
||||
|
||||
<para>
|
||||
|
@ -148,9 +153,9 @@
|
|||
<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> mimics the behavior of
|
||||
a sequence on databases which do not support sequences by using a table.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="portability-functions">
|
||||
<section id="portability-functions">
|
||||
<title>Database functions</title>
|
||||
|
||||
<warning>
|
||||
|
@ -181,9 +186,9 @@
|
|||
</para>
|
||||
</important>
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="portability-types">
|
||||
<section id="portability-types">
|
||||
<title>Type mappings</title>
|
||||
|
||||
<para>
|
||||
|
@ -192,13 +197,13 @@
|
|||
|
||||
<!--
|
||||
todo :
|
||||
<sect2 id="portability-types-lobs">
|
||||
<section id="portability-types-lobs">
|
||||
<title>BLOB/CLOB mappings</title>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="portability-types-bool">
|
||||
<section id="portability-types-bool">
|
||||
<title>Boolean mappings</title>
|
||||
</sect2>
|
||||
</section>
|
||||
-->
|
||||
</sect1>
|
||||
</chapter>
|
||||
</section>
|
||||
</chapter>
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<preface id="preface">
|
||||
<title>Preface</title>
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="querycriteria">
|
||||
<title>Criteria Queries</title>
|
||||
|
@ -32,7 +36,7 @@
|
|||
Hibernate features an intuitive, extensible criteria query API.
|
||||
</para>
|
||||
|
||||
<sect1 id="querycriteria-creating">
|
||||
<section id="querycriteria-creating">
|
||||
<title>Creating a <literal>Criteria</literal> instance</title>
|
||||
|
||||
<para>
|
||||
|
@ -45,9 +49,9 @@
|
|||
crit.setMaxResults(50);
|
||||
List cats = crit.list();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="querycriteria-narrowing">
|
||||
<section id="querycriteria-narrowing">
|
||||
<title>Narrowing the result set</title>
|
||||
|
||||
<para>
|
||||
|
@ -117,9 +121,9 @@ List cats = sess.createCriteria(Cat.class)
|
|||
.add( Property.forName("name").in( new String[] { "Fritz", "Izi", "Pk" } ) )
|
||||
.list();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="querycriteria-ordering">
|
||||
<section id="querycriteria-ordering">
|
||||
<title>Ordering the results</title>
|
||||
|
||||
<para>
|
||||
|
@ -140,9 +144,9 @@ List cats = sess.createCriteria(Cat.class)
|
|||
.setMaxResults(50)
|
||||
.list();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="querycriteria-associations" revision="2">
|
||||
<section id="querycriteria-associations" revision="2">
|
||||
<title>Associations</title>
|
||||
|
||||
<para>
|
||||
|
@ -224,9 +228,9 @@ while ( iter.hasNext() ) {
|
|||
<para>
|
||||
Thirdly, in memory; the lists would need to be joined manually.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="querycriteria-dynamicfetching" revision="1">
|
||||
<section id="querycriteria-dynamicfetching" revision="1">
|
||||
<title>Dynamic association fetching</title>
|
||||
|
||||
<para>
|
||||
|
@ -245,9 +249,9 @@ while ( iter.hasNext() ) {
|
|||
by outer join. See <xref linkend="performance-fetching"/> for more information.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="querycriteria-examples">
|
||||
<section id="querycriteria-examples">
|
||||
<title>Example queries</title>
|
||||
|
||||
<para>
|
||||
|
@ -290,9 +294,9 @@ List results = session.createCriteria(Cat.class)
|
|||
.add( Example.create( cat.getMate() ) )
|
||||
.list();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="querycriteria-projection">
|
||||
<section id="querycriteria-projection">
|
||||
<title>Projections, aggregation and grouping</title>
|
||||
<para>
|
||||
The class <literal>org.hibernate.criterion.Projections</literal> is a
|
||||
|
@ -384,9 +388,9 @@ List results = session.createCriteria(Cat.class)
|
|||
.addOrder( Order.desc("avgWeight") )
|
||||
.list();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="querycriteria-detachedqueries">
|
||||
<section id="querycriteria-detachedqueries">
|
||||
<title>Detached queries and subqueries</title>
|
||||
<para>
|
||||
The <literal>DetachedCriteria</literal> class allows you to create a query outside the scope
|
||||
|
@ -431,13 +435,13 @@ session.createCriteria(Cat.class, "cat")
|
|||
.add( Property.forName("weight").gt(avgWeightForSex) )
|
||||
.list();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<!--TODO: ResultSetTransformer + aliasing. AliasToBeanTransformer allow returning arbitrary
|
||||
user objects - similar to setResultClass in JDO2. General use of ResultTransformer
|
||||
could also be explained. -->
|
||||
|
||||
<sect1 id="query-criteria-naturalid">
|
||||
<section id="query-criteria-naturalid">
|
||||
<title>Queries by natural identifier</title>
|
||||
|
||||
<para>
|
||||
|
@ -483,6 +487,6 @@ session.createCriteria(Cat.class, "cat")
|
|||
).setCacheable(true)
|
||||
.uniqueResult();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="queryhql" revision="1">
|
||||
<title>HQL: The Hibernate Query Language</title>
|
||||
|
@ -34,7 +38,7 @@
|
|||
and understands notions like inheritance, polymorphism and association.
|
||||
</para>
|
||||
|
||||
<sect1 id="queryhql-casesensitivity">
|
||||
<section id="queryhql-casesensitivity">
|
||||
<title>Case Sensitivity</title>
|
||||
|
||||
<para>
|
||||
|
@ -53,9 +57,9 @@
|
|||
more readable, but this convention is unsuitable for queries embedded in Java code.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-from">
|
||||
<section id="queryhql-from">
|
||||
<title>The from clause</title>
|
||||
|
||||
<para>
|
||||
|
@ -101,9 +105,9 @@
|
|||
(e.g. <literal>domesticCat</literal>).
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-joins" revision="2">
|
||||
<section id="queryhql-joins" revision="2">
|
||||
<title>Associations and joins</title>
|
||||
|
||||
<para>
|
||||
|
@ -213,9 +217,9 @@
|
|||
<programlisting><![CDATA[from Document fetch all properties order by name]]></programlisting>
|
||||
<programlisting><![CDATA[from Document doc fetch all properties where lower(doc.name) like '%cats%']]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-joins-forms">
|
||||
<section id="queryhql-joins-forms">
|
||||
<title>Forms of join syntax</title>
|
||||
|
||||
<para>
|
||||
|
@ -235,9 +239,9 @@
|
|||
</para>
|
||||
|
||||
<programlisting><![CDATA[from Cat as cat where cat.mate.name like '%s%']]></programlisting>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-identifier-property">
|
||||
<section id="queryhql-identifier-property">
|
||||
<title>Referring to identifier property</title>
|
||||
|
||||
<para>
|
||||
|
@ -274,9 +278,9 @@
|
|||
</para>
|
||||
</important>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-select">
|
||||
<section id="queryhql-select">
|
||||
<title>The select clause</title>
|
||||
|
||||
<para>
|
||||
|
@ -351,9 +355,9 @@ from Cat cat]]></programlisting>
|
|||
This query returns a <literal>Map</literal> from aliases to selected values.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-aggregation">
|
||||
<section id="queryhql-aggregation">
|
||||
<title>Aggregate functions</title>
|
||||
|
||||
<para>
|
||||
|
@ -416,9 +420,9 @@ group by cat.id, cat.weight]]></programlisting>
|
|||
|
||||
select count(distinct cat.name), count(cat) from Cat cat]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-polymorphism">
|
||||
<section id="queryhql-polymorphism">
|
||||
<title>Polymorphic queries</title>
|
||||
|
||||
<para>
|
||||
|
@ -450,9 +454,9 @@ select count(distinct cat.name), count(cat) from Cat cat]]></programlisting>
|
|||
It also means you cannot call these queries using <literal>Query.scroll()</literal>.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-where" revision="1">
|
||||
<section id="queryhql-where" revision="1">
|
||||
<title>The where clause</title>
|
||||
|
||||
<para>
|
||||
|
@ -577,9 +581,9 @@ where log.item.class = 'Payment' and log.item.id = payment.id]]></programlisting
|
|||
would refer to the values of completely different database columns in the above query.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-expressions">
|
||||
<section id="queryhql-expressions">
|
||||
<title>Expressions</title>
|
||||
|
||||
<para>
|
||||
|
@ -870,9 +874,9 @@ WHERE prod.name = 'widget'
|
|||
AND cust.current_order = o.id
|
||||
)]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-ordering">
|
||||
<section id="queryhql-ordering">
|
||||
<title>The order by clause</title>
|
||||
|
||||
<para>
|
||||
|
@ -886,9 +890,9 @@ order by cat.name asc, cat.weight desc, cat.birthdate]]></programlisting>
|
|||
The optional <literal>asc</literal> or <literal>desc</literal> indicate ascending or descending order
|
||||
respectively.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-grouping" revision="1">
|
||||
<section id="queryhql-grouping" revision="1">
|
||||
<title>The group by clause</title>
|
||||
|
||||
<para>
|
||||
|
@ -934,9 +938,9 @@ order by count(kitten) asc, sum(kitten.weight) desc]]></programlisting>
|
|||
non-aggregated properties explicitly.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-subqueries" revision="3">
|
||||
<section id="queryhql-subqueries" revision="3">
|
||||
<title>Subqueries</title>
|
||||
|
||||
<para>
|
||||
|
@ -977,9 +981,9 @@ from Cat as cat]]></programlisting>
|
|||
<xref linkend="queryhql-tuple"/> for more information.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-examples">
|
||||
<section id="queryhql-examples">
|
||||
<title>HQL examples</title>
|
||||
|
||||
<para>
|
||||
|
@ -1100,9 +1104,9 @@ where :currentUser = user
|
|||
and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, PaymentStatus.UNPAID)
|
||||
order by account.type.sortOrder, account.accountNumber, payment.dueDate]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-bulk" revision="2">
|
||||
<section id="queryhql-bulk" revision="2">
|
||||
<title>Bulk update and delete</title>
|
||||
|
||||
<para>
|
||||
|
@ -1110,9 +1114,9 @@ order by account.type.sortOrder, account.accountNumber, payment.dueDate]]></prog
|
|||
<literal>insert ... select ...</literal> statements.
|
||||
See <xref linkend="batch-direct"/> for more information.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-tipstricks">
|
||||
<section id="queryhql-tipstricks">
|
||||
<title>Tips & Tricks</title>
|
||||
|
||||
<para>
|
||||
|
@ -1190,9 +1194,9 @@ Collection counts = s.filter( collection, "select this.type, count(this) group b
|
|||
|
||||
<programlisting role="JAVA"><![CDATA[( (Integer) session.createQuery("select count(*) from ....").iterate().next() ).intValue();]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-components">
|
||||
<section id="queryhql-components">
|
||||
<title>Components</title>
|
||||
|
||||
<para>
|
||||
|
@ -1221,9 +1225,9 @@ Collection counts = s.filter( collection, "select this.type, count(this) group b
|
|||
<para>
|
||||
Another common use of components is in <link linkend="queryhql-tuple">row value constructors</link>.
|
||||
</para>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="queryhql-tuple">
|
||||
<section id="queryhql-tuple">
|
||||
<title>Row value constructor syntax</title>
|
||||
|
||||
<para>
|
||||
|
@ -1263,7 +1267,7 @@ where not ( cat.name, cat.color ) in (
|
|||
be dependent upon the ordering of the component sub-properties in the metadata.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="querysql" revision="2">
|
||||
<title>Native SQL</title>
|
||||
|
@ -37,7 +41,7 @@
|
|||
<para>Hibernate3 allows you to specify handwritten SQL, including stored
|
||||
procedures, for all create, update, delete, and load operations.</para>
|
||||
|
||||
<sect1 id="querysql-creating" revision="4">
|
||||
<section id="querysql-creating" revision="4">
|
||||
<title>Using a <literal>SQLQuery</literal></title>
|
||||
|
||||
<para>Execution of native SQL queries is controlled via the
|
||||
|
@ -45,7 +49,7 @@
|
|||
<literal>Session.createSQLQuery()</literal>. The following sections describe how
|
||||
to use this API for querying.</para>
|
||||
|
||||
<sect2>
|
||||
<section>
|
||||
<title>Scalar queries</title>
|
||||
|
||||
<para>The most basic SQL query is to get a list of scalars
|
||||
|
@ -108,9 +112,9 @@ sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").list();
|
|||
not mapped, or does not result in the expected type, it is possible to
|
||||
customize it via calls to <literal>registerHibernateType</literal> in
|
||||
the Dialect.</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2>
|
||||
<section>
|
||||
<title>Entity queries</title>
|
||||
|
||||
<para>The above queries were all about returning scalar values,
|
||||
|
@ -150,9 +154,9 @@ sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").addEntity(Cat.class)
|
|||
]]></programlisting>
|
||||
|
||||
<para>This will allow cat.getDog() to function properly.</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2>
|
||||
<section>
|
||||
<title>Handling associations and collections</title>
|
||||
|
||||
<para>It is possible to eagerly join in the <literal>Dog</literal> to
|
||||
|
@ -183,9 +187,9 @@ sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").addEntity(Cat.class)
|
|||
enhance the sql queries to make them usable in Hibernate. Problems can arise when returning
|
||||
multiple entities of the same type or when the default alias/column names are not enough.
|
||||
</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2>
|
||||
<section>
|
||||
<title>Returning multiple entities</title>
|
||||
|
||||
<para>Until now, the result set column names are assumed to be the same
|
||||
|
@ -251,7 +255,7 @@ List loggedCats = sess.createSQLQuery(sql)
|
|||
.addEntity("mother", Cat.class).list()
|
||||
]]></programlisting>
|
||||
|
||||
<sect3 id="querysql-aliasreferences" revision="2">
|
||||
<section id="querysql-aliasreferences" revision="2">
|
||||
<title>Alias and property references</title>
|
||||
|
||||
<para>In most cases the above alias injection is needed. For
|
||||
|
@ -368,10 +372,10 @@ List loggedCats = sess.createSQLQuery(sql)
|
|||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<sect2>
|
||||
<section>
|
||||
<title>Returning non-managed entities</title>
|
||||
|
||||
<para>It is possible to apply a ResultTransformer to native SQL queries, allowing it to return non-managed entities.</para>
|
||||
|
@ -395,17 +399,17 @@ List loggedCats = sess.createSQLQuery(sql)
|
|||
The above query will return a list of <literal>CatDTO</literal> which has been instantiated and injected the values of NAME and BIRTHNAME into its corresponding
|
||||
properties or fields.
|
||||
</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2>
|
||||
<section>
|
||||
<title>Handling inheritance</title>
|
||||
|
||||
<para>Native SQL queries which query for entities that are mapped as part
|
||||
of an inheritance must include all properties for the baseclass and all
|
||||
its subclasses.</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2>
|
||||
<section>
|
||||
<title>Parameters</title>
|
||||
|
||||
<para>Native SQL queries support positional as well as named
|
||||
|
@ -416,13 +420,13 @@ List pusList = query.setString(0, "Pus%").list();
|
|||
|
||||
query = sess.createSQLQuery("SELECT * FROM CATS WHERE NAME like :name").addEntity(Cat.class);
|
||||
List pusList = query.setString("name", "Pus%").list(); ]]></programlisting>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="querysql-namedqueries" revision="3">
|
||||
<section id="querysql-namedqueries" revision="3">
|
||||
<title>Named SQL queries</title>
|
||||
|
||||
<para>Named SQL queries can be defined in the mapping document and called
|
||||
|
@ -509,7 +513,7 @@ List pusList = query.setString("name", "Pus%").list(); ]]></programlist
|
|||
.setResultSetMapping("catAndKitten")
|
||||
.list();]]></programlisting>
|
||||
|
||||
<sect2 id="propertyresults">
|
||||
<section id="propertyresults">
|
||||
<title>Using return-property to explicitly specify column/alias
|
||||
names</title>
|
||||
|
||||
|
@ -560,9 +564,9 @@ List pusList = query.setString("name", "Pus%").list(); ]]></programlist
|
|||
<para>If your mapping has a discriminator you must use
|
||||
<literal><return-discriminator></literal> to specify the
|
||||
discriminator column.</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="sp_query" revision="1">
|
||||
<section id="sp_query" revision="1">
|
||||
<title>Using stored procedures for querying</title>
|
||||
|
||||
<para>Hibernate3 provides support for queries via stored procedures
|
||||
|
@ -607,7 +611,7 @@ BEGIN
|
|||
entities. <literal><return-join></literal> and
|
||||
<literal><load-collection></literal> are not supported.</para>
|
||||
|
||||
<sect3 id="querysql-limits-storedprocedures" revision="1">
|
||||
<section id="querysql-limits-storedprocedures" revision="1">
|
||||
<title>Rules/limitations for using stored procedures</title>
|
||||
|
||||
<para>You cannot use stored procedures with Hibernate unless you follow some procedure/function
|
||||
|
@ -655,11 +659,11 @@ BEGIN
|
|||
requirement.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<sect1 id="querysql-cud">
|
||||
<section id="querysql-cud">
|
||||
<title>Custom SQL for create, update and delete</title>
|
||||
|
||||
<para>Hibernate3 can use custom SQL for create, update, and delete operations.
|
||||
|
@ -731,9 +735,9 @@ BEGIN
|
|||
return SQL%ROWCOUNT;
|
||||
|
||||
END updatePerson;]]></programlisting>
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="querysql-load">
|
||||
<section id="querysql-load">
|
||||
<title>Custom SQL for loading</title>
|
||||
|
||||
<para>You can also declare your own SQL (or HQL) queries for entity
|
||||
|
@ -792,5 +796,5 @@ END updatePerson;]]></programlisting>
|
|||
ON pers.ID = emp.PERSON_ID
|
||||
WHERE ID=?
|
||||
</sql-query>]]></programlisting>
|
||||
</sect1>
|
||||
</section>
|
||||
</chapter>
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="objectstate">
|
||||
<title>Working with objects</title>
|
||||
|
@ -44,7 +48,7 @@
|
|||
relevant for the application developer when tuning the performance of the system.
|
||||
</para>
|
||||
|
||||
<sect1 id="objectstate-overview">
|
||||
<section id="objectstate-overview">
|
||||
<title>Hibernate object states</title>
|
||||
|
||||
<para>
|
||||
|
@ -95,9 +99,9 @@
|
|||
trigger a transition) in more detail.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-makingpersistent" revision="1">
|
||||
<section id="objectstate-makingpersistent" revision="1">
|
||||
<title>Making objects persistent</title>
|
||||
|
||||
<para>
|
||||
|
@ -177,9 +181,9 @@ sess.save( pk, new Long(1234) );]]></programlisting>
|
|||
Transitive persistence is discussed later in this chapter.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-loading">
|
||||
<section id="objectstate-loading">
|
||||
<title>Loading an object</title>
|
||||
|
||||
<para>
|
||||
|
@ -259,9 +263,9 @@ sess.refresh(cat); //re-read the state (after the trigger executes)]]></programl
|
|||
<xref linkend="performance-fetching"/>.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-querying" revision="1">
|
||||
<section id="objectstate-querying" revision="1">
|
||||
<title>Querying</title>
|
||||
|
||||
<para>
|
||||
|
@ -273,7 +277,7 @@ sess.refresh(cat); //re-read the state (after the trigger executes)]]></programl
|
|||
optional support from Hibernate for result set conversion into objects.
|
||||
</para>
|
||||
|
||||
<sect2 id="objectstate-querying-executing" revision="1">
|
||||
<section id="objectstate-querying-executing" revision="1">
|
||||
<title>Executing queries</title>
|
||||
|
||||
<para>
|
||||
|
@ -318,7 +322,7 @@ Set uniqueMothers = new HashSet(mothersWithKittens.list());]]></programlisting>
|
|||
these duplicates through a <literal>Set</literal>.
|
||||
</para>
|
||||
|
||||
<sect3 id="objectstate-querying-executing-iterate">
|
||||
<section id="objectstate-querying-executing-iterate">
|
||||
<title>Iterating results</title>
|
||||
|
||||
<para>
|
||||
|
@ -345,9 +349,9 @@ while ( iter.hasNext() ) {
|
|||
break;
|
||||
}
|
||||
}]]></programlisting>
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
<sect3 id="objectstate-querying-executing-tuples">
|
||||
<section id="objectstate-querying-executing-tuples">
|
||||
<title>Queries that return tuples</title>
|
||||
|
||||
<para>
|
||||
|
@ -367,9 +371,9 @@ while ( kittensAndMothers.hasNext() ) {
|
|||
....
|
||||
}]]></programlisting>
|
||||
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
<sect3 id="objectstate-querying-executing-scalar" revision="1">
|
||||
<section id="objectstate-querying-executing-scalar" revision="1">
|
||||
<title>Scalar results</title>
|
||||
|
||||
<para>
|
||||
|
@ -392,9 +396,9 @@ while ( results.hasNext() ) {
|
|||
.....
|
||||
}]]></programlisting>
|
||||
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
<sect3 id="objectstate-querying-executing-parameters">
|
||||
<section id="objectstate-querying-executing-parameters">
|
||||
<title>Bind parameters</title>
|
||||
|
||||
<para>
|
||||
|
@ -442,9 +446,9 @@ Query q = sess.createQuery("from DomesticCat cat where cat.name in (:namesList)"
|
|||
q.setParameterList("namesList", names);
|
||||
List cats = q.list();]]></programlisting>
|
||||
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
<sect3 id="objectstate-querying-executing-pagination">
|
||||
<section id="objectstate-querying-executing-pagination">
|
||||
<title>Pagination</title>
|
||||
|
||||
<para>
|
||||
|
@ -463,9 +467,9 @@ List cats = q.list();]]></programlisting>
|
|||
SQL of your DBMS.
|
||||
</para>
|
||||
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
<sect3 id="objectstate-querying-executing-scrolling">
|
||||
<section id="objectstate-querying-executing-scrolling">
|
||||
<title>Scrollable iteration</title>
|
||||
|
||||
<para>
|
||||
|
@ -503,9 +507,9 @@ cats.close()]]></programlisting>
|
|||
if you need offline pagination functionality.
|
||||
</para>
|
||||
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
<sect3 id="objectstate-querying-executing-named" revision="1">
|
||||
<section id="objectstate-querying-executing-named" revision="1">
|
||||
<title>Externalizing named queries</title>
|
||||
|
||||
<para>
|
||||
|
@ -543,11 +547,11 @@ List cats = q.list();]]></programlisting>
|
|||
<literal>eg.Cat.ByNameAndMaximumWeight</literal>.
|
||||
</para>
|
||||
|
||||
</sect3>
|
||||
</section>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="objectstate-filtering" revision="1">
|
||||
<section id="objectstate-filtering" revision="1">
|
||||
<title>Filtering collections</title>
|
||||
<para>
|
||||
A collection <emphasis>filter</emphasis> is a special type of query that can be applied to
|
||||
|
@ -588,9 +592,9 @@ List cats = q.list();]]></programlisting>
|
|||
.setFirstResult(0).setMaxResults(10)
|
||||
.list();]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="objecstate-querying-criteria" revision="1">
|
||||
<section id="objecstate-querying-criteria" revision="1">
|
||||
<title>Criteria queries</title>
|
||||
|
||||
<para>
|
||||
|
@ -609,9 +613,9 @@ List cats = crit.list();]]></programlisting>
|
|||
API are discussed in more detail in <xref linkend="querycriteria"/>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="objectstate-querying-nativesql" revision="2">
|
||||
<section id="objectstate-querying-nativesql" revision="2">
|
||||
<title>Queries in native SQL</title>
|
||||
|
||||
<para>
|
||||
|
@ -639,11 +643,11 @@ List cats = crit.list();]]></programlisting>
|
|||
<xref linkend="querysql"/>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-modifying" revision="1">
|
||||
<section id="objectstate-modifying" revision="1">
|
||||
<title>Modifying persistent objects</title>
|
||||
|
||||
<para>
|
||||
|
@ -682,9 +686,9 @@ sess.flush(); // changes to cat are automatically detected and persisted]]></pr
|
|||
</para>
|
||||
</important>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-detached" revision="2">
|
||||
<section id="objectstate-detached" revision="2">
|
||||
<title>Modifying detached objects</title>
|
||||
|
||||
<para>
|
||||
|
@ -757,9 +761,9 @@ sess.lock(pk, LockMode.UPGRADE);]]></programlisting>
|
|||
Other models for long units of work are discussed in <xref linkend="transactions-optimistic"/>.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-saveorupdate">
|
||||
<section id="objectstate-saveorupdate">
|
||||
<title>Automatic state detection</title>
|
||||
|
||||
<para>
|
||||
|
@ -895,9 +899,9 @@ secondSession.saveOrUpdate(mate); // save the new instance (mate has a null id)
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-deleting" revision="1">
|
||||
<section id="objectstate-deleting" revision="1">
|
||||
<title>Deleting persistent objects</title>
|
||||
|
||||
<para>
|
||||
|
@ -917,9 +921,9 @@ secondSession.saveOrUpdate(mate); // save the new instance (mate has a null id)
|
|||
children.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-replicating" revision="1">
|
||||
<section id="objectstate-replicating" revision="1">
|
||||
<title>Replicating object between two different datastores</title>
|
||||
|
||||
<para>
|
||||
|
@ -981,9 +985,9 @@ session2.close();]]></programlisting>
|
|||
rolling back changes made during non-ACID transactions and more.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-flushing">
|
||||
<section id="objectstate-flushing">
|
||||
<title>Flushing the Session</title>
|
||||
|
||||
<para>
|
||||
|
@ -1094,9 +1098,9 @@ sess.close();]]></programlisting>
|
|||
behavior, we discuss it in <xref linkend="transactions"/>.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-transitive" revision="1">
|
||||
<section id="objectstate-transitive" revision="1">
|
||||
<title>Transitive persistence</title>
|
||||
|
||||
<para>
|
||||
|
@ -1248,9 +1252,9 @@ sess.close();]]></programlisting>
|
|||
<literal>Session</literal>.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="objectstate-metadata">
|
||||
<section id="objectstate-metadata">
|
||||
<title>Using metadata</title>
|
||||
|
||||
<para>
|
||||
|
@ -1282,7 +1286,7 @@ for ( int i=0; i<propertyNames.length; i++ ) {
|
|||
}
|
||||
}]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="toolsetguide" revision="2">
|
||||
<title>Toolset Guide</title>
|
||||
|
@ -75,7 +79,7 @@
|
|||
be used from "inside" Hibernate.
|
||||
</para>
|
||||
|
||||
<sect1 id="toolsetguide-s1" revision="2">
|
||||
<section id="toolsetguide-s1" revision="2">
|
||||
<title>Automatic schema generation</title>
|
||||
|
||||
<para>
|
||||
|
@ -95,7 +99,7 @@
|
|||
First, you must customize your mapping files to improve the generated schema. The next section covers schema customization.
|
||||
</para>
|
||||
|
||||
<sect2 id="toolsetguide-s1-2" revision="3">
|
||||
<section id="toolsetguide-s1-2" revision="3">
|
||||
<title>Customizing the schema</title>
|
||||
|
||||
<para>
|
||||
|
@ -304,9 +308,9 @@
|
|||
DDL where supported.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="toolsetguide-s1-3" revision="2">
|
||||
<section id="toolsetguide-s1-3" revision="2">
|
||||
<title>Running the tool</title>
|
||||
|
||||
<para>
|
||||
|
@ -384,9 +388,9 @@
|
|||
<programlisting role="JAVA"><![CDATA[Configuration cfg = ....;
|
||||
new SchemaExport(cfg).create(false, true);]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="toolsetguide-s1-4">
|
||||
<section id="toolsetguide-s1-4">
|
||||
<title>Properties</title>
|
||||
|
||||
<para>
|
||||
|
@ -445,9 +449,9 @@ new SchemaExport(cfg).create(false, true);]]></programlisting>
|
|||
</tgroup>
|
||||
</table>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="toolsetguide-s1-5">
|
||||
<section id="toolsetguide-s1-5">
|
||||
<title>Using Ant</title>
|
||||
|
||||
<para>
|
||||
|
@ -472,9 +476,9 @@ new SchemaExport(cfg).create(false, true);]]></programlisting>
|
|||
</schemaexport>
|
||||
</target>]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="toolsetguide-s1-6" revision="2">
|
||||
<section id="toolsetguide-s1-6" revision="2">
|
||||
<title>Incremental schema updates</title>
|
||||
|
||||
<para>
|
||||
|
@ -531,9 +535,9 @@ new SchemaExport(cfg).create(false, true);]]></programlisting>
|
|||
<programlisting role="JAVA"><![CDATA[Configuration cfg = ....;
|
||||
new SchemaUpdate(cfg).execute(false);]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="toolsetguide-s1-7">
|
||||
<section id="toolsetguide-s1-7">
|
||||
<title>Using Ant for incremental schema updates</title>
|
||||
|
||||
<para>
|
||||
|
@ -554,9 +558,9 @@ new SchemaUpdate(cfg).execute(false);]]></programlisting>
|
|||
</schemaupdate>
|
||||
</target>]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="toolsetguide-s1-8" revision="1">
|
||||
<section id="toolsetguide-s1-8" revision="1">
|
||||
<title>Schema validation</title>
|
||||
|
||||
<para>
|
||||
|
@ -606,9 +610,9 @@ new SchemaUpdate(cfg).execute(false);]]></programlisting>
|
|||
<programlisting role="JAVA"><![CDATA[Configuration cfg = ....;
|
||||
new SchemaValidator(cfg).validate();]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="toolsetguide-s1-9">
|
||||
<section id="toolsetguide-s1-9">
|
||||
<title>Using Ant for schema validation</title>
|
||||
|
||||
<para>
|
||||
|
@ -628,9 +632,9 @@ new SchemaValidator(cfg).validate();]]></programlisting>
|
|||
</schemavalidator>
|
||||
</target>]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="transactions" revision="2">
|
||||
<title>Transactions and Concurrency</title>
|
||||
|
@ -56,7 +60,7 @@
|
|||
<literal>Session</literal>, as well as database transactions and long conversations.
|
||||
</para>
|
||||
|
||||
<sect1 id="transactions-basics" revision="1">
|
||||
<section id="transactions-basics" revision="1">
|
||||
<title>Session and transaction scopes</title>
|
||||
|
||||
<para>
|
||||
|
@ -88,7 +92,7 @@
|
|||
database transaction boundaries? These questions are addressed in the following sections.
|
||||
</para>
|
||||
|
||||
<sect2 id="transactions-basics-uow" revision="1">
|
||||
<section id="transactions-basics-uow" revision="1">
|
||||
<title>Unit of work</title>
|
||||
|
||||
<para>
|
||||
|
@ -167,9 +171,9 @@
|
|||
this <emphasis>Open Session in View</emphasis> pattern.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="transactions-basics-apptx" revision="1">
|
||||
<section id="transactions-basics-apptx" revision="1">
|
||||
<title>Long conversations</title>
|
||||
|
||||
<para>
|
||||
|
@ -261,9 +265,9 @@
|
|||
These disadvantages are discussed later in this chapter in the context of optimistic concurrency control.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="transactions-basics-identity">
|
||||
<section id="transactions-basics-identity">
|
||||
<title>Considering object identity</title>
|
||||
|
||||
<para>
|
||||
|
@ -328,9 +332,9 @@
|
|||
a Hibernate issue, but simply how Java object identity and equality has to be implemented.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="transactions-basics-issues">
|
||||
<section id="transactions-basics-issues">
|
||||
<title>Common issues</title>
|
||||
|
||||
<para>
|
||||
|
@ -378,11 +382,11 @@
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="transactions-demarcation">
|
||||
<section id="transactions-demarcation">
|
||||
<title>Database transaction demarcation</title>
|
||||
|
||||
<para>
|
||||
|
@ -447,7 +451,7 @@
|
|||
</para>
|
||||
|
||||
|
||||
<sect2 id="transactions-demarcation-nonmanaged" revision="2">
|
||||
<section id="transactions-demarcation-nonmanaged" revision="2">
|
||||
<title>Non-managed environment</title>
|
||||
|
||||
<para>
|
||||
|
@ -520,9 +524,9 @@ catch (RuntimeException e) {
|
|||
<literal>hibernate.current_session_context_class</literal>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="transactions-demarcation-jta" revision="3">
|
||||
<section id="transactions-demarcation-jta" revision="3">
|
||||
<title>Using JTA</title>
|
||||
|
||||
<para>
|
||||
|
@ -623,9 +627,9 @@ catch (RuntimeException e) {
|
|||
<literal>iterate()</literal> from the JTA or CMT code.)
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="transactions-demarcation-exceptions">
|
||||
<section id="transactions-demarcation-exceptions">
|
||||
<title>Exception handling</title>
|
||||
|
||||
<para>
|
||||
|
@ -698,9 +702,9 @@ catch (RuntimeException e) {
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="transactions-demarcation-timeout">
|
||||
<section id="transactions-demarcation-timeout">
|
||||
<title>Transaction timeout</title>
|
||||
|
||||
<para>
|
||||
|
@ -741,11 +745,11 @@ finally {
|
|||
where transaction timeouts must be defined declaratively.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="transactions-optimistic">
|
||||
<section id="transactions-optimistic">
|
||||
<title>Optimistic concurrency control</title>
|
||||
|
||||
<para>
|
||||
|
@ -758,7 +762,7 @@ finally {
|
|||
also has the benefit of preventing lost updates in single database transactions.
|
||||
</para>
|
||||
|
||||
<sect2 id="transactions-optimistic-manual">
|
||||
<section id="transactions-optimistic-manual">
|
||||
<title>Application version checking</title>
|
||||
|
||||
<para>
|
||||
|
@ -805,9 +809,9 @@ session.close();]]></programlisting>
|
|||
as the design paradigm.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="transactions-optimistic-longsession">
|
||||
<section id="transactions-optimistic-longsession">
|
||||
<title>Extended session and automatic versioning</title>
|
||||
|
||||
<para>
|
||||
|
@ -883,9 +887,9 @@ session.close(); // Only for last transaction in conversation]]></programlist
|
|||
for this. See the Hibernate Wiki for examples.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="transactions-optimistic-detached">
|
||||
<section id="transactions-optimistic-detached">
|
||||
<title>Detached objects and automatic versioning</title>
|
||||
|
||||
<para>
|
||||
|
@ -915,9 +919,9 @@ session.close();]]></programlisting>
|
|||
caches) if you are sure that the object has not been modified.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="transactions-optimistic-customizing">
|
||||
<section id="transactions-optimistic-customizing">
|
||||
<title>Customizing automatic versioning</title>
|
||||
|
||||
<para>
|
||||
|
@ -958,11 +962,11 @@ session.close();]]></programlisting>
|
|||
the instance to ensure that changes did occur before updating the row.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="transactions-locking">
|
||||
<section id="transactions-locking">
|
||||
<title>Pessimistic locking</title>
|
||||
|
||||
<para>
|
||||
|
@ -1062,9 +1066,9 @@ session.close();]]></programlisting>
|
|||
portable.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="transactions-connection-release">
|
||||
<section id="transactions-connection-release">
|
||||
<title>Connection release modes</title>
|
||||
|
||||
<para>
|
||||
|
@ -1147,7 +1151,7 @@ session.close();]]></programlisting>
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -24,8 +24,11 @@
|
|||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY mdash "-">
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
<!ENTITY mdash "-">
|
||||
]>
|
||||
|
||||
|
||||
<chapter id="tutorial">
|
||||
<title>Tutorial</title>
|
||||
|
@ -55,7 +58,7 @@
|
|||
</para>
|
||||
</note>
|
||||
|
||||
<sect1 id="tutorial-firstapp">
|
||||
<section id="tutorial-firstapp">
|
||||
<title>Part 1 - The first Hibernate Application</title>
|
||||
|
||||
<para>
|
||||
|
@ -72,7 +75,7 @@
|
|||
</para>
|
||||
</note>
|
||||
|
||||
<sect2 id="tutorial-firstapp-setup">
|
||||
<section id="tutorial-firstapp-setup">
|
||||
<title>Setup</title>
|
||||
|
||||
<para>
|
||||
|
@ -155,10 +158,10 @@
|
|||
<para>
|
||||
Save this file as <filename>pom.xml</filename> in the project root directory.
|
||||
</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
|
||||
<sect2 id="tutorial-firstapp-firstclass">
|
||||
<section id="tutorial-firstapp-firstclass">
|
||||
<title>The first class</title>
|
||||
|
||||
<para>
|
||||
|
@ -238,9 +241,9 @@ public class Event {
|
|||
Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</filename>
|
||||
directory.
|
||||
</para>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="tutorial-firstapp-mapping">
|
||||
<section id="tutorial-firstapp-mapping">
|
||||
<title>The mapping file</title>
|
||||
|
||||
<para>
|
||||
|
@ -414,9 +417,9 @@ public class Event {
|
|||
<filename>src/main/resources/org/hibernate/tutorial/domain/Event.hbm.xml</filename>.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="tutorial-firstapp-configuration" revision="2">
|
||||
<section id="tutorial-firstapp-configuration" revision="2">
|
||||
<title>Hibernate configuration</title>
|
||||
|
||||
<para>
|
||||
|
@ -542,9 +545,9 @@ public class Event {
|
|||
<filename>src/main/resources</filename> directory.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="tutorial-firstapp-mvn" revision="1">
|
||||
<section id="tutorial-firstapp-mvn" revision="1">
|
||||
<title>Building with Maven</title>
|
||||
|
||||
<para>
|
||||
|
@ -575,9 +578,9 @@ public class Event {
|
|||
[INFO] Final Memory: 5M/547M
|
||||
[INFO] ------------------------------------------------------------------------]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="tutorial-firstapp-helpers" revision="3">
|
||||
<section id="tutorial-firstapp-helpers" revision="3">
|
||||
<title>Startup and helpers</title>
|
||||
|
||||
<para>
|
||||
|
@ -665,9 +668,9 @@ public class HibernateUtil {
|
|||
Hibernate.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="tutorial-firstapp-workingpersistence" revision="5">
|
||||
<section id="tutorial-firstapp-workingpersistence" revision="5">
|
||||
<title>Loading and storing objects</title>
|
||||
|
||||
<para>
|
||||
|
@ -855,11 +858,11 @@ public class EventManager {
|
|||
<command>mvn exec:java -Dexec.mainClass="org.hibernate.tutorial.EventManager" -Dexec.args="list"</command>
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="tutorial-associations">
|
||||
<section id="tutorial-associations">
|
||||
<title>Part 2 - Mapping associations</title>
|
||||
|
||||
<para>
|
||||
|
@ -869,7 +872,7 @@ public class EventManager {
|
|||
which they participate.
|
||||
</para>
|
||||
|
||||
<sect2 id="tutorial-associations-mappinguser" revision="1">
|
||||
<section id="tutorial-associations-mappinguser" revision="1">
|
||||
<title>Mapping the Person class</title>
|
||||
|
||||
<para>
|
||||
|
@ -928,9 +931,9 @@ public class Person {
|
|||
behavior.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="tutorial-associations-unidirset" revision="3">
|
||||
<section id="tutorial-associations-unidirset" revision="3">
|
||||
<title>A unidirectional Set-based association</title>
|
||||
|
||||
<para>
|
||||
|
@ -1019,9 +1022,9 @@ public class Person {
|
|||
|_____________|
|
||||
]]></programlisting>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="tutorial-associations-working" revision="2">
|
||||
<section id="tutorial-associations-working" revision="2">
|
||||
<title>Working the association</title>
|
||||
|
||||
<para>
|
||||
|
@ -1140,9 +1143,9 @@ public class Person {
|
|||
entities, but looks almost the same in Java.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="tutorial-associations-valuecollections">
|
||||
<section id="tutorial-associations-valuecollections">
|
||||
<title>Collection of values</title>
|
||||
|
||||
<para>
|
||||
|
@ -1232,9 +1235,9 @@ public class Person {
|
|||
optimize this with an eager fetch.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="tutorial-associations-bidirectional" revision="1">
|
||||
<section id="tutorial-associations-bidirectional" revision="1">
|
||||
<title>Bi-directional associations</title>
|
||||
|
||||
<para>
|
||||
|
@ -1291,9 +1294,9 @@ public class Person {
|
|||
understand once you see how the bi-directional link between our two entities is created.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="tutorial-associations-usingbidir">
|
||||
<section id="tutorial-associations-usingbidir">
|
||||
<title>Working bi-directional links</title>
|
||||
|
||||
<para>
|
||||
|
@ -1347,11 +1350,11 @@ public class Person {
|
|||
and in many-to-many association you can select either side.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="tutorial-webapp">
|
||||
<section id="tutorial-webapp">
|
||||
<title>Part 3 - The EventManager web application</title>
|
||||
|
||||
<para>
|
||||
|
@ -1361,7 +1364,7 @@ public class Person {
|
|||
database, and it provides an HTML form to enter new events.
|
||||
</para>
|
||||
|
||||
<sect2 id="tutorial-webapp-servlet" revision="2">
|
||||
<section id="tutorial-webapp-servlet" revision="2">
|
||||
<title>Writing the basic servlet</title>
|
||||
|
||||
<para>
|
||||
|
@ -1441,9 +1444,9 @@ public class EventManagerServlet extends HttpServlet {
|
|||
as you consider rendering your view in JSP, not in a servlet.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="tutorial-webapp-processing" revision="1">
|
||||
<section id="tutorial-webapp-processing" revision="1">
|
||||
<title>Processing and rendering</title>
|
||||
|
||||
<para>
|
||||
|
@ -1551,9 +1554,9 @@ public class EventManagerServlet extends HttpServlet {
|
|||
examples.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="tutorial-webapp-deploy">
|
||||
<section id="tutorial-webapp-deploy">
|
||||
<title>Deploying and testing</title>
|
||||
|
||||
<para>
|
||||
|
@ -1602,11 +1605,11 @@ public class EventManagerServlet extends HttpServlet {
|
|||
is called) and to get the detailed output if any exceptions occurs.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="tutorial-summary" revision="1">
|
||||
<section id="tutorial-summary" revision="1">
|
||||
<title>Summary</title>
|
||||
|
||||
<para>
|
||||
|
@ -1615,6 +1618,6 @@ public class EventManagerServlet extends HttpServlet {
|
|||
<ulink url="http://hibernate.org">website</ulink>.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
|
|
@ -23,7 +23,11 @@
|
|||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "../HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.ent">
|
||||
%BOOK_ENTITIES;
|
||||
|
||||
]>
|
||||
|
||||
<chapter id="xml">
|
||||
<title>XML Mapping</title>
|
||||
|
@ -33,7 +37,7 @@
|
|||
active development.
|
||||
</emphasis></para>
|
||||
|
||||
<sect1 id="xml-intro" revision="1">
|
||||
<section id="xml-intro" revision="1">
|
||||
<title>Working with XML data</title>
|
||||
|
||||
<para>
|
||||
|
@ -64,7 +68,7 @@
|
|||
it can be used to map just the XML.
|
||||
</para>
|
||||
|
||||
<sect2 id="xml-intro-mapping">
|
||||
<section id="xml-intro-mapping">
|
||||
<title>Specifying XML and class mapping together</title>
|
||||
|
||||
<para>
|
||||
|
@ -91,9 +95,9 @@
|
|||
...
|
||||
|
||||
</class>]]></programlisting>
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
<sect2 id="xml-onlyxml">
|
||||
<section id="xml-onlyxml">
|
||||
<title>Specifying only an XML mapping</title>
|
||||
|
||||
<para>
|
||||
|
@ -130,11 +134,11 @@
|
|||
are purely logical constructs that can be referred to in HQL queries.
|
||||
</para>
|
||||
|
||||
</sect2>
|
||||
</section>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
<sect1 id="xml-mapping" revision="1">
|
||||
<section id="xml-mapping" revision="1">
|
||||
<title>XML mapping metadata</title>
|
||||
|
||||
<para>
|
||||
|
@ -256,10 +260,10 @@
|
|||
...
|
||||
</customer>]]></programlisting>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
|
||||
<sect1 id="xml-manipulation" revision="1">
|
||||
<section id="xml-manipulation" revision="1">
|
||||
<title>Manipulating XML data</title>
|
||||
|
||||
<para>
|
||||
|
@ -307,7 +311,7 @@ session.close();]]></programlisting>
|
|||
operation.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
|
||||
|
|
|
@ -22,8 +22,9 @@
|
|||
~ 51 Franklin Street, Fifth Floor
|
||||
~ Boston, MA 02110-1301 USA
|
||||
-->
|
||||
<!DOCTYPE legalnotice PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!DOCTYPE legalnotice PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
|
||||
]>
|
||||
<legalnotice id="Legal_Notice">
|
||||
<title>Legal Notice</title>
|
||||
<para>
|
||||
|
|
|
@ -1,32 +1,30 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-23 18:41+0000\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:14\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Language-Team: LANGUAGE <kde-i18n-doc@kde.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: application/x-xml2pot; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Tag: title
|
||||
#: Hibernate_Reference.xml:35
|
||||
#, no-c-format
|
||||
msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
|
||||
msgstr "HIBERNATE - Persistencia Relacional para Java Idiomático"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: subtitle
|
||||
#: Hibernate_Reference.xml:36
|
||||
#, no-c-format
|
||||
msgid "Hibernate Reference Documentation"
|
||||
msgstr "Documentación de Referencia de Hibernate"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: holder
|
||||
#: Hibernate_Reference.xml:51
|
||||
#. Tag: releaseinfo
|
||||
#, no-c-format
|
||||
msgid "©rightHolder;"
|
||||
msgstr "©rightHolder;"
|
||||
|
||||
#~ msgid "ROLES_OF_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
#~ msgid "CREDIT_FOR_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
msgid "&versionNumber;"
|
||||
msgstr ""
|
||||
|
|
|
@ -5,7 +5,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Branch 3_3\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-16 18:47+0000\n"
|
||||
"POT-Creation-Date: 2010-02-04T04:51:21\n"
|
||||
"PO-Revision-Date: 2009-06-16 18:47+0000\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
|
@ -13,209 +13,137 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:27
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Gavin</firstname> <surname>King</surname>"
|
||||
msgid "Gavin"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:31
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
|
||||
msgid "Christian"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:35
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
|
||||
"surname>"
|
||||
msgid "Max"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:40
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<author><firstname>Emmanuel</firstname> <surname>Bernard</surname></author>"
|
||||
msgid "Emmanuel"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:44
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
|
||||
msgid "Steve"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:49
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>James</firstname> <surname>Cobb</surname>"
|
||||
msgid "James"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: shortaffil
|
||||
#: author_group.xml:53 author_group.xml:60
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "Graphic Design"
|
||||
msgid "Cheyenne"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:56
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
|
||||
msgid "Vincent"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:69
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<othername><![CDATA[Bernardo Antonio Buffa Colomé]]></othername> "
|
||||
"<email>kreimer@bbs.frc.utn.edu.ar</email>"
|
||||
msgid "Sebastien"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:79
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Vincent</firstname> <surname>Ricard</surname>"
|
||||
msgid "Michael"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:83
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Sebastien</firstname> <surname>Cesbron</surname>"
|
||||
msgid "Baptiste"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:87
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Michael</firstname> <surname>Courcy</surname>"
|
||||
msgid "Anthony"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:91
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Vincent</firstname> <surname>Giguère</surname>"
|
||||
msgid "Alvaro"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:95
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Baptiste</firstname> <surname>Mathus</surname>"
|
||||
msgid "Anderson"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:99
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<othercredit><firstname>Emmanuel</firstname> <surname>Bernard</surname></"
|
||||
"othercredit>"
|
||||
msgid "Daniel Vieira"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:103
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Anthony</firstname> <surname>Patricio</surname>"
|
||||
msgid "Francisco"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:113
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Alvaro</firstname> <surname>Netto</surname> "
|
||||
"<email>alvaronetto@cetip.com.br</email>"
|
||||
msgid "Gamarra"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:118
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Anderson</firstname> <surname>Braulio</surname> "
|
||||
"<email>andersonbraulio@gmail.com</email>"
|
||||
msgid "Luiz Carlos"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:123
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Daniel Vieira</firstname> <surname>Costa</surname> "
|
||||
"<email>danielvc@gmail.com</email>"
|
||||
msgid "Marcel"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:128
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Francisco</firstname> <surname>gamarra</surname> <email>francisco."
|
||||
"gamarra@gmail.com</email>"
|
||||
msgid "Paulo"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:133
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Gamarra</firstname> <email>mauricio.gamarra@gmail.com</email>"
|
||||
msgid "Pablo L."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:137
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Luiz Carlos</firstname> <surname>Rodrigues</surname> "
|
||||
"<email>luizcarlos_rodrigues@yahoo.com.br</email>"
|
||||
msgid "Renato"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:142
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Marcel</firstname> <surname>Castelo</surname> <email>marcel."
|
||||
"castelo@gmail.com</email>"
|
||||
msgid "Rogério"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:147
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Paulo</firstname> <surname>César</surname> <email>paulocol@gmail."
|
||||
"com</email>"
|
||||
msgid "Wanderson"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:152
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Pablo L.</firstname> <surname>de Miranda</surname> "
|
||||
"<email>pablolmiranda@gmail.com</email>"
|
||||
msgid "Cao"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:157
|
||||
#. Tag: orgname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Renato</firstname> <surname>Deggau</surname> <email>rdeggau@gmail."
|
||||
"com</email>"
|
||||
msgid "RedSaga"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:162
|
||||
#. Tag: contrib
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Rogério</firstname> <surname>Araújo</surname> "
|
||||
"<email>rgildoaraujo@yahoo.com.br</email>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:167
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Wanderson</firstname> <surname>Siqueira</surname> "
|
||||
"<email>wandersonxs@gmail.com</email>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:178
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Cao</firstname> <surname>Xiaogang</surname> <affiliation> "
|
||||
"<orgname>RedSaga</orgname> </affiliation> <contrib>Translation Lead</"
|
||||
"contrib> <email>caoxg@yahoo.com</email>"
|
||||
msgid "Translation Lead"
|
||||
msgstr ""
|
||||
|
|
|
@ -1,99 +1,102 @@
|
|||
#, fuzzy
|
||||
# translation of architecture.po to
|
||||
# Michael H. Smith <mhideo@redhat.com>, 2007.
|
||||
# Angela Garcia <agarcia@redhat.com>, 2009, 2010.
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: architecture\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-10 21:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-02-10T07:25:34\n"
|
||||
"PO-Revision-Date: 2010-01-04 10:30+1000\n"
|
||||
"Last-Translator: Angela Garcia <agarcia@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:30
|
||||
#, no-c-format
|
||||
msgid "Architecture"
|
||||
msgstr "Arquitectura"
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:33
|
||||
#, no-c-format
|
||||
msgid "Overview"
|
||||
msgstr "Visión General"
|
||||
msgstr "Sinopsis"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:35
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The diagram below provides a high-level view of the Hibernate architecture:"
|
||||
msgstr "Una visión a (muy) alto nivel de la arquitectura de Hibernate:"
|
||||
msgstr ""
|
||||
"El diagrama a continuación brinda una perspectiva a alto nivel de la "
|
||||
"arquitectura de Hibernate:"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:50
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"We do not have the scope in this document to provide a more detailed view of "
|
||||
"all the runtime architectures available; Hibernate is flexible and supports "
|
||||
"several different approaches. We will, however, show the two extremes: "
|
||||
"\"minimal\" architecture and \"comprehensive\" architecture."
|
||||
msgstr ""
|
||||
"Nos gustaría mostrar una vista más detallada de la "
|
||||
"arquitectura de tiempo de ejecución. Desafortunadamente, Hibernate es "
|
||||
"flexible y soporta diferentes enfoques. Mostraremos los dos extremos. En la "
|
||||
"arquitectura \"sencilla\", es la aplicación la que provee su propias "
|
||||
"conexiones JDBC y gestiona sus propias transacciones. Este enfoque usa un "
|
||||
"mínimo subconjunto de la API de Hibernate:"
|
||||
"Este documento no incluye una sinopsis detallada de la arquitecturas en "
|
||||
"tiempo de ejecución disponibles; Hibernate es flexible y soporta diferentes "
|
||||
"enfoques. Sin embargo, mostraremos los dos extremos: la arquitectura \"mínima"
|
||||
"\" y la arquitectura \"completa\"."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:56
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This next diagram illustrates how Hibernate utilizes database and "
|
||||
"configuration data to provide persistence services, and persistent objects, "
|
||||
"to the application."
|
||||
msgstr ""
|
||||
"Este diagrama muestra a Hibernate usando la base de datos y los datos de "
|
||||
"configuración para proveer servicios de persistencia (y objetos "
|
||||
"persistentes) a la aplicación."
|
||||
"Este diagrama ilustra la manera en que Hibernate utiliza la base de datos y "
|
||||
"los datos de configuración para proporcionar servicios de persistencia y "
|
||||
"objetos persistentes a la aplicación."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:61
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The \"minimal\" 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 ""
|
||||
"Nos gustaría mostrar una vista más detallada de la "
|
||||
"arquitectura de tiempo de ejecución. Desafortunadamente, Hibernate es "
|
||||
"flexible y soporta diferentes enfoques. Mostraremos los dos extremos. En la "
|
||||
"arquitectura \"sencilla\", es la aplicación la que provee su propias "
|
||||
"conexiones JDBC y gestiona sus propias transacciones. Este enfoque usa un "
|
||||
"mínimo subconjunto de la API de Hibernate:"
|
||||
"La arquitectura \"mínima\" hace que la aplicación proporcione sus propias "
|
||||
"conexiones JDBC y que administre sus propias transacciones. Este enfoque "
|
||||
"utiliza un subgrupo mínimo de las APIs de Hibernate:"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:78
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The \"comprehensive\" architecture abstracts the application away from the "
|
||||
"underlying JDBC/JTA APIs and allows Hibernate to manage the details."
|
||||
msgstr ""
|
||||
"La arquitectura \"full cream\" abstrae a la aplicación de las APIs de "
|
||||
"JDBC/JTA y deja que Hibernate se encargue de los detalles."
|
||||
"La arquitectura \"completa\" abstrae la aplicación de las APIs de JDBC/JTA y "
|
||||
"permite que Hibernate se encargue de los detalles."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:92
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Here are some definitions of the objects depicted in the diagrams:"
|
||||
msgstr "He aquí algunas definiciones de los objetos en los diagramas:"
|
||||
msgstr "He aquí algunas definiciones de los objetos en los diagramas: "
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:97
|
||||
#, no-c-format
|
||||
msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
|
||||
msgstr "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:99
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A threadsafe, immutable cache of compiled mappings for a single database. A "
|
||||
"factory for <literal>Session</literal> and a client of "
|
||||
|
@ -101,21 +104,19 @@ msgid ""
|
|||
"hold an optional (second-level) cache of data that is reusable between "
|
||||
"transactions at a process, or cluster, level."
|
||||
msgstr ""
|
||||
"Caché threadsafe (inmutable) de mapeos compilados para una sola base "
|
||||
"de datos. Es una fábrica de <literal>Session</literal> y un cliente "
|
||||
"de <literal>ConnectionProvider</literal>. Opcionalmente, puede mantener una "
|
||||
"caché (de segundo nivel) de datos reusables entre transacciones, a un "
|
||||
"nivel de proceso o de cluster."
|
||||
"Un caché threadsafe (inmutable) de mapeos compilados para una sola base de "
|
||||
"datos. Una fábrica de <literal>Session</literal> y un cliente de "
|
||||
"<literal>ConnectionProvider</literal>, <literal>SessionFactory</literal> "
|
||||
"puede mantener un caché opcional (de segundo nivel) de datos reusables entre "
|
||||
"transacciones a nivel de proceso o de clúster."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:109
|
||||
#, no-c-format
|
||||
msgid "Session (<literal>org.hibernate.Session</literal>)"
|
||||
msgstr "Session (<literal>org.hibernate.Session</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:111
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A single-threaded, short-lived object representing a conversation between "
|
||||
"the application and the persistent store. It wraps a JDBC connection and is "
|
||||
|
@ -123,22 +124,20 @@ msgid ""
|
|||
"holds a mandatory first-level cache of persistent objects that are used when "
|
||||
"navigating the object graph or looking up objects by identifier."
|
||||
msgstr ""
|
||||
"Objeto mono-hebra, de corta vida que representa una conversación "
|
||||
"entre la aplicación y el almacenamiento persistente. Envuelve una "
|
||||
"conexión JDBC. Es una fábrica de <literal>Transaction</"
|
||||
"literal>. Mantiene una caché requerida (de primer nivel) de objetos "
|
||||
"persistentes, usada mientras se navega el grafo de objetos o se recuperen "
|
||||
"objetos por identificador."
|
||||
"Un objeto mono-hebra, de corta vida que representa una conversación entre la "
|
||||
"aplicación y el almacenamiento persistente. Envuelve una conexión JDBC y es "
|
||||
"una fábrica de <literal>Transaction</literal>. <literal>Session</literal> "
|
||||
"mantiene un caché requerido de primer nivel de objetos persistentes, que se "
|
||||
"utiliza cuando se navega el gráfico de objetos o mientras se buscan objetos "
|
||||
"por identificador."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:121
|
||||
#, no-c-format
|
||||
msgid "Persistent objects and collections"
|
||||
msgstr "Objetos y colecciones persistentes"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:123
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Short-lived, single threaded objects containing persistent state and "
|
||||
"business function. These can be ordinary JavaBeans/POJOs. They are "
|
||||
|
@ -147,45 +146,39 @@ msgid ""
|
|||
"in any application layer (for example, directly as data transfer objects to "
|
||||
"and from presentation)."
|
||||
msgstr ""
|
||||
"Objetos de corta vida, mono-hebra conteniendo estado persistente y "
|
||||
"funciónalidad de negocio. Estos pueden ser JavaBeans/POJOs (Plain Old "
|
||||
"Java Objects, o sea, cualquier objeto Java), la única cosa especial "
|
||||
"en ellos es que estan asociados actualmente con una (y sólo una) "
|
||||
"<literal>Session</literal>. Tan pronto como la <literal>Session</literal> "
|
||||
"sea cerrada, serán separados y estarán libres para ser usados "
|
||||
"en cualquier capa de aplicación. (por ejemplo, directamente como "
|
||||
"objetos de transferencia de datos hacia y desde la capa de presentació"
|
||||
"n)."
|
||||
"Objetos de corta vida, mono-hebra contienen un estado persistente así como "
|
||||
"una funcionalidad empresarial. Estos pueden ser JavaBeans/POJOs normales. "
|
||||
"Estos se encuentran asociados con exactamente una <literal>Session</"
|
||||
"literal>. Tan pronto como la <literal>Session</literal> se cierre, serán "
|
||||
"separados y estarán libres para utilizarlos en cualquier capa de aplicación, "
|
||||
"(por ejemplo, directamente como objetos de transferencia de datos hacia y "
|
||||
"desde la presentación)."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:133
|
||||
#, no-c-format
|
||||
msgid "Transient and detached objects and collections"
|
||||
msgstr "Objetos y colecciones transitorios y separados"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:135
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Instances of persistent classes that are not currently associated with a "
|
||||
"<literal>Session</literal>. They may have been instantiated by the "
|
||||
"application and not yet persisted, or they may have been instantiated by a "
|
||||
"closed <literal>Session</literal>."
|
||||
msgstr ""
|
||||
"Instancias de clases persistentes que no estan acutualmente asociadas con "
|
||||
"una <literal>Session</literal>. Pueden haber sido instanciadas por la "
|
||||
"aplicación y (aún) no haber sido hechas persistentes, o pueden "
|
||||
"haber sido instanciadas por una <literal>Session</literal> cerrada."
|
||||
"Instancias de clases persistentes que no se encuentran actualmente asociadas "
|
||||
"con una <literal>Session</literal>. Pueden haber sido instanciadas por la "
|
||||
"aplicación y aún no haber sido persistidas, o pueden haber sido instanciadas "
|
||||
"por una <literal>Session</literal> cerrada."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:144
|
||||
#, no-c-format
|
||||
msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
|
||||
msgstr "Transaction (<literal>org.hibernate.Transaction</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:146
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"(Optional) A single-threaded, short-lived object used by the application to "
|
||||
"specify atomic units of work. It abstracts the application from the "
|
||||
|
@ -194,16 +187,15 @@ msgid ""
|
|||
"transaction demarcation, either using the underlying API or "
|
||||
"<literal>Transaction</literal>, is never optional."
|
||||
msgstr ""
|
||||
"(Opcional) Un objeto de corta vida, mono-hebra, usado por la aplicació"
|
||||
"n para especificar unidades atómicas de trabajo. Abstrae a la "
|
||||
"aplicación de las subyacentes transacciones JDBC, JTA o CORBA. En "
|
||||
"algunos casos, una <literal>Session</literal> puede extenderse sobre varias "
|
||||
"<literal>Transaction</literal>s. Sin embargo, la demarcación de la "
|
||||
"transacción, ya sea usando la API subyacente o <literal>Transaction</"
|
||||
"literal>, nunca es opcional!"
|
||||
"(Opcional) Un objeto de corta vida, mono-hebra que la aplicación utiliza "
|
||||
"para especificar unidades atómicas de trabajo. Abstrae la aplicación de las "
|
||||
"transacciones subyacentes JDBC, JTA o CORBA. En algunos casos, una "
|
||||
"<literal>Session</literal> puede extenderse sobre varias "
|
||||
"<literal>Transaction</literal>es. Sin embargo, la demarcación de la "
|
||||
"transacción, ya sea utilizando la API subyacente o <literal>Transaction</"
|
||||
"literal>, nunca es opcional."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:157
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
|
||||
|
@ -213,22 +205,19 @@ msgstr ""
|
|||
"literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:159
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"(Optional) A factory for, and pool of, JDBC connections. It abstracts the "
|
||||
"application from underlying <literal>Datasource</literal> or "
|
||||
"<literal>DriverManager</literal>. It is not exposed to application, but it "
|
||||
"can be extended and/or implemented by the developer."
|
||||
msgstr ""
|
||||
"(Opcional) Una fábrica (y pool) de conexiones JDBC. Abstrae a la "
|
||||
"aplicación del <literal>Datasource</literal> o "
|
||||
"<literal>DriverManager</literal> subyacente. No se expone a la "
|
||||
"aplicación, pero puede ser extendido/implementado por el "
|
||||
"desarrollador."
|
||||
"(Opcional) Una fábrica y pool de conexiones JDBC. Abstrae a la aplicación "
|
||||
"del <literal>Datasource</literal> o <literal>DriverManager</literal> "
|
||||
"subyacente. No se expone a la aplicación, pero puede ser extendido/"
|
||||
"implementado por el desarrollador."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:167
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
|
||||
|
@ -236,59 +225,52 @@ msgstr ""
|
|||
"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:169
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"(Optional) A factory for <literal>Transaction</literal> instances. It is not "
|
||||
"exposed to the application, but it can be extended and/or implemented by the "
|
||||
"developer."
|
||||
msgstr ""
|
||||
"(Opcional) Una fábrica de instancias de <literal>Transaction</"
|
||||
"literal>. No se expone a la aplicación, pero puede ser extendido/"
|
||||
"implementado por el desarrollador."
|
||||
"(Opcional) Una fábrica de instancias de <literal>Transaction</literal>. No "
|
||||
"se expone a la aplicación pero puede ser extendido/implementado por el "
|
||||
"desarrollador. "
|
||||
|
||||
#. Tag: emphasis
|
||||
#: architecture.xml:176
|
||||
#, no-c-format
|
||||
msgid "Extension Interfaces"
|
||||
msgstr "Interfaces de Extensión"
|
||||
#. Tag: term
|
||||
#, fuzzy, no-c-format
|
||||
msgid "<emphasis>Extension Interfaces</emphasis>"
|
||||
msgstr "<emphasis>Interfaces de extensión</emphasis>"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:178
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate offers a range of optional extension interfaces you can implement "
|
||||
"to customize the behavior of your persistence layer. See the API "
|
||||
"documentation for details."
|
||||
msgstr ""
|
||||
"Hibernate ofrece muchas interfaces de extensión opcional que puedes "
|
||||
"implementar para modificar a medida el comportamiento de tu capa de "
|
||||
"persistencia. Para más detalles, mira la documentación de la "
|
||||
"API."
|
||||
"Hibernate ofrece un rango de interfaces de extensión opcionales que puede "
|
||||
"implementar para personalizar el comportamiento de su capa de persistencia. "
|
||||
"Para obtener más detalles, vea la documentación de la API."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:187
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Given a \"minimal\" architecture, the application bypasses the "
|
||||
"<literal>Transaction</literal>/<literal>TransactionFactory</literal> and/or "
|
||||
"<literal>ConnectionProvider</literal> APIs to communicate with JTA or JDBC "
|
||||
"directly."
|
||||
msgstr ""
|
||||
"Dada una arquitectura \"sencilla\", la aplicación pasa por alto las "
|
||||
"APIs de <literal>Transaction</literal>/<literal>TransactionFactory</literal> "
|
||||
"y/o <literal>ConnectionProvider</literal>, para hablar directamente a JTA o "
|
||||
"JDBC."
|
||||
"Dada una arquitectura \"sencilla\", la aplicación evita las APIs de "
|
||||
"<literal>Transaction</literal>/<literal>TransactionFactory</literal> y/o "
|
||||
"<literal>ConnectionProvider</literal>, para comunicarse directamente con JTA "
|
||||
"o JDBC."
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:195
|
||||
#, no-c-format
|
||||
msgid "Instance states"
|
||||
msgstr "Estados de instancia"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:196
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"An instance of a persistent class can be in one of three different states. "
|
||||
"These states are defined in relation to a <emphasis>persistence context</"
|
||||
|
@ -296,35 +278,32 @@ msgid ""
|
|||
"persistence context. The three different states are as follows:"
|
||||
msgstr ""
|
||||
"Una instancia de una clase persistente puede estar en uno de tres estados "
|
||||
"diferentes, definidos respecto de su <emphasis>contexto de persistencia</"
|
||||
"emphasis>. El objeto <literal>Session</literal> de Hibernate es el contexto "
|
||||
"de persistencia:"
|
||||
"diferentes. Estos estados se definen con respecto a su <emphasis>contexto de "
|
||||
"persistencia</emphasis>. El objeto <literal>Session</literal> de Hibernate "
|
||||
"es el contexto de persistencia. Los tres estados diferentes son los "
|
||||
"siguientes:"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:204
|
||||
#, no-c-format
|
||||
msgid "transient"
|
||||
msgstr "transitorio"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:206
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The instance is not associated with any persistence context. It has no "
|
||||
"persistent identity or primary key value."
|
||||
msgstr ""
|
||||
"La instancia no está y nunca estuvo asociada con un contexto de "
|
||||
"persistencia. No tiene identidad persistente (valor de clave primaria)."
|
||||
"La instancia no está asociada con un contexto de persistencia. No tiene "
|
||||
"identidad persistente o valor de clave principal."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:214
|
||||
#, no-c-format
|
||||
msgid "persistent"
|
||||
msgstr "persistente"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:216
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The instance is currently associated with a persistence context. It has a "
|
||||
"persistent identity (primary key value) and can have a corresponding row in "
|
||||
|
@ -332,22 +311,20 @@ msgid ""
|
|||
"<emphasis>guarantees</emphasis> that persistent identity is equivalent to "
|
||||
"Java identity in relation to the in-memory location of the object."
|
||||
msgstr ""
|
||||
"La instancia está actualmente asociada con un contexto de "
|
||||
"persistencia. Tiene una identidad persistente (valor de clave primaria) y, "
|
||||
"quizás, una fila correspondiente en la base de datos. Para un "
|
||||
"contexto de persistencia en particular, Hibernate <emphasis>garantiza</"
|
||||
"emphasis> que la identidad persistente es equivalente a la identidad Java "
|
||||
"(localización en memoria del objeto)."
|
||||
"La instancia se encuentra actualmente asociada con un contexto de "
|
||||
"persistencia. Tiene una identidad persistente (valor de clave principal) y "
|
||||
"puede tener una fila correspondiente en la base de datos. Para un contexto "
|
||||
"de persistencia en particular, Hibernate <emphasis>garantiza</emphasis> que "
|
||||
"la identidad persistente es equivalente a la identidad Java en relación con "
|
||||
"la ubicación del objeto."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:228
|
||||
#, no-c-format
|
||||
msgid "detached"
|
||||
msgstr "separado"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:230
|
||||
#, fuzzy, no-c-format
|
||||
#, 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 "
|
||||
|
@ -355,49 +332,44 @@ msgid ""
|
|||
"For detached instances, Hibernate does not guarantee the relationship "
|
||||
"between persistent identity and Java identity."
|
||||
msgstr ""
|
||||
"La instancia estuvo una vez asociada con un contexto de persistencia, pero "
|
||||
"ese contexto fue cerrado, o la instancia fue serializada a otro proceso. "
|
||||
"Tiene una identidad persistente y, quizás, una fila correspondiente "
|
||||
"en la base de datos. Para las instancias separadas, Hibernate no establece "
|
||||
"ninguna garantía sobre la relación entre identidad persistente "
|
||||
"e identidad Java."
|
||||
"La instancia estuvo alguna vez asociada con un contexto de persistencia, "
|
||||
"pero ese contexto se cerró, o la instancia fue serializada a otro proceso. "
|
||||
"Tiene una identidad persistente y puede tener una fila correspondiente en la "
|
||||
"base de datos. Para las instancias separadas, Hibernate no establece ninguna "
|
||||
"garantía sobre la relación entre identidad persistente e identidad Java."
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:245
|
||||
#, no-c-format
|
||||
msgid "JMX Integration"
|
||||
msgstr "Integración JMX"
|
||||
msgstr "Integración JMX"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:247
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"JMX is the J2EE standard for the management of Java components. Hibernate "
|
||||
"can be managed via a JMX standard service. AN MBean implementation is "
|
||||
"provided in the distribution: <literal>org.hibernate.jmx.HibernateService</"
|
||||
"literal>."
|
||||
msgstr ""
|
||||
"JMX es el estándar J2EE para la gestión de componentes Java. "
|
||||
"Hibernate puede ser gestionado por medio de un servicio estándar JMX. "
|
||||
"Proveemos una implementación de MBean en la distribución, "
|
||||
"<literal>org.hibernate.jmx.HibernateService</literal>."
|
||||
"JMX es el estándar J2EE para la gestión de componentes Java. Hibernate se "
|
||||
"puede administrar por medio de un servicio estándar JMX. Brindamos una "
|
||||
"implementación de MBean en la distribución: <literal>org.hibernate.jmx."
|
||||
"HibernateService</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:253
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For an example of how to deploy Hibernate as a JMX service on the JBoss "
|
||||
"Application Server, please see the JBoss User Guide. JBoss AS also provides "
|
||||
"these benefits if you deploy using JMX:"
|
||||
msgstr ""
|
||||
"Para ejemplo de cómo desplegar Hibernate como un servicio JMX en un "
|
||||
"Servidor de Aplicaciones JBoss, por favor, mira la Guía del Usuario "
|
||||
"de JBoss. En JBoss AS, tienes además estos beneficios si despliegas "
|
||||
"usando JMX:"
|
||||
"Para ver un ejemplo de cómo desplegar Hibernate como un servicio JMX en un "
|
||||
"servidor de aplicaciones JBoss, por favor, refiérase al manual del usuario "
|
||||
"de JBoss. JBoss AS también proporciona estos beneficios si despliega "
|
||||
"utilizando JMX:"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:261
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<emphasis>Session Management</emphasis>: the Hibernate <literal>Session</"
|
||||
"literal>'s life cycle can be automatically bound to the scope of a JTA "
|
||||
|
@ -409,20 +381,18 @@ msgid ""
|
|||
"the <literal>HibernateContext</literal> to access a <literal>Session</"
|
||||
"literal>."
|
||||
msgstr ""
|
||||
"<emphasis>Gestión de Sesión:</emphasis> El ciclo de vida de la "
|
||||
"<literal>Session</literal> de Hibernate puede estar automáticamente "
|
||||
"ligado al ámbito de una transacción JTA. Esto significa que ya "
|
||||
"no tienes que abrir ni cerrar la <literal>Session</literal> manualmente, "
|
||||
"esto pasa a ser trabajo de un interceptor EJB de JBoss. Además "
|
||||
"tampoco tienes que preocuparte más de la demarcación de la "
|
||||
"transacción (a menos que que quieras escribir una capa de persitencia "
|
||||
"portable, por supuesto, usa la API de <literal>Transaction</literal> de "
|
||||
"Hibernate para esto). Para acceder a una <literal>Session</literal> llama al "
|
||||
"<literal>HibernateContext</literal>."
|
||||
"<emphasis>Administración de Sesión:</emphasis> El ciclo de vida de la "
|
||||
"<literal>Session</literal> de Hibernate puede estar ligado automáticamente "
|
||||
"al ámbito de una transacción JTA. Esto significa que ya no tiene que abrir "
|
||||
"ni cerrar la <literal>Session</literal> manualmente, esto pasa a ser el "
|
||||
"trabajo de un interceptor EJB de JBoss. Además tampoco tiene que preocuparse "
|
||||
"más de la demarcación de la transacción en su código (a menos de que quiera "
|
||||
"escribir una capa de persitencia portátil, utilice la API de "
|
||||
"<literal>Transaction</literal> de Hibernate para hacer esto). Para acceder a "
|
||||
"una <literal>Session</literal> llame al <literal>HibernateContext</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:273
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<emphasis>HAR deployment</emphasis>: the Hibernate JMX service is deployed "
|
||||
"using a JBoss service deployment descriptor in an EAR and/or SAR file, as it "
|
||||
|
@ -432,63 +402,56 @@ msgid ""
|
|||
"deployment, JBoss will automatically detect all mapping files in your HAR "
|
||||
"file."
|
||||
msgstr ""
|
||||
"<emphasis>Despliegue de HAR:</emphasis> Usualmente despliegas el servicio "
|
||||
"JMX de Hibernate usando un descriptor de despliegue de servicio de JBoss (en "
|
||||
"un fichero EAR y/o SAR), que soporta todas las opciones de "
|
||||
"configuración usuales de una <literal>SessionFactory</literal> de "
|
||||
"Hibernate. Sin embargo, todavía tienes que nombrar todos tus ficheros "
|
||||
"de mapeo en el descriptor de despliegue. Si decides usar el depliegue de HAR "
|
||||
"opcional, JBoss detectará automáticamente todos los ficheros "
|
||||
"de mapeo en tu fichero HAR."
|
||||
"<emphasis>Despliegue HAR:</emphasis>: el servicio JMX de Hibernate se "
|
||||
"implementa usando un descriptor de despliegue de servicio de JBoss en un "
|
||||
"archivo EAR y/o SAR, que soporta todas las opciones de configuración usuales "
|
||||
"de una <literal>SessionFactory</literal> de Hibernate. Sin embargo, todavía "
|
||||
"tiene que nombrar todos sus archivos de mapeo en el descriptor de "
|
||||
"despliegue. Si utiliza el depliegue HAR opcional, JBoss detectará "
|
||||
"automáticamente todos los archivos de mapeo en su archivo HAR."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:284
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Consult the JBoss AS user guide for more information about these options."
|
||||
msgstr ""
|
||||
"Para más información sobre estas opciones, consulta la "
|
||||
"Guía de Usuario del JBoss AS."
|
||||
"Para más información sobre estas opciones, consulte el Manual de Usuario de "
|
||||
"JBoss AS."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:288
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Another feature available as a JMX service is runtime Hibernate statistics. "
|
||||
"See <xref linkend=\"configuration-optional-statistics\"/> for more "
|
||||
"See <xref linkend=\"configuration-optional-statistics\" /> for more "
|
||||
"information."
|
||||
msgstr ""
|
||||
"Otra funcionalidad disponible como un servicio JMX son las estadí"
|
||||
"sticas en tiempo de ejecución de Hibernate. Mira <xref linkend="
|
||||
"\"configuration-optional-statistics\"/>."
|
||||
"Otra funcionalidad disponible como un servicio de JMX son las estadísticas "
|
||||
"en tiempo de ejecución de Hibernate. Consulte <xref linkend=\"configuration-"
|
||||
"optional-statistics\" /> para obtener mayor información."
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:295
|
||||
#, no-c-format
|
||||
msgid "JCA Support"
|
||||
msgstr "Soporte JCA:"
|
||||
msgstr "Soporte JCA"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:296
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate can also be configured as a JCA connector. Please see the website "
|
||||
"for more information. Please note, however, that at this stage Hibernate JCA "
|
||||
"support is under development."
|
||||
msgstr ""
|
||||
"Hiberate puede además ser configurado como un conector JCA. Por favor "
|
||||
"mira el sitio web para más detalles. Por favor ten en cuenta que el "
|
||||
"soporte de JCA de Hibernate está aún considerado experimental."
|
||||
"Hibernate también puede ser configurado como un conector JCA. Por favor "
|
||||
"refiérase al sitio web para encontrar más detalles. Sin embargo, tenga en "
|
||||
"cuenta que el soporte de JCA de Hibernate aún está bajo desarrollo."
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:303
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Contextual sessions"
|
||||
msgstr "UNTRANSLATED! Contextual Sessions"
|
||||
msgstr "Sesiones contextuales"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:304
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Most applications using Hibernate need some form of \"contextual\" session, "
|
||||
"where a given session is in effect throughout the scope of a given context. "
|
||||
|
@ -500,19 +463,20 @@ msgid ""
|
|||
"utilized third-party frameworks, such as Spring or Pico, which provided "
|
||||
"proxy/interception-based contextual sessions."
|
||||
msgstr ""
|
||||
"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 <literal>ThreadLocal</literal>-based contextual "
|
||||
"sessions, helper classes such as <literal>HibernateUtil</literal>, or "
|
||||
"utilized third-party frameworks (such as Spring or Pico) which provided "
|
||||
"proxy/interception-based contextual sessions."
|
||||
"La mayoría de las aplicaciones que utilizan Hibernate necesitan alguna forma "
|
||||
"de sesiones \"contextuales\", en donde una sesión dada se encuentra en "
|
||||
"efecto en todo el campo de acción de un contexto dado. Sin embargo, a través "
|
||||
"de las aplicaciones la definición de lo que constituye un contexto es "
|
||||
"usualmente diferente y diferentes contextos definen diferentes campos de "
|
||||
"acción para la noción de actual. Las aplicaciones que utiliza Hibernate "
|
||||
"antes de la version 3.0 tienden a utilizar ya sea sesiones contextuales con "
|
||||
"base <literal>ThreadLocal</literal> desarrollados en casa, las clases "
|
||||
"ayudantes tales como <literal>HibernateUtil</literal>, o enfoques de "
|
||||
"terceros utilizados, como Spring o Pico, los cuales brindaban sesiones "
|
||||
"contextuales con base proxy/intercepción."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:313
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.0.1, Hibernate added the <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> method. Initially, this assumed usage of "
|
||||
|
@ -524,20 +488,20 @@ msgid ""
|
|||
"deployed into a <literal>J2EE</literal> container. Based on that, the "
|
||||
"<literal>JTA</literal>-based contextual sessions are all you need to use."
|
||||
msgstr ""
|
||||
"Starting with version 3.0.1, Hibernate added the <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> method. Initially, this assumed usage of "
|
||||
"<literal>JTA</literal> transactions, where the <literal>JTA</literal> "
|
||||
"transaction defined both the scope and context of a current session. The "
|
||||
"Hibernate team maintains that, given the maturity of the numerous stand-"
|
||||
"alone <literal>JTA TransactionManager</literal> implementations out there, "
|
||||
"most (if not all) applications should be using <literal>JTA</literal> "
|
||||
"transaction management whether or not they are deployed into a "
|
||||
"<literal>J2EE</literal> container. Based on that, the <literal>JTA</literal>-"
|
||||
"based contextual sessions is all you should ever need to use."
|
||||
"Comenzando con la version 3.0.1, Hibernate agregó el método "
|
||||
"<literal>SessionFactory.getCurrentSession()</literal>. Inicialmente, este "
|
||||
"asumió la utilización de las transacciones <literal>JTA</literal>, en donde "
|
||||
"la transacción <literal>JTA</literal> definia tanto el contexto como el "
|
||||
"campo de acción de una sesión actual. Dada la madurez de númerosas "
|
||||
"implementaciones <literal>JTA TransactionManager</literal> autónomas "
|
||||
"existentes, la mayoría, si no es que todas, las aplicaciones deberían "
|
||||
"utilizar la administración de transacciones <literal>JTA</literal> en el "
|
||||
"caso de que se deplieguen o no en un contenedor <literal>J2EE</literal>. Con "
|
||||
"base en esto, las sesiones contextuales basadas en <literal>JTA</literal> es "
|
||||
"todo lo que usted necesita utilizar."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:323
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"However, as of version 3.1, the processing behind <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> is now pluggable. To that end, a new extension "
|
||||
|
@ -546,16 +510,16 @@ msgid ""
|
|||
"current_session_context_class</literal>, have been added to allow "
|
||||
"pluggability of the scope and context of defining current sessions."
|
||||
msgstr ""
|
||||
"However, as of version 3.1, the processing behind <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> is now pluggable. To that end, a new extension "
|
||||
"interface (<literal>org.hibernate.context.CurrentSessionContext</literal>) "
|
||||
"and a new configuration parameter (<literal>hibernate."
|
||||
"current_session_context_class</literal>) have been added to allow "
|
||||
"pluggability of the scope and context of defining current sessions."
|
||||
"Sin embargo, desde la versión 3.1, el procesamiento detrás de "
|
||||
"<literal>SessionFactory.getCurrentSession()</literal> ahora es conectable. "
|
||||
"Para ese fin, se ha añadido una nueva interfaz de extensión, <literal>org."
|
||||
"hibernate.context.CurrentSessionContext</literal>, y un nuevo parámetro de "
|
||||
"configuración, <literal>hibernate.current_session_context_class</literal> "
|
||||
"para permitir la conexión del campo de acción y el contexto de definición de "
|
||||
"las sesiones actuales."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:330
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"See the Javadocs for the <literal>org.hibernate.context."
|
||||
"CurrentSessionContext</literal> interface for a detailed discussion of its "
|
||||
|
@ -564,54 +528,51 @@ msgid ""
|
|||
"contextual session. Out-of-the-box, Hibernate comes with three "
|
||||
"implementations of this interface:"
|
||||
msgstr ""
|
||||
"See the Javadocs for the <literal>org.hibernate.context."
|
||||
"CurrentSessionContext</literal> interface for a detailed discussion of its "
|
||||
"contract. It defines a single method, <literal>currentSession()</literal>, "
|
||||
"by which the implementation is responsible for tracking the current "
|
||||
"contextual session. Out-of-the-box, Hibernate comes with three "
|
||||
"implementations of this interface."
|
||||
"Refiérase a los Javadocs para la interfaz <literal>org.hibernate.context."
|
||||
"CurrentSessionContext</literal> para poder ver una discusión detallada de su "
|
||||
"contrato. Define un método único, <literal>currentSession()</literal>, por "
|
||||
"medio del cual la implementación es responsable de rastrear la sesión "
|
||||
"contextual actual. Tal como viene empacada, Hibernate incluye tres "
|
||||
"implementaciones de esta interfaz:"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:340
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<literal>org.hibernate.context.JTASessionContext</literal>: current sessions "
|
||||
"are tracked and scoped by a <literal>JTA</literal> transaction. The "
|
||||
"processing here is exactly the same as in the older JTA-only approach. See "
|
||||
"the Javadocs for details."
|
||||
msgstr ""
|
||||
"<literal>org.hibernate.context.JTASessionContext</literal> - current "
|
||||
"sessions are tracked and scoped by a <literal>JTA</literal> transaction. The "
|
||||
"processing here is exactly the same as in the older JTA-only approach. See "
|
||||
"the Javadocs for details."
|
||||
"<literal>org.hibernate.context.JTASessionContext</literal>: una transacción "
|
||||
"<literal>JTA</literal> rastrea y asume las sesiones actuales. Aquí el "
|
||||
"procesamiento es exactamente el mismo que en el enfoque más antiguo de JTA-"
|
||||
"sólamente. Refiérase a los Javadocs para obtener más información."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:348
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<literal>org.hibernate.context.ThreadLocalSessionContext</literal>:current "
|
||||
"sessions are tracked by thread of execution. See the Javadocs for details."
|
||||
msgstr ""
|
||||
"<literal>org.hibernate.context.ThreadLocalSessionContext</literal> - current "
|
||||
"sessions are tracked by thread of execution. Again, see the Javadocs for "
|
||||
"details."
|
||||
"<literal>org.hibernate.context.ThreadLocalSessionContext</literal>: las "
|
||||
"sesiones actuales son rastreadas por un hilo de ejecución. Consulte los "
|
||||
"Javadocs para obtener más detalles."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:354
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<literal>org.hibernate.context.ManagedSessionContext</literal>: current "
|
||||
"sessions are tracked by thread of execution. However, you are responsible to "
|
||||
"bind and unbind a <literal>Session</literal> instance with static methods on "
|
||||
"this class: it does not open, flush, or close a <literal>Session</literal>."
|
||||
msgstr ""
|
||||
"<literal>org.hibernate.context.ManagedSessionContext</literal> - current "
|
||||
"sessions are tracked by thread of execution. However, you are responsible to "
|
||||
"bind and unbind a <literal>Session</literal> instance with static methods on "
|
||||
"this class, it does never open, flush, or close a <literal>Session</literal>."
|
||||
"<literal>org.hibernate.context.ManagedSessionContext</literal>: las sesiones "
|
||||
"actuales son rastreadas por un hilo de ejecución. Sin embargo, usted es "
|
||||
"responsable de vincular y desvincular una instancia <literal>Session</"
|
||||
"literal> con métodos estáticos en esta clase: no abre, vacia o cierra una "
|
||||
"<literal>Session</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:363
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"The first two implementations provide a \"one session - one database "
|
||||
|
@ -624,24 +585,26 @@ msgid ""
|
|||
"utilize the JTA interfaces to demarcate transactions. If you execute in an "
|
||||
"EJB container that supports CMT, transaction boundaries are defined "
|
||||
"declaratively and you do not need any transaction or session demarcation "
|
||||
"operations in your code. Refer to <xref linkend=\"transactions\"/> for more "
|
||||
"operations in your code. Refer to <xref linkend=\"transactions\" /> for more "
|
||||
"information and code examples."
|
||||
msgstr ""
|
||||
"The first two implementations provide a \"one session - one database "
|
||||
"transaction\" programming model, also known and used as <emphasis>session-"
|
||||
"per-request</emphasis>. 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 <literal>Transaction</literal> 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 <xref "
|
||||
"linkend=\"transactions\"/> for more information and code examples."
|
||||
"Las primeras dos implementaciones brindan un modelo de programación \"una "
|
||||
"sesión - una transacción de la base de datos\". También conocido y utilizado "
|
||||
"como una <emphasis>sesión-por-petición</emphasis>. El inicio y el final de "
|
||||
"una sesión Hibernate se define por la duración de una transacción de una "
|
||||
"base de datos. Si utiliza la demarcación de transacción programática en JSE "
|
||||
"sencillo sin JTA, se le aconseja que utilice el API <literal>Transaction</"
|
||||
"literal> de Hibernate para esconder el sistema de transacción subyacente de "
|
||||
"su código. Si utiliza JTA, utilice las interfaces JTA para demarcar "
|
||||
"transacciones. Si utiliza JTA, puede utilizar las interfaces JTA para "
|
||||
"demarcar transacciones. Si ejecuta en un contenedor EJB que soporta CMT, los "
|
||||
"límites de la transacción están definidos declarativamente y no necesita "
|
||||
"ninguna operación de demarcación de sesión o transacción en su código. "
|
||||
"Consulte <xref linkend=\"transactions\" /> para obtener más información y "
|
||||
"ejemplos de código."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:375
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>hibernate.current_session_context_class</literal> configuration "
|
||||
"parameter defines which <literal>org.hibernate.context."
|
||||
|
@ -654,19 +617,13 @@ msgid ""
|
|||
"however, there are three corresponding short names: \"jta\", \"thread\", and "
|
||||
"\"managed\"."
|
||||
msgstr ""
|
||||
"The <literal>hibernate.current_session_context_class</literal> configuration "
|
||||
"parameter defines which <literal>org.hibernate.context."
|
||||
"CurrentSessionContext</literal> implementation should be used. Note that for "
|
||||
"backwards compatibility, if this config param is not set but a <literal>org."
|
||||
"hibernate.transaction.TransactionManagerLookup</literal> is configured, "
|
||||
"Hibernate will use the <literal>org.hibernate.context.JTASessionContext</"
|
||||
"literal>. 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\"."
|
||||
|
||||
#~ msgid "ROLES_OF_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
#~ msgid "CREDIT_FOR_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
"El parámetro de configuración <literal>hibernate."
|
||||
"current_session_context_class</literal> define cuales implementaciones "
|
||||
"<literal>org.hibernate.context.CurrentSessionContext</literal> deben "
|
||||
"utilizarse. Para compatibilidad con versiones anteriores, si este parámetro "
|
||||
"de configuración no está establecido pero si tiene configurado un "
|
||||
"<literal>org.hibernate.transaction.TransactionManagerLookup</literal>, "
|
||||
"Hibernate utilizará el <literal>org.hibernate.context.JTASessionContext</"
|
||||
"literal>. Usualmente el valor de este parámetro sólamente nombraría la clase "
|
||||
"de implementación a utilizar. Sin embargo, para las tres implementaciones "
|
||||
"incluídas existen tress nombres cortos: \"jta\", \"thread\" y \"managed\"."
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,249 +1,140 @@
|
|||
#, fuzzy
|
||||
# translation of batch.po to
|
||||
# Michael H. Smith <mhideo@redhat.com>, 2007.
|
||||
# Angela Garcia <agarcia@redhat.com>, 2009, 2010.
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: batch\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-10 21:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:15\n"
|
||||
"PO-Revision-Date: 2010-01-07 10:48+1000\n"
|
||||
"Last-Translator: Angela Garcia <agarcia@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:29
|
||||
#, no-c-format
|
||||
msgid "Batch processing"
|
||||
msgstr "Procesamiento por lotes"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:31
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A naive approach to inserting 100,000 rows in the database using Hibernate "
|
||||
"might look like this:"
|
||||
msgstr ""
|
||||
"Un enfoque ingenuo para insertar 100.000 filas en la base de datos usando "
|
||||
"Hibernate podría verse así:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:36
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"for ( int i=0; i<100000; i++ ) {\n"
|
||||
" Customer customer = new Customer(.....);\n"
|
||||
" session.save(customer);\n"
|
||||
"}\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"for ( int i=0; i<100000; i++ ) {\n"
|
||||
" Customer customer = new Customer(.....);\n"
|
||||
" session.save(customer);\n"
|
||||
"}\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
"Un enfoque ingenuo para insertar 100.000 filas en la base de datos "
|
||||
"utilizando Hibernate puede verse así: "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:38
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This would fall over with an <literal>OutOfMemoryException</literal> "
|
||||
"somewhere around the 50,000th row. That is because Hibernate caches all the "
|
||||
"newly inserted <literal>Customer</literal> instances in the session-level "
|
||||
"cache. In this chapter we will show you how to avoid this problem."
|
||||
msgstr ""
|
||||
"Esto podría caer sobre una <literal>OutOfMemoryException</literal> en algún "
|
||||
"sitio cerca de la fila 50.000. Esto es porque Hibernate tiene en caché todas "
|
||||
"las instancias de <literal>Customer</literal> recién instanciadas en el "
|
||||
"caché de nivel de sesión."
|
||||
"Esto podría caer dentro de una <literal>OutOfMemoryException</literal> en "
|
||||
"algún sitio cerca de la fila 50.000. Esto se debe a que Hibernate tiene en "
|
||||
"caché todas las instancias de <literal>Customer</literal> recién insertadas "
|
||||
"en el caché de nivel de sesión. En este capítulo le vamos a mostrar cómo "
|
||||
"evitar este problema."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:45
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you are undertaking batch processing you will need to enable the use of "
|
||||
"JDBC batching. This is absolutely essential if you want to achieve optimal "
|
||||
"performance. Set the JDBC batch size to a reasonable number (10-50, for "
|
||||
"example):"
|
||||
msgstr ""
|
||||
"En este capítulo te mostraremos cómo evitar este problema. Primero, sin "
|
||||
"embargo, si estás haciendo procesamiento por lotes (batch processing), es "
|
||||
"absolutamente crítico que habilites el uso de loteo JDBC, si pretendes "
|
||||
"lograr un rendimiento razonable. Establece el tamaño de lote JDBC a un "
|
||||
"número razonable (digamos 10-50):"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:52
|
||||
#, no-c-format
|
||||
msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
|
||||
msgstr "<![CDATA[hibernate.jdbc.batch_size 20]]>"
|
||||
"Si está realizando un procesamiento por lotes (batch processing), es "
|
||||
"necesario que habilite el uso del lote JDBC. Esto es esencial si quiere "
|
||||
"lograr un rendimiento óptimo. Establezca el tamaño de lote JDBC con un "
|
||||
"número razonable (por ejemplo, 10-50):"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:54
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate disables insert batching at the JDBC level transparently if you "
|
||||
"use an <literal>identity</literal> identifier generator."
|
||||
msgstr ""
|
||||
"UNTRANSLATED! Note that Hibernate disables insert batching at the JDBC level "
|
||||
"transparently if you use an <literal>identiy</literal> identifier generator."
|
||||
"Hibernate desactiva el lote de inserción a nivel de JDBC de forma "
|
||||
"transparente si usted utiliza un generador de identificador "
|
||||
"<literal>identiy</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:59
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can also do this kind of work in a process where interaction with the "
|
||||
"second-level cache is completely disabled:"
|
||||
msgstr ""
|
||||
"Podrías además querer hacer este tipo de trabajo en un proceso donde la "
|
||||
"interacción con el caché de segundo nivel esté completamente deshabilitado:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:64
|
||||
#, no-c-format
|
||||
msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
|
||||
msgstr "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
|
||||
"También puede realizar este tipo de trabajo en un proceso en donde la "
|
||||
"interacción con el caché de segundo nivel se encuentre completamente "
|
||||
"desactivado:"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:66
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"However, this is not absolutely necessary, since we can explicitly set the "
|
||||
"<literal>CacheMode</literal> to disable interaction with the second-level "
|
||||
"cache."
|
||||
msgstr ""
|
||||
"UNTRANSLATED! However, this is not absolutely necessary, since we can "
|
||||
"explicitly set the <literal>CacheMode</literal> to disable interaction with "
|
||||
"the second-level cache."
|
||||
"Sin embargo, esto no es absolutamente necesario ya que podemos establecer "
|
||||
"explícitamente el <literal>CacheMode</literal> para descativar la "
|
||||
"interacción con el caché de segundo nivel."
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:72
|
||||
#, no-c-format
|
||||
msgid "Batch inserts"
|
||||
msgstr "Inserciones en lote"
|
||||
msgstr "Inserciones de lotes"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:74
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"When making new objects persistent <literal>flush()</literal> and then "
|
||||
"<literal>clear()</literal> the session regularly in order to control the "
|
||||
"size of the first-level cache."
|
||||
msgstr ""
|
||||
"Al hacer persistentes objetos nuevos, debes limpiar con <literal>flush()</"
|
||||
"literal> y llamar a <literal>clear()</literal> en la sesión regularmente, "
|
||||
"para controlar el tamaño del caché de primer nivel."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:80
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"for ( int i=0; i<100000; i++ ) {\n"
|
||||
" Customer customer = new Customer(.....);\n"
|
||||
" session.save(customer);\n"
|
||||
" if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
|
||||
" //flush a batch of inserts and release memory:\n"
|
||||
" session.flush();\n"
|
||||
" session.clear();\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"for ( int i=0; i<100000; i++ ) {\n"
|
||||
" Customer customer = new Customer(.....);\n"
|
||||
" session.save(customer);\n"
|
||||
" if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
|
||||
" //flush a batch of inserts and release memory:\n"
|
||||
" session.flush();\n"
|
||||
" session.clear();\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
"Al hacer persistentes los objetos nuevos es necesario que realice "
|
||||
"<literal>flush()</literal> y luego <literal>clear()</literal> en la sesión "
|
||||
"regularmente para controlar el tamaño del caché de primer nivel."
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:85
|
||||
#, no-c-format
|
||||
msgid "Batch updates"
|
||||
msgstr "Actualizaciones en lote"
|
||||
msgstr "Actualizaciones de lotes update/delete en masa"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:87
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For retrieving and updating data, the same ideas apply. In addition, you "
|
||||
"need to use <literal>scroll()</literal> to take advantage of server-side "
|
||||
"cursors for queries that return many rows of data."
|
||||
msgstr ""
|
||||
"Para recuperar y actualizar datos se aplican las mismas ideas. "
|
||||
"Adicionalmente, necesitas usar <literal>scroll()</literal> para sacar "
|
||||
"ventaja de los cursores del lado del servidor en consultas que devuelvan "
|
||||
"muchas filas de datos."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:93
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
" .setCacheMode(CacheMode.IGNORE)\n"
|
||||
" .scroll(ScrollMode.FORWARD_ONLY);\n"
|
||||
"int count=0;\n"
|
||||
"while ( customers.next() ) {\n"
|
||||
" Customer customer = (Customer) customers.get(0);\n"
|
||||
" customer.updateStuff(...);\n"
|
||||
" if ( ++count % 20 == 0 ) {\n"
|
||||
" //flush a batch of updates and release memory:\n"
|
||||
" session.flush();\n"
|
||||
" session.clear();\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
" .setCacheMode(CacheMode.IGNORE)\n"
|
||||
" .scroll(ScrollMode.FORWARD_ONLY);\n"
|
||||
"int count=0;\n"
|
||||
"while ( customers.next() ) {\n"
|
||||
" Customer customer = (Customer) customers.get(0);\n"
|
||||
" customer.updateStuff(...);\n"
|
||||
" if ( ++count % 20 == 0 ) {\n"
|
||||
" //flush a batch of updates and release memory:\n"
|
||||
" session.flush();\n"
|
||||
" session.clear();\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
"Para recuperar y actualizar datos se aplican las mismas ideas. Además, "
|
||||
"necesita utilizar <literal>scroll()</literal> para sacar ventaja de los "
|
||||
"cursores del lado del servidor en consultas que retornen muchas filas de "
|
||||
"datos."
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:98
|
||||
#, no-c-format
|
||||
msgid "The StatelessSession interface"
|
||||
msgstr "UNTRANSLATED! The StatelessSession interface"
|
||||
msgstr "La interfaz de Sesión sin Estado"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:99
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Alternatively, Hibernate provides a command-oriented API that can be used "
|
||||
"for streaming data to and from the database in the form of detached objects. "
|
||||
|
@ -259,74 +150,35 @@ msgid ""
|
|||
"effects. A stateless session is a lower-level abstraction that is much "
|
||||
"closer to the underlying JDBC."
|
||||
msgstr ""
|
||||
"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 <literal>StatelessSession</literal> 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."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:114
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[StatelessSession session = sessionFactory.openStatelessSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
" .scroll(ScrollMode.FORWARD_ONLY);\n"
|
||||
"while ( customers.next() ) {\n"
|
||||
" Customer customer = (Customer) customers.get(0);\n"
|
||||
" customer.updateStuff(...);\n"
|
||||
" session.update(customer);\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[StatelessSession session = sessionFactory.openStatelessSession();\n"
|
||||
" Transaction tx = "
|
||||
"session.beginTransaction();\n"
|
||||
" \n"
|
||||
" ScrollableResults "
|
||||
"customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
" .scroll(ScrollMode."
|
||||
"FORWARD_ONLY);\n"
|
||||
" while ( customers.next"
|
||||
"() ) {\n"
|
||||
" Customer customer = "
|
||||
"(Customer) customers.get(0);\n"
|
||||
" customer.updateStuff"
|
||||
"(...);\n"
|
||||
" session.update"
|
||||
"(customer);\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" tx.commit();\n"
|
||||
" session.close();]]>"
|
||||
"Opcionalmente, Hibernate proporciona una API orientada a comandos que se "
|
||||
"puede utilizar para datos que concurren desde y hacia la base de datos en "
|
||||
"forma de objetos separados. Un <literal>StatelessSession</literal> no tiene "
|
||||
"un contexto de persistencia asociado con él y no proporciona mucha de la "
|
||||
"semántica a un alto nivel de ciclo de vida. En particular, una sesión sin "
|
||||
"estado no implementa un caché en primer nivel y tampoco interactúa con "
|
||||
"cachés de segundo nivel o de peticiones. No implementa escritura-retrasada "
|
||||
"transaccional o chequeo de desactualizaciones automático. Las operaciones "
|
||||
"realizadas con la utilización de una sesión sin estado nunca usan cascadas "
|
||||
"para las instancias asociadas. La sesión sin estado ignora las colecciones. "
|
||||
"Las operaciones llevadas a cabo por una sesión sin estado ignoran el modelo "
|
||||
"de evento y los interceptores de Hibernte. Las sesiones sin estado son "
|
||||
"vulnerables a efectos de sobrenombamiento de datos debido a la falta de un "
|
||||
"caché de primer nivel. Una sesión sin estado es una abstracción en un nivel "
|
||||
"más bajo, mucho más cerca del JDBC subyacente."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:116
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"In this code example, the <literal>Customer</literal> instances returned by "
|
||||
"the query are immediately detached. They are never associated with any "
|
||||
"persistence context."
|
||||
msgstr ""
|
||||
"Note that in this code example, the <literal>Customer</literal> instances "
|
||||
"returned by the query are immediately detached. They are never associated "
|
||||
"with any persistence context."
|
||||
"En este código de ejemplo, las instancias <literal>Customer</literal> "
|
||||
"retornadas por la petición se separan inmediatamente. Nunca se asocian con "
|
||||
"ningún contexto de persistencia."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:122
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>insert(), update()</literal> and <literal>delete()</literal> "
|
||||
"operations defined by the <literal>StatelessSession</literal> interface are "
|
||||
|
@ -336,23 +188,21 @@ msgid ""
|
|||
"<literal>save(), saveOrUpdate()</literal> and <literal>delete()</literal> "
|
||||
"operations defined by the <literal>Session</literal> interface."
|
||||
msgstr ""
|
||||
"The <literal>insert(), update()</literal> and <literal>delete()</literal> "
|
||||
"operations defined by the <literal>StatelessSession</literal> interface are "
|
||||
"considered to be direct database row-level operations, which result in "
|
||||
"immediate execution of a SQL <literal>INSERT, UPDATE</literal> or "
|
||||
"<literal>DELETE</literal> respectively. Thus, they have very different "
|
||||
"semantics to the <literal>save(), saveOrUpdate()</literal> and "
|
||||
"<literal>delete()</literal> operations defined by the <literal>Session</"
|
||||
"literal> interface."
|
||||
"Las operaciones <literal>insert(), update()</literal> y <literal>delete()</"
|
||||
"literal> definidas por la interfaz <literal>StatelessSession</literal> son "
|
||||
"consideradas como operaciones directas a nivel de filas de la base de datos. "
|
||||
"Esto resulta en una ejecución inmediata de un <literal>INSERT, UPDATE</"
|
||||
"literal> SQL o <literal>DELETE</literal> respectivamente. Tienen una "
|
||||
"semántica diferente a la de las operaciones <literal>save(), saveOrUpdate()</"
|
||||
"literal> y <literal>delete()</literal> definidas por la interfaz "
|
||||
"<literal>Session</literal>. "
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:135
|
||||
#, no-c-format
|
||||
msgid "DML-style operations"
|
||||
msgstr "update/delete en masa"
|
||||
msgstr "Operaciones de estilo DML"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:137
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"As already discussed, automatic and transparent object/relational mapping is "
|
||||
|
@ -365,122 +215,82 @@ msgid ""
|
|||
"is performed through the Hibernate Query Language (<link linkend=\"queryhql"
|
||||
"\">HQL</link>)."
|
||||
msgstr ""
|
||||
"Como ya se ha discutido, el mapeo objeto/relacional automático y "
|
||||
"transparente se refiere al manejo de estado de objetos. Esto implica que el "
|
||||
"estado del objeto está disponible en memoria, por lo tanto actualizar o "
|
||||
"borrar (usando <literal>UPDATE</literal> y <literal>DELETE</literal> de SQL) "
|
||||
"datos directamente en la base de datos no afectará el estado en memoria. Sin "
|
||||
"embargo, Hibernate provee métodos para la ejecución de sentencias del estilo "
|
||||
"de <literal>UPDATE</literal> y <literal>DELETE</literal> de SQL que se "
|
||||
"realizan a través del Lenguaje de Consulta de Hibernate (Hibernate Query "
|
||||
"Language o <xref linkend=\"queryhql\"/>HQL)."
|
||||
"Como se discutió anteriormente, el mapeo objeto/relacional transparente se "
|
||||
"refiere a la administración del estado de objetos. El estado del objeto está "
|
||||
"disponible en la memoria. Por lo tanto al manipular datos directamente en la "
|
||||
"base de datos (utilizando <literal>Data Manipulation Language</literal> "
|
||||
"(DML) las declaraciones: <literal>INSERT</literal>, <literal>UPDATE</"
|
||||
"literal>, <literal>DELETE</literal>) no afectará el estado en la memoria. "
|
||||
"Sin embargo, Hibernate brinda métodos para la ejecución de declaraciones en "
|
||||
"masa DML del estilo de SQL, las cuales se realizan por medio del Lenguaje de "
|
||||
"Consulta de Hibernate (<xref linkend=\"queryhql\" />)."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:146
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</"
|
||||
"literal> statements is: <literal>( UPDATE | DELETE ) FROM? EntityName (WHERE "
|
||||
"where_conditions)?</literal>."
|
||||
msgstr ""
|
||||
"La pseudo-sintáxis para sentencias <literal>UPDATE</literal> y "
|
||||
"<literal>DELETE</literal> es: <literal>( UPDATE | DELETE ) FROM? ClassName "
|
||||
"(WHERE WHERE_CONDITIONS)?</literal>. Algunos puntos a tener en cuenta:"
|
||||
"La pseudo-sintáxis para las declaraciones <literal>UPDATE</literal> y "
|
||||
"<literal>DELETE</literal> es: <literal>( UPDATE | DELETE ) FROM? EntityName "
|
||||
"(WHERE where_conditions)?</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:151
|
||||
#, no-c-format
|
||||
msgid "Some points to note:"
|
||||
msgstr ""
|
||||
msgstr "Algunos puntos a observar:"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:157
|
||||
#, no-c-format
|
||||
msgid "In the from-clause, the FROM keyword is optional"
|
||||
msgstr "En la cláusula-from, la palabra clave FROM es opcional"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:162
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"There can only be a single entity named in the from-clause. It can, however, "
|
||||
"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 ""
|
||||
"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."
|
||||
"Sólamente puede haber una entidad mencionada en la cláusula-from y puede "
|
||||
"tener un alias. Si el nombre de la entidad tiene un alias entonces cualquier "
|
||||
"referencia a la propiedad tiene que ser calificada utilizando ese alias. Si "
|
||||
"el nombre de la entidad no tiene un alias entonces es ilegal calificar "
|
||||
"cualquier referencia de la propiedad."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:170
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"No <link linkend=\"queryhql-joins-forms\">joins</link>, either implicit or "
|
||||
"explicit, can be specified in a bulk HQL query. Sub-queries can be used in "
|
||||
"the where-clause, where the subqueries themselves may contain joins."
|
||||
msgstr ""
|
||||
"No <link linkend=\"queryhql-joins-forms\">joins</link> (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."
|
||||
"No se puede especificar ningún <xref linkend=\"queryhql-joins-forms\" />, ya "
|
||||
"sea implícito o explícito, en una consulta masiva de HQL. Se pueden utilizar "
|
||||
"subconsultas en la cláusula-where y en donde las subconsultas pueden "
|
||||
"contener joins en sí mismas. "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:177
|
||||
#, no-c-format
|
||||
msgid "The where-clause is also optional."
|
||||
msgstr "La cláusula-where es también opcional."
|
||||
msgstr "La cláusula-where también es opcional."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:183
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"As an example, to execute an HQL <literal>UPDATE</literal>, use the "
|
||||
"<literal>Query.executeUpdate()</literal> method. The method is named for "
|
||||
"those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</"
|
||||
"literal>:"
|
||||
msgstr ""
|
||||
"Como un ejemplo, para ejecutar un <literal>UPDATE</literal> HQL, usa el "
|
||||
"método <literal>Query.executeUpdate()</literal>(the method is named for "
|
||||
"those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</"
|
||||
"literal>):"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:189
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"String hqlUpdate = \"update Customer c set c.name = :newName where c.name = :"
|
||||
"oldName\";\n"
|
||||
"// or String hqlUpdate = \"update Customer set name = :newName where name = :"
|
||||
"oldName\";\n"
|
||||
"int updatedEntities = s.createQuery( hqlUpdate )\n"
|
||||
" .setString( \"newName\", newName )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
" Transaction tx = session."
|
||||
"beginTransaction();\n"
|
||||
" \n"
|
||||
" String hqlUpdate = \"update "
|
||||
"Customer c set c.name = :newName where c.name = :oldName\";\n"
|
||||
" // or String hqlUpdate = \"update "
|
||||
"Customer set name = :newName where name = :oldName\";\n"
|
||||
" int updatedEntities = s.createQuery"
|
||||
"( hqlUpdate )\n"
|
||||
" .setString( \"newName\", newName )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
" tx.commit();\n"
|
||||
" session.close();]]>"
|
||||
"Como ejemplo, para ejecutar un <literal>UPDATE</literal> de HQL, utilice el "
|
||||
"método <literal>Query.executeUpdate()</literal>. El método es nombrado para "
|
||||
"aquellos familiarizados con el <literal>PreparedStatement.executeUpdate()</"
|
||||
"literal> de JDBC:"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:191
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> "
|
||||
|
@ -493,94 +303,38 @@ msgid ""
|
|||
"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
|
||||
"keyword."
|
||||
msgstr ""
|
||||
"HQL <literal>UPDATE</literal> statements, by default do not effect the <link "
|
||||
"linkend=\"mapping-declaration-version\">version</link> or the <link linkend="
|
||||
"\"mapping-declaration-timestamp\">timestamp</link> property values for the "
|
||||
"affected entities; this is in keeping with the EJB3 specification. However, "
|
||||
"you can force Hibernate to properly reset the <literal>version</literal> or "
|
||||
"<literal>timestamp</literal> property values through the use of a "
|
||||
"<literal>versioned update</literal>. This is achieved by adding the "
|
||||
"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
|
||||
"keyword."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:201
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"String hqlVersionedUpdate = \"update versioned Customer set name = :newName "
|
||||
"where name = :oldName\";\n"
|
||||
"int updatedEntities = s.createQuery( hqlUpdate )\n"
|
||||
" .setString( \"newName\", newName )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
" Transaction tx = session."
|
||||
"beginTransaction();\n"
|
||||
" String hqlVersionedUpdate = "
|
||||
"\"update versioned Customer set name = :newName where name = :oldName\";\n"
|
||||
" int updatedEntities = s.createQuery"
|
||||
"( hqlUpdate )\n"
|
||||
" .setString( \"newName\", newName )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
" tx.commit();\n"
|
||||
" session.close();]]>"
|
||||
"Para mantenerse de acuerdo con la especificación de EJB3, las declaraciones "
|
||||
"<literal>UPDATE</literal> de HQL, por defecto no afectan la <xref linkend="
|
||||
"\"mapping-declaration-version\" /> o los valores de propiedad <xref linkend="
|
||||
"\"mapping-declaration-timestamp\" /> para las entidades afectadas. Sin "
|
||||
"embargo, puede obligar a Hibernate a poner en cero apropiadamente los "
|
||||
"valores de propiedad <literal>version</literal> o <literal>timestamp</"
|
||||
"literal> por medio de la utilización de un <literal>versioned update</"
|
||||
"literal>. Esto se logra añadiendo la palabra clave <literal>VERSIONED</"
|
||||
"literal> después de la palabra clave <literal>UPDATE</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:203
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Custom version types, <literal>org.hibernate.usertype.UserVersionType</"
|
||||
"literal>, are not allowed in conjunction with a <literal>update versioned</"
|
||||
"literal> statement."
|
||||
msgstr ""
|
||||
"Note that custom version types (<literal>org.hibernate.usertype."
|
||||
"UserVersionType</literal>) are not allowed in conjunction with a "
|
||||
"<literal>update versioned</literal> statement."
|
||||
"Observe que los tipos de versiones personalizados (<literal>org.hibernate."
|
||||
"usertype.UserVersionType</literal>) no están permitidos en conjunto con una "
|
||||
"declaración <literal>update versioned</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:208
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"To execute an HQL <literal>DELETE</literal>, use the same <literal>Query."
|
||||
"executeUpdate()</literal> method:"
|
||||
msgstr ""
|
||||
"Para ejecutar un <literal>DELETE</literal> HQL, usa el mismo método "
|
||||
"Para ejecutar un <literal>DELETE</literal> HQL, utilice el mismo método "
|
||||
"<literal>Query.executeUpdate()</literal>:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:213
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
|
||||
"// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
|
||||
"int deletedEntities = s.createQuery( hqlDelete )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
" Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
" String hqlDelete = \"delete Customer where name = :oldName\";\n"
|
||||
" int deletedEntities = s.createQuery( hqlDelete )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
" tx.commit();\n"
|
||||
" session.close();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:215
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>int</literal> value returned by the <literal>Query.executeUpdate"
|
||||
"()</literal> method indicates the number of entities effected by the "
|
||||
|
@ -593,40 +347,39 @@ msgid ""
|
|||
"which that subclass is mapped, but also the \"root\" table and potentially "
|
||||
"joined-subclass tables further down the inheritance hierarchy."
|
||||
msgstr ""
|
||||
"El valor <literal>int</literal> devuelto por el método <literal>Query."
|
||||
"El valor <literal>int</literal> retornado por el método <literal>Query."
|
||||
"executeUpdate()</literal> indica el número de entidades afectadas por la "
|
||||
"operación. Considera que esto puede o no correlacionarse al número de filas "
|
||||
"afectadas en la base de datos. Una operación masiva HQL podría resultar en "
|
||||
"que se ejecuten múltiples sentencias de SQL reales, para joined-subclass, "
|
||||
"por ejemplo. El número devuelto indica el número de entidades reales "
|
||||
"afectadas por la sentencia. Volviendo al ejemplo de joined-subclass, un "
|
||||
"borrado contra una de las subclases puede resultar realmente en borrados "
|
||||
"contra no sólo la tabla a la que está mapeada esa subclase, sino también la "
|
||||
"tabla \"raíz\" y potencialmente tablas de joined-subclass más debajo en la "
|
||||
"jerarquía de herencia."
|
||||
"operación. Considere que esto puede estar correlacionado o no con el número "
|
||||
"de filas afectadas en la base de datos. Una operación masiva de HQL puede "
|
||||
"llegar a causar que se ejecuten múltiples declaraciones SQL reales, por "
|
||||
"ejemplo, para una subclase-joined. El número retornado indica el número de "
|
||||
"entidades realmente afectadas por la declaración. De vuelta al ejemplo de la "
|
||||
"subclase joined, un borrado contra una de las subclases puede resultar, de "
|
||||
"hecho, en borrados de no sólamente la tabla a la cual esa subclase esta "
|
||||
"mapeada, sino también la tabla \"raíz\" y potencialmente las tablas de "
|
||||
"subclases joined hasta la jerarquía de herencia."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:226
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The pseudo-syntax for <literal>INSERT</literal> statements is: "
|
||||
"<literal>INSERT INTO EntityName properties_list select_statement</literal>. "
|
||||
"Some points to note:"
|
||||
msgstr ""
|
||||
"Ten en cuenta que existen actualmente unas pocas limitaciones con las "
|
||||
"operaciones HQL masivas, que serán atendidas en lanzamientos futuros; "
|
||||
"consulta la hoja de ruta de JIRA para más detalles."
|
||||
"La pseudo-sintáxis para las declaraciones <literal>INSERT</literal> es: "
|
||||
"<literal>INSERT INTO EntityName properties_list select_statement</literal>. "
|
||||
"Algunos puntos que se deben observar son:"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:234
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Only the INSERT INTO ... SELECT ... form is supported; not the INSERT "
|
||||
"INTO ... VALUES ... form."
|
||||
msgstr ""
|
||||
"Sólamente se soporta la forma INSERT INTO ... SELECT ..., no la forma INSERT "
|
||||
"INTO ... VALUES ..."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:237
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The properties_list is analogous to the <literal>column specification</"
|
||||
|
@ -636,9 +389,16 @@ msgid ""
|
|||
"are not allowed and subclass properties do not make sense. In other words, "
|
||||
"<literal>INSERT</literal> statements are inherently non-polymorphic."
|
||||
msgstr ""
|
||||
"La lista de propiedades (properties_list) es análoga a la <literal>column "
|
||||
"speficiation</literal> en la declaración <literal>INSERT</literal> de SQL. "
|
||||
"Para las entidades involucradas en la herencia mapeada, sólamente las "
|
||||
"propiedades definidas directamente en ese nivel de clase dado se pueden "
|
||||
"utlizar en la lista de propiedades. Las propiedades de la superclase no "
|
||||
"están permitidas, y las propiedaeds de la subclase no tienen sentido. Es "
|
||||
"decir, las declaraciones <literal>INSERT</literal> son inherentemente no-"
|
||||
"polimórficas."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:247
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"select_statement can be any valid HQL select query, with the caveat that the "
|
||||
|
@ -652,9 +412,19 @@ msgid ""
|
|||
"TimestampType</literal>, even though the database might not make a "
|
||||
"distinction or might be able to handle the conversion."
|
||||
msgstr ""
|
||||
"select_statement puede ser cualquier consulta select de HQL válida con la "
|
||||
"advertencia de que los tipos de retorno coincidan con los tipos esperados "
|
||||
"por el insert. Actualmente, esto se verifica durante la compilación de la "
|
||||
"consulta en vez de permitir que se relegue la verificación a la base de "
|
||||
"datos. Sin embargo, esto puede crear problemas entre los <literal>Type</"
|
||||
"literal>s de Hibernate, los cuales son <emphasis>equivalentes</emphasis> y "
|
||||
"no <emphasis>iguales</emphasis>. Esto puede crear problemas con las uniones "
|
||||
"mal hechas entre una propiedad definida como un <literal>org.hibernate.type."
|
||||
"DateType</literal> y una propiedad definida como una <literal>org.hibernate."
|
||||
"type.TimestampType</literal>, aunque puede que la base de datos no distinga "
|
||||
"o no pueda manejar la conversión."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:259
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For the id property, the insert statement gives you two options. You can "
|
||||
|
@ -671,9 +441,22 @@ msgid ""
|
|||
"TableHiLoGenerator</literal>, which cannot be used because it does not "
|
||||
"expose a selectable way to get its values."
|
||||
msgstr ""
|
||||
"Para la propiedad id, la declaración insert le da dos opciones. Puede "
|
||||
"especificar explícitamente la propiedad id en la lista de propiedades "
|
||||
"(properties_list ) (en tal caso su valor se toma de la expresión de "
|
||||
"selección correspondiente) o se omite de la lista de propiedades (en tal "
|
||||
"caso se utiliza un valor generado). Esta última opción sólamente está "
|
||||
"disponible cuando se utilizan generadores de id que operan en la base de "
|
||||
"datos, intentando utilizar esta opción con cualquier generador de tipo \"en "
|
||||
"memoria\" provocará una excepción durante el análisis sintáctico. Note que "
|
||||
"para los propósitos de esta discusión, los generadores en la base de datos "
|
||||
"son considerados <literal>org.hibernate.id.SequenceGenerator</literal> (y "
|
||||
"sus subclases) y cualquier implementador de <literal>org.hibernate.id."
|
||||
"PostInsertIdentifierGenerator</literal>. La excepción más importante aquí es "
|
||||
"<literal>org.hibernate.id.TableHiLoGenerator</literal>, la cual no se puede "
|
||||
"utilizar ya que no expone una manera selectiva de obtener sus valores."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:274
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For properties mapped as either <literal>version</literal> or "
|
||||
|
@ -683,32 +466,18 @@ msgid ""
|
|||
"from the properties_list, in which case the <literal>seed value</literal> "
|
||||
"defined by the <literal>org.hibernate.type.VersionType</literal> is used."
|
||||
msgstr ""
|
||||
"Para las propiedades mapeadas como <literal>version</literal> o "
|
||||
"<literal>timestamp</literal>, la declaración insert le da dos opciones. "
|
||||
"Puede especificar la propiedad en la lista de propiedades (en tal caso su "
|
||||
"valor se toma de las expresiones de selección correspondientes) o se omite "
|
||||
"de la lista de propiedades (en tal caso se utiliza el <literal>seed value</"
|
||||
"literal> definido por el <literal>org.hibernate.type.VersionType</literal>)."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:284
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The following is an example of an HQL <literal>INSERT</literal> statement "
|
||||
"execution:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:288
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"String hqlInsert = \"insert into DelinquentAccount (id, name) select c.id, c."
|
||||
"name from Customer c where ...\";\n"
|
||||
"int createdEntities = s.createQuery( hqlInsert )\n"
|
||||
" .executeUpdate();\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "ROLES_OF_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
#~ msgid "CREDIT_FOR_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
"Un ejemplo de la ejecución de la declaración <literal>INSERT</literal> de "
|
||||
"HQL:"
|
||||
|
|
|
@ -1,30 +1,43 @@
|
|||
#, fuzzy
|
||||
# translation of best_practices.po to
|
||||
# Michael H. Smith <mhideo@redhat.com>, 2007.
|
||||
# Angela Garcia <agarcia@redhat.com>, 2009.
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: best_practices\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-10 21:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:15\n"
|
||||
"PO-Revision-Date: 2009-11-09 09:46+1000\n"
|
||||
"Last-Translator: Angela Garcia <agarcia@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: best_practices.xml:29
|
||||
#, no-c-format
|
||||
msgid "Best Practices"
|
||||
msgstr "Mejores Prácticas"
|
||||
msgstr "Prácticas recomendadas"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:33
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Write fine-grained classes and map them using <literal><component></"
|
||||
"literal>:"
|
||||
msgstr ""
|
||||
"Escribe clase finamente granularizadas y mapealas usando <literal><"
|
||||
"component></literal>."
|
||||
"Escriba las clases detalladas y mapéelas utilizando <literal><"
|
||||
"component></literal>:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:35
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Use an <literal>Address</literal> class to encapsulate <literal>street</"
|
||||
|
@ -32,38 +45,34 @@ msgid ""
|
|||
"<literal>postcode</literal>. This encourages code reuse and simplifies "
|
||||
"refactoring."
|
||||
msgstr ""
|
||||
"Usa una clase <literal>Dirección</literal> para encapsular "
|
||||
"Utilice una clase <literal>Dirección</literal> para encapsular "
|
||||
"<literal>calle</literal>, <literal>distrito</literal>, <literal>estado</"
|
||||
"literal>, <literal>código postal</literal>. Esto alienta la "
|
||||
"reutilización de código y simplifica el refactoring."
|
||||
"literal>, <literal>código postal</literal>. Esto promueve la reutilización "
|
||||
"de código y simplifica la refabricación."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:43
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Declare identifier properties on persistent classes:"
|
||||
msgstr "Declara las propiedades identificadoras en clases persistentes."
|
||||
msgstr "Declare las propiedades identificadoras en clases persistentes:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:45
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate makes identifier properties optional. There are a range of reasons "
|
||||
"why you should use them. We recommend that identifiers be 'synthetic', that "
|
||||
"is, generated with no business meaning."
|
||||
msgstr ""
|
||||
"Hibernate hace opcionales las propiedades identificadoras. Existen todo tipo "
|
||||
"de razones por las que debes usarlas. Recomendamos que los identificadores "
|
||||
"sean 'sintéticos' (generados, sin ningún significado de "
|
||||
"negocio)."
|
||||
"Las propiedades identificadoras son opcionales en Hibernate. Existe todo "
|
||||
"tipo de razones por las que debe usarlas. Recomendamos que los "
|
||||
"identificadores sean 'sintéticos', es decir, generados sin ningún "
|
||||
"significado empresarial."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:53
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Identify natural keys:"
|
||||
msgstr "Identifica las claves naturales."
|
||||
msgstr "Identifique las llaves naturales:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:55
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Identify natural keys for all entities, and map them using <literal><"
|
||||
|
@ -71,108 +80,95 @@ msgid ""
|
|||
"<literal>hashCode()</literal> to compare the properties that make up the "
|
||||
"natural key."
|
||||
msgstr ""
|
||||
"Identifica las claves naturales de todas las entidades, y mapealas usando "
|
||||
"<literal><natural-id></literal>. Implementa <literal>equals()</"
|
||||
"Identifique las claves naturales de todas las entidades, y mapéelas usando "
|
||||
"<literal><natural-id></literal>. Implemente <literal>equals()</"
|
||||
"literal> y <literal>hashCode()</literal> para comparar las propiedades que "
|
||||
"componen la clave natural."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:63
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Place each class mapping in its own file:"
|
||||
msgstr "Coloca cada mapeo de clase en su propio fichero."
|
||||
msgstr "Coloque cada mapeo de clase en su propio fichero:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:65
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Do not use a single monolithic mapping document. Map <literal>com.eg.Foo</"
|
||||
"literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes "
|
||||
"sense, particularly in a team environment."
|
||||
msgstr ""
|
||||
"No uses un solo documento monolítico de mapeo. Mapea <literal>com.eg."
|
||||
"Foo</literal> en el fichero <literal>com/eg/Foo.hbm.xml</literal>. Esto "
|
||||
"tiene sentido particularmente en un ambiente de equipo."
|
||||
"No use un sólo documento monolítico de mapeo. Mapee <literal>com.eg.Foo</"
|
||||
"literal> en el archivo <literal>com/eg/Foo.hbm.xml</literal>. Esto tiene "
|
||||
"sentido particularmente en un entorno de equipo."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:73
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Load mappings as resources:"
|
||||
msgstr "Carga los mapeos como recursos."
|
||||
msgstr "Cargue los mapeos como recursos:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:75
|
||||
#, no-c-format
|
||||
msgid "Deploy the mappings along with the classes they map."
|
||||
msgstr "Despliega los mapeos junto a las clases que mapean."
|
||||
msgstr "Despliegue los mapeos junto a las clases que mapean."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:81
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Consider externalizing query strings:"
|
||||
msgstr "Considera externalizar las cadenas de consulta."
|
||||
msgstr "Considere el externalizar las cadenas de petición:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:83
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is recommended if your queries call non-ANSI-standard SQL functions. "
|
||||
"Externalizing the query strings to mapping files will make the application "
|
||||
"more portable."
|
||||
msgstr ""
|
||||
"Esta es una buena práctica si tus consultas llaman a funciones SQL "
|
||||
"que no son del estándar ANSI. Externalizar las cadenas de consulta a "
|
||||
"ficheros de mapeo hará la aplicación más portable."
|
||||
"Esta es una buena práctica si sus consultas llaman a funciones SQL que no "
|
||||
"son del estándar ANSI. Externalizar las cadenas de consulta a archivos de "
|
||||
"mapeo hará la aplicación más portátil. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:91
|
||||
#, no-c-format
|
||||
msgid "Use bind variables."
|
||||
msgstr "Usa variables de ligado."
|
||||
msgstr "Use variables de vinculación."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:93
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"As in JDBC, always replace non-constant values by \"?\". Do not use string "
|
||||
"manipulation to bind a non-constant value in a query. You should also "
|
||||
"consider using named parameters in queries."
|
||||
msgstr ""
|
||||
"Igual que en JDBC, siempre remplaza valores no constantes con \"?\". ¡"
|
||||
"Nunca uses manipulación de cadenas para ligar un valor no constante "
|
||||
"en una consulta! Incluso mejor, considera usar parámetros con nombre "
|
||||
"en las consultas."
|
||||
"Al igual que en JDBC, siempre remplace los valores no constantes con \"?\". "
|
||||
"No use la manipulación de cadenas para enlazar un valor no constante en una "
|
||||
"consulta. También considere utilizar parámetros con nombre en las consultas."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:101
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Do not manage your own JDBC connections:"
|
||||
msgstr "No manejes tus propias conexiones JDBC."
|
||||
msgstr "No administre sus propias conexiones JDBC:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:103
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate allows the application to manage JDBC connections, but his "
|
||||
"approach should be considered a last-resort. If you cannot use the built-in "
|
||||
"connection providers, consider providing your own implementation of "
|
||||
"<literal>org.hibernate.connection.ConnectionProvider</literal>."
|
||||
msgstr ""
|
||||
"Hibernate deja a la aplicación administre las conexiones JDBC. Este "
|
||||
"enfoque debe considerarse como último recurso. Si no puedes usar los "
|
||||
"provedores de conexión prefabricados, considera prover tu propia "
|
||||
"implementación de <literal>org.hibernate.connection."
|
||||
"ConnectionProvider</literal>."
|
||||
"Hibernate deja a la aplicación administrar las conexiones JDBC, pero este "
|
||||
"enfoque debe considerarse como el último recurso. Si no puede utilizar los "
|
||||
"provedores de conexión incorporados, considere proveer su propia "
|
||||
"implementación de <literal>org.hibernate.connection.ConnectionProvider</"
|
||||
"literal>."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:111
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Consider using a custom type:"
|
||||
msgstr "Considera usar un tipo personalizado."
|
||||
msgstr "Considere utilizar un tipo personalizado:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:113
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Suppose you have a Java type from a library that needs to be persisted but "
|
||||
"does not provide the accessors needed to map it as a component. You should "
|
||||
|
@ -180,49 +176,45 @@ msgid ""
|
|||
"approach frees the application code from implementing transformations to/"
|
||||
"from a Hibernate type."
|
||||
msgstr ""
|
||||
"Supón que tienes un tipo Java, digamos de alguna biblioteca, que "
|
||||
"necesita hacerse persistente pero no provee los métodos de acceso "
|
||||
"necesarios para mapearlo como un componente. Debes considerar implementar "
|
||||
"<literal>org.hibernate.UserType</literal>. Este enfoque libera al có"
|
||||
"digo de aplicación de implementar transformaciones a / desde un tipo "
|
||||
"Hibernate."
|
||||
"Supónga que tiene un tipo Java de una biblioteca, que necesita hacerse "
|
||||
"persistente pero que no provee los métodos de acceso necesarios para "
|
||||
"mapearlo como un componente. Debe considerar el implementar <literal>org."
|
||||
"hibernate.UserType</literal>. Este enfoque libera al código de aplicación de "
|
||||
"implementar transformaciones a/desde un tipo Hibernate."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:122
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Use hand-coded JDBC in bottlenecks:"
|
||||
msgstr "Usa JDBC codificado a mano en cuellos de botella."
|
||||
msgstr "Utilice JDBC codificado a mano cuando se encuentre atascado:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:124
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"In performance-critical areas of the system, some kinds of operations might "
|
||||
"benefit from direct JDBC. Do not assume, however, that JDBC is necessarily "
|
||||
"faster. Please wait until you <emphasis>know</emphasis> something is a "
|
||||
"bottleneck. If you need to use direct JDBC, you can open a Hibernate "
|
||||
"<literal>Session</literal> and usingfile:///usr/share/doc/HTML/en-US/index."
|
||||
"html that JDBC connection. This way you can still use the same transaction "
|
||||
"strategy and underlying connection provider."
|
||||
"<literal>Session</literal>, wrap your JDBC operation as a <literal>org."
|
||||
"hibernate.jdbc.Work</literal> object and using that JDBC connection. This "
|
||||
"way you can still use the same transaction strategy and underlying "
|
||||
"connection provider."
|
||||
msgstr ""
|
||||
"En áreas del sistema de rendimiento crítico, algunos tipos de "
|
||||
"operaciones podrían beneficiarse del JDBC directo. Pero por favor, "
|
||||
"espero hasta que <emphasis>sepas</emphasis> que algo es un cuello de "
|
||||
"botella. Y no asumas que el JDBC directo es necesariamente más "
|
||||
"rápido. Si necesitas usar JDBC directo, podría ser valioso "
|
||||
"abrir una <literal>Session</literal> de Hibernate y usar esa conexión "
|
||||
"JDBC. De esta forma puedes usar aún la misma estrategia de "
|
||||
"transacción y el mismo proveedor de conexiones subyacente."
|
||||
"En áreas de rendimiento crítico del sistema, algunos tipos de operaciones "
|
||||
"podrían beneficiarse del JDBC directo. Sin embargo, no asuma que el JDBC "
|
||||
"directo es necesariamente más rápido. Por favor, espere hasta que "
|
||||
"<emphasis>sepa</emphasis> que se encuentra realmente atascado. Si necesita "
|
||||
"utilizar JDBC directo, puede abrir una <literal>Session</literal> de "
|
||||
"Hibernate y usar esa conexión JDBC file:///usr/share/doc/HTML/en-US/index."
|
||||
"html. De esta manera puede usar aún la misma estrategia de transacción y el "
|
||||
"mismo proveedor de conexiones subyacente."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:134
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Understand <literal>Session</literal> flushing:"
|
||||
msgstr "Comprende la limpieza (flushing) de <literal>Session</literal>."
|
||||
msgstr "Comprenda el vaciado de <literal>Session</literal>:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:136
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Sometimes the Session synchronizes its persistent state with the database. "
|
||||
"Performance will be affected if this process occurs too often. You can "
|
||||
|
@ -230,22 +222,20 @@ msgid ""
|
|||
"even by changing the order of queries and other operations within a "
|
||||
"particular transaction."
|
||||
msgstr ""
|
||||
"De vez en cuando la sesión sincroniza su estado persistente con la "
|
||||
"base de datos. El rendimiento se verá afectado si este proceso ocurre "
|
||||
"demasiado frecuentemente. A veces puedes minimizar limpieza innecesaria "
|
||||
"deshabilitando la limpieza automática o incluso cambiando el orden de "
|
||||
"las consultas u otras operaciones en una transacción en particular."
|
||||
"A veces la sesión sincroniza su estado persistente con la base de datos. El "
|
||||
"rendimiento se verá afectado si este proceso ocurre con demasiada "
|
||||
"frecuencia. A veces puede minimizar el vaciado innecesario deshabilitando el "
|
||||
"vaciado automático o incluso cambiando el orden de las consultas u otras "
|
||||
"operaciones en una transacción en particular."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:145
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "In a three tiered architecture, consider using detached objects:"
|
||||
msgstr ""
|
||||
"En una aplicación en tres gradas, considera usar objetos separados."
|
||||
"En una arquitectura con tres niveles considere el utilizar objetos separados:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:147
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"When using a servlet/session bean architecture, you can pass persistent "
|
||||
"objects loaded in the session bean to and from the servlet/JSP layer. Use a "
|
||||
|
@ -253,23 +243,21 @@ msgid ""
|
|||
"or <literal>Session.saveOrUpdate()</literal> to synchronize objects with the "
|
||||
"database."
|
||||
msgstr ""
|
||||
"Al usar una arquitectura de servlet / sesión, puedes pasar objetos "
|
||||
"persistentes en el bean de sesión hacia y desde la capa de servlet / "
|
||||
"JSP. Usa una sesión nueva para atender el servicio de cada "
|
||||
"petición. Usa <literal>Session.merge()</literal> o <literal>Session."
|
||||
"saveOrUpdate()</literal> para sincronizar los objetos con la base de datos."
|
||||
"Al usar una arquitectura de servlet/sesión, puede pasar objetos persistentes "
|
||||
"en el bean de sesión hacia y desde la capa del servlet/JSP. Use una sesión "
|
||||
"nueva para atender el servicio de cada petición. Use <literal>Session.merge()"
|
||||
"</literal> o <literal>Session.saveOrUpdate()</literal> para sincronizar los "
|
||||
"objetos con la base de datos."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:156
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "In a two tiered architecture, consider using long persistence contexts:"
|
||||
msgstr ""
|
||||
"En una arquitectura en dos gradas, considera usar contexto de persistencia "
|
||||
"largos."
|
||||
"En una arquitectura con dos niveles considere el utilizar contextos largos "
|
||||
"de persistencia:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:158
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Database Transactions have to be as short as possible for best scalability. "
|
||||
"However, it is often necessary to implement long running "
|
||||
|
@ -284,31 +272,27 @@ msgid ""
|
|||
"across more than one application transaction or you will be working with "
|
||||
"stale data."
|
||||
msgstr ""
|
||||
"Las transacciones de base de datos tienen que ser tan cortas como sea "
|
||||
"posible. Sin embargo, frecuentemente es necesario implementar "
|
||||
"<emphasis>transacciones de aplicación</emphasis> ejecutándose "
|
||||
"en largo, una sola unidad de trabajo desde el punto de vista de un usuario. "
|
||||
"Una transacción de aplicación puede abarcar muchos ciclos "
|
||||
"petición/respuesta del cliente. Es común usar objetos "
|
||||
"separados para implementar transacciones de aplicación. Una "
|
||||
"alternativa, extremadamente apropiada en arquitecturas en dos gradas, es "
|
||||
"mantener un solo contacto de persistencia abierto (sesión) para todo "
|
||||
"el ciclo de vida de la transacción de aplicación y simplemente "
|
||||
"desconectar de la conexión JDBC al final de cada petición, y "
|
||||
"reconectar al comienzo de la petición subsecuente. Nunca compartas "
|
||||
"una única sesión a través de más de una "
|
||||
"transacción de aplicación, o estarás trabajando con "
|
||||
"datos añejos."
|
||||
"Las transacciones de la base de datos tienen que ser tan cortas como sea "
|
||||
"posible para obtener una mejor escalabilidad. Sin embargo, con frecuencia es "
|
||||
"necesario implementar <emphasis>transacciones de aplicación</emphasis> de "
|
||||
"larga ejecución, una sola unidad de trabajo desde el punto de vista de un "
|
||||
"usuario. Una transacción de aplicación puede abarcar muchos ciclos de "
|
||||
"petición/respuesta del cliente. Es común usar objetos separados para "
|
||||
"implementar transacciones de aplicación. Una alternativa apropiada en "
|
||||
"arquitecturas de dos niveles, es mantener una sesión de un sólo contacto de "
|
||||
"persistencia abierto para todo el ciclo de vida de la transacción de "
|
||||
"aplicación. Luego simplemente desconectar de la conexión JDBC al final de "
|
||||
"cada petición y reconectar al comienzo de la petición subsecuente. Nunca "
|
||||
"comparta una sesión única a través de más de una transacción de aplicación o "
|
||||
"estará trabajando con datos desactualizados."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:172
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Do not treat exceptions as recoverable:"
|
||||
msgstr "No trates la excepciones como recuperables."
|
||||
msgstr "No trate las excepciones como recuperables:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:174
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is more of a necessary practice than a \"best\" practice. When an "
|
||||
"exception occurs, roll back the <literal>Transaction</literal> and close the "
|
||||
|
@ -318,24 +302,21 @@ msgid ""
|
|||
"instance with the given identifier exists on the database; use "
|
||||
"<literal>Session.get()</literal> or a query instead."
|
||||
msgstr ""
|
||||
"Esto es más una práctica necesaria que una \"mejor\" prá"
|
||||
"ctica. Cuando ocurra una excepción, deshaz (rollback) la "
|
||||
"<literal>Transaction</literal> y cierra la <literal>Session</literal>. Si no "
|
||||
"lo haces, Hibernate no puede garantizar que el estado en memoria representa "
|
||||
"con exactitud el estado persistente. Como un caso especial de esto, no uses "
|
||||
"<literal>Session.load()</literal> para determinar si una instancia con el "
|
||||
"identificador dado existe en la base de datos. En cambio, usa "
|
||||
"<literal>Session.get()</literal> o una consulta."
|
||||
"Esto es más bien una práctica necesaria más que una práctica \"recomendada"
|
||||
"\". Cuando ocurra una excepción, deshaga la <literal>Transaction</literal> y "
|
||||
"cierre la <literal>Session</literal>. Si no lo hace, Hibernate no puede "
|
||||
"garantizar que el estado en memoria representa con exactitud el estado "
|
||||
"persistente. Por ejemplo, no utilice <literal>Session.load()</literal> para "
|
||||
"determinar si una instancia con el identificador dado existe en la base de "
|
||||
"datos; en cambio, use <literal>Session.get()</literal> o una consulta."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:184
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Prefer lazy fetching for associations:"
|
||||
msgstr "Prefiere la recuperación perezosa para las asociaciones."
|
||||
msgstr "Prefiera una recuperación perezosa para las asociaciones:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:186
|
||||
#, fuzzy, no-c-format
|
||||
#, 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 "
|
||||
|
@ -345,30 +326,27 @@ msgid ""
|
|||
"to a particular use case, use a query with a <literal>left join fetch</"
|
||||
"literal>."
|
||||
msgstr ""
|
||||
"Usa escasamente la recuperación temprana. Usa proxies y colecciones "
|
||||
"perezosas para la mayoría de asociaciones a clases probablemente no "
|
||||
"estén mantenidas en el caché de segundo nivel. Para las "
|
||||
"asociaciones a clases en caché, donde hay una probabilidad de acceso "
|
||||
"a caché extremadamente alta, deshabilita explícitamente la "
|
||||
"recuperación temprana usando <literal>lazy=\"false\"</literal>. "
|
||||
"Cuando sea apropiada la recuperación por unión (join fetching) "
|
||||
"para un caso de uso en particular, usa una consulta con un <literal>left "
|
||||
"join fetch</literal>."
|
||||
"No utilice con frecuencia la recuperación temprana. Use proxies y "
|
||||
"colecciones perezosas para la mayoría de asociaciones a clases que "
|
||||
"probablemente no se encuentren en el caché de segundo nivel. Para las "
|
||||
"asociaciones a clases en caché, donde hay una probabilidad de acceso a caché "
|
||||
"extremadamente alta, deshabilite explícitamente la recuperación temprana "
|
||||
"usando <literal>lazy=\"false\"</literal>. Cuando la recuperación por unión "
|
||||
"sea apropiada para un caso de uso en particular, utilice una consulta con un "
|
||||
"<literal>left join fetch</literal>."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:196
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Use the <emphasis>open session in view</emphasis> pattern, or a disciplined "
|
||||
"<emphasis>assembly phase</emphasis> to avoid problems with unfetched data:"
|
||||
msgstr ""
|
||||
"Usa el patrón <emphasis>sesión abierta en vista</emphasis>, o "
|
||||
"una <emphasis>fase de ensamblado</emphasis> disciplinada para evitar "
|
||||
"problemas con datos no recuperados."
|
||||
"Use el patrón de <emphasis>sesión abierta en vista</emphasis> o una "
|
||||
"<emphasis>fase de ensamblado</emphasis> disciplinada para evitar problemas "
|
||||
"con datos no recuperados."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:201
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
|
||||
"Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual "
|
||||
|
@ -383,31 +361,28 @@ msgid ""
|
|||
"objects. This is not a limitation of Hibernate. It is a fundamental "
|
||||
"requirement of safe transactional data access."
|
||||
msgstr ""
|
||||
"Hibernate liberal al desarrollador de escribir <emphasis>Objetos de "
|
||||
"Transferencia de Datos (Data Transfer Objects)</emphasis> (DTO). En una "
|
||||
"arquitectura tradicional de EJB, los DTOs tienen un propósito doble: "
|
||||
"primero, atacan el problema que los beans de entidad no son serializables. "
|
||||
"Segundo, definen implícitamente una fase de ensamblado cuando se "
|
||||
"recuperan y se forman (marshalling) todos los datos a usar por la vista en "
|
||||
"los DTOs antes de devolver el control a la grada de presentación. "
|
||||
"Hibernate elimina el primer propósito. Sin embargo, aún "
|
||||
"necesitas una fase de ensamblado (piensa en tus métodos de negocio "
|
||||
"como si tuviesen un contrato estricto con la grada de presentación "
|
||||
"sobre qué datos están disponibles en los objetos separados) a "
|
||||
"menos que estés preparado para tener el contexto de persistencia (la "
|
||||
"sesión) abierto a través del proceso de renderización "
|
||||
"de la vista. ¡Esta no es una limitación de Hibernate! Es un "
|
||||
"Hibernate libera al desarrollador de escribir tediosos <emphasis>objetos de "
|
||||
"transferencia de datos (DTO del inglés Data Transfer Objects)</emphasis>. En "
|
||||
"una arquitectura tradicional de EJB, los DTOs tienen un propósito doble: "
|
||||
"primero, atacan el problema de que los beans de entidad no son "
|
||||
"serializables. Segundo, definen implícitamente una fase de ensamblado cuando "
|
||||
"se recuperan y se forman (marshalling) todos los datos a usar por la vista "
|
||||
"en los DTOs antes de devolver el control al nivel de presentación. Hibernate "
|
||||
"elimina el primer propósito. Sin embargo, aún necesita una fase de "
|
||||
"ensamblado a menos de que esté preparado para tener el contexto de "
|
||||
"persistencia (la sesión) abierto a través del proceso de entrega de la "
|
||||
"vista. Piense en sus métodos empresariales como si tuviesen un contrato "
|
||||
"estricto con el nivel de presentación sobre qué datos están disponibles en "
|
||||
"los objetos separados. Esta no es una limitación de Hibernate. Este es un "
|
||||
"requerimiento fundamental de acceso seguro a datos transaccionales."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:215
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Consider abstracting your business logic from Hibernate:"
|
||||
msgstr "Considera abstraer tu lógica de negocio de Hibernate"
|
||||
msgstr "Considere abstraer su lógica empresarial de Hibernate:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:217
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hide Hibernate data-access code behind an interface. Combine the "
|
||||
"<emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> "
|
||||
|
@ -416,23 +391,21 @@ msgid ""
|
|||
"however, intended for \"sufficiently large\" applications. It is not "
|
||||
"appropriate for an application with five tables."
|
||||
msgstr ""
|
||||
"Oculta el código de acceso a datos (Hibernate) detrás de una "
|
||||
"interface. Combina los patrones <emphasis>DAO</emphasis> y "
|
||||
"<emphasis>Sesión de Hebra Local</emphasis>. Incluso puedes tener "
|
||||
"algunas clases hechas persistentes por JDBC escrito a mano, asociadas a "
|
||||
"Hibernate por medio de un <literal>UserType</literal>. (Este consejo "
|
||||
"está pensado para aplicaciones \"suficientemente grandes\"; ¡"
|
||||
"no es apropiado para una aplicación con cinco tablas!)"
|
||||
"Oculte el código de acceso a datos de Hibernate detrás de una interfaz. "
|
||||
"Combine los patrones <emphasis>DAO</emphasis> y <emphasis>sesión local de "
|
||||
"hilo</emphasis>. Incluso puede hacer algunas clases persistentes por medio "
|
||||
"de JDBC escrito a mano, asociadas a Hibernate por medio de un "
|
||||
"<literal>UserType</literal>. Sin embargo, este consejo va para las "
|
||||
"aplicaciones \"suficientemente grandes\". No es apropiado para una "
|
||||
"aplicación con cinco tablas."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:227
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Do not use exotic association mappings:"
|
||||
msgstr "No uses mapeos de asociación exóticos."
|
||||
msgstr "No utilice mapeos de asociación exóticos:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:229
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Practical test cases for real many-to-many associations are rare. Most of "
|
||||
"the time you need additional information stored in the \"link table\". In "
|
||||
|
@ -442,33 +415,24 @@ msgid ""
|
|||
"association style."
|
||||
msgstr ""
|
||||
"Son raros los casos de uso de asociaciones reales muchos-a-muchos. La mayor "
|
||||
"parte del tiempo necesitas información adicional almacenada en una "
|
||||
"\"tabla de enlace\". En este caso, es mucho mejor usar dos asociaciones uno-"
|
||||
"a-muchos a una clase de enlace intermedia. De hecho, pensamos que la "
|
||||
"mayoría de asociaciones son uno-a-muchos y muchos-a-uno, debes ser "
|
||||
"cuidadoso al usr cualquier otro estilo de asociación y preguntarte si "
|
||||
"es realmente necesario."
|
||||
"parte del tiempo necesita información adicional almacenada en una \"tabla de "
|
||||
"enlace\". En este caso, es mucho mejor usar dos asociaciones uno-a-muchos a "
|
||||
"una clase de enlace intermedio. De hecho, la mayoría de las asociaciones son "
|
||||
"uno-a-muchos y muchos-a-uno. Por esta razón, debe tener cuidado al utilizar "
|
||||
"cualquier otro estilo de asociación."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:239
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Prefer bidirectional associations:"
|
||||
msgstr "Prefiere las asociaciones bidireccionales."
|
||||
msgstr "Prefiera las asociaciones bidireccionales:"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:241
|
||||
#, 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 ""
|
||||
"Las asociaciones unidireccionales son más difíciles de "
|
||||
"consultar. En una aplicación grande, casi todas las asociaciones "
|
||||
"deben ser navegables en ambas direcciones en consultas."
|
||||
|
||||
#~ msgid "ROLES_OF_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
#~ msgid "CREDIT_FOR_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
"Las asociaciones unidireccionales son más difíciles de consultar. En una "
|
||||
"aplicación grande, casi todas las asociaciones deben ser navegables en ambas "
|
||||
"direcciones en consultas."
|
||||
|
|
|
@ -5,7 +5,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Branch 3_3\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-10 21:02+0000\n"
|
||||
"POT-Creation-Date: 2010-02-04T04:51:21\n"
|
||||
"PO-Revision-Date: 2009-06-10 21:02+0000\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
|
@ -14,55 +14,36 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Tag: title
|
||||
#: bibliography.xml:27
|
||||
#, no-c-format
|
||||
msgid "References"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: bibliography.xml:31
|
||||
#, no-c-format
|
||||
msgid "Patterns of Enterprise Application Architecture"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: bibliography.xml:34
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Martin</firstname> <surname>Fowler</surname>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: holder
|
||||
#: bibliography.xml:41
|
||||
#, no-c-format
|
||||
msgid "Pearson Education, Inc."
|
||||
msgid "Martin"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: bibliography.xml:50
|
||||
#, no-c-format
|
||||
msgid "Java Persistence with Hibernate"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: subtitle
|
||||
#: bibliography.xml:51
|
||||
#, no-c-format
|
||||
msgid "Second Edition of Hibernate in Action"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: bibliography.xml:57
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
|
||||
msgid "Christian"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: bibliography.xml:61
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Gavin</firstname> <surname>King</surname>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: holder
|
||||
#: bibliography.xml:68
|
||||
#, no-c-format
|
||||
msgid "Manning Publications Co."
|
||||
msgid "Gavin"
|
||||
msgstr ""
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,40 +1,51 @@
|
|||
#, fuzzy
|
||||
# translation of events.po to
|
||||
# Michael H. Smith <mhideo@redhat.com>, 2007.
|
||||
# Angela Garcia <agarcia@redhat.com>, 2009.
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: events\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-10 21:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-02-10T07:25:34\n"
|
||||
"PO-Revision-Date: 2009-11-12 09:03+1000\n"
|
||||
"Last-Translator: Angela Garcia <agarcia@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: events.xml:29
|
||||
#, no-c-format
|
||||
msgid "Interceptors and events"
|
||||
msgstr "Interceptores y eventos"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:31
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"It is useful for the application to react to certain events that occur "
|
||||
"inside Hibernate. This allows for the implementation of generic "
|
||||
"functionality and the extension of Hibernate functionality."
|
||||
msgstr ""
|
||||
"Frecuentemente es útil para la aplicación reaccionar a ciertos "
|
||||
"eventos que ocurran dentro de Hibernate. Esto permite la implementació"
|
||||
"n de ciertos tipos de funcionalidade genérica, y extensión de "
|
||||
"la funcionalidad de Hibernate."
|
||||
"Es útil para la aplicación reaccionar a ciertos eventos que ocurren dentro "
|
||||
"de Hibernate. Esto permite la implementación de funcionalidades genéricas y "
|
||||
"la extensión de la funcionalidad de Hibernate."
|
||||
|
||||
#. Tag: title
|
||||
#: events.xml:38
|
||||
#, no-c-format
|
||||
msgid "Interceptors"
|
||||
msgstr "Interceptores"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:40
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>Interceptor</literal> interface provides callbacks from the "
|
||||
"session to the application, allowing the application to inspect and/or "
|
||||
|
@ -46,227 +57,47 @@ msgid ""
|
|||
"<literal>lastUpdateTimestamp</literal> property when an <literal>Auditable</"
|
||||
"literal> is updated."
|
||||
msgstr ""
|
||||
"La interface <literal>Interceptor</literal> provee callbacks desde la "
|
||||
"sesión a la aplicación permitiendo a ésta última "
|
||||
"inspeccionar y/o manipular las propiedades de un objeto persistente antes "
|
||||
"que sea salvado, actualizado, borrado o cargado. Un uso posible de esto es "
|
||||
"seguir la pista de información de auditoría. Por ejemplo, el "
|
||||
"siguiente <literal>Interceptor</literal> establece automáticamente el "
|
||||
"<literal>createTimestamp</literal> cuando un <literal>Auditable</literal> es "
|
||||
"creado y actualiza la propiedad <literal>lastUpdateTimestamp</literal> "
|
||||
"cuando un <literal>Auditable</literal> es acutalizado."
|
||||
"La interfaz <literal>Interceptor</literal> brinda callbacks desde la sesión "
|
||||
"a la aplicación, permitiendole a ésta última inspeccionar y/o manipular las "
|
||||
"propiedades de un objeto persistente antes de que sea guardado, actualizado, "
|
||||
"borrado o cargado. Un uso posible de esto es seguir la pista de la "
|
||||
"información de auditoría. Por ejemplo, el siguiente <literal>Interceptor</"
|
||||
"literal> establece automáticamente el <literal>createTimestamp</literal> "
|
||||
"cuando se crea un <literal>Auditable</literal> y se actualiza la propiedad "
|
||||
"<literal>lastUpdateTimestamp</literal> cuando se actualiza un "
|
||||
"<literal>Auditable</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:51
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can either implement <literal>Interceptor</literal> directly or extend "
|
||||
"<literal>EmptyInterceptor</literal>."
|
||||
msgstr ""
|
||||
"UNTRANSLATED! You may either implement <literal>Interceptor</literal> "
|
||||
"directly or (better) extend <literal>EmptyInterceptor</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:56
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[package org.hibernate.test;\n"
|
||||
"\n"
|
||||
"import java.io.Serializable;\n"
|
||||
"import java.util.Date;\n"
|
||||
"import java.util.Iterator;\n"
|
||||
"\n"
|
||||
"import org.hibernate.EmptyInterceptor;\n"
|
||||
"import org.hibernate.Transaction;\n"
|
||||
"import org.hibernate.type.Type;\n"
|
||||
"\n"
|
||||
"public class AuditInterceptor extends EmptyInterceptor {\n"
|
||||
"\n"
|
||||
" private int updates;\n"
|
||||
" private int creates;\n"
|
||||
" private int loads;\n"
|
||||
"\n"
|
||||
" public void onDelete(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] state,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
" // do nothing\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public boolean onFlushDirty(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] currentState,\n"
|
||||
" Object[] previousState,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
"\n"
|
||||
" if ( entity instanceof Auditable ) {\n"
|
||||
" updates++;\n"
|
||||
" for ( int i=0; i < propertyNames.length; i++ ) {\n"
|
||||
" if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) {\n"
|
||||
" currentState[i] = new Date();\n"
|
||||
" return true;\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public boolean onLoad(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] state,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
" if ( entity instanceof Auditable ) {\n"
|
||||
" loads++;\n"
|
||||
" }\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public boolean onSave(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] state,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
"\n"
|
||||
" if ( entity instanceof Auditable ) {\n"
|
||||
" creates++;\n"
|
||||
" for ( int i=0; i<propertyNames.length; i++ ) {\n"
|
||||
" if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
|
||||
" state[i] = new Date();\n"
|
||||
" return true;\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public void afterTransactionCompletion(Transaction tx) {\n"
|
||||
" if ( tx.wasCommitted() ) {\n"
|
||||
" System.out.println(\"Creations: \" + creates + \", Updates: \" + "
|
||||
"updates, \"Loads: \" + loads);\n"
|
||||
" }\n"
|
||||
" updates=0;\n"
|
||||
" creates=0;\n"
|
||||
" loads=0;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[package org.hibernate.test;\n"
|
||||
"\n"
|
||||
"import java.io.Serializable;\n"
|
||||
"import java.util.Date;\n"
|
||||
"import java.util.Iterator;\n"
|
||||
"\n"
|
||||
"import org.hibernate.Interceptor;\n"
|
||||
"import org.hibernate.type.Type;\n"
|
||||
"\n"
|
||||
"public class AuditInterceptor implements Interceptor, Serializable {\n"
|
||||
"\n"
|
||||
" private int updates;\n"
|
||||
" private int creates;\n"
|
||||
"\n"
|
||||
" public void onDelete(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] state,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
" // do nothing\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public boolean onFlushDirty(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] currentState,\n"
|
||||
" Object[] previousState,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
"\n"
|
||||
" if ( entity instanceof Auditable ) {\n"
|
||||
" updates++;\n"
|
||||
" for ( int i=0; i < propertyNames.length; i++ ) {\n"
|
||||
" if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) {\n"
|
||||
" currentState[i] = new Date();\n"
|
||||
" return true;\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public boolean onLoad(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] state,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public boolean onSave(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] state,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
"\n"
|
||||
" if ( entity instanceof Auditable ) {\n"
|
||||
" creates++;\n"
|
||||
" for ( int i=0; i<propertyNames.length; i++ ) {\n"
|
||||
" if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
|
||||
" state[i] = new Date();\n"
|
||||
" return true;\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public void postFlush(Iterator entities) {\n"
|
||||
" System.out.println(\"Creations: \" + creates + \", Updates: \" + "
|
||||
"updates);\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public void preFlush(Iterator entities) {\n"
|
||||
" updates=0;\n"
|
||||
" creates=0;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" ...\n"
|
||||
"\n"
|
||||
"}]]>"
|
||||
"Puede implementar el <literal>Interceptor</literal> directamente o extender "
|
||||
"el <literal>EmptyInterceptor</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:58
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"There are two kinds of inteceptors: <literal>Session</literal>-scoped and "
|
||||
"<literal>SessionFactory</literal>-scoped."
|
||||
msgstr ""
|
||||
"UNTRANSLATED! Interceptors come in two flavors: <literal>Session</literal>-"
|
||||
"scoped and <literal>SessionFactory</literal>-scoped."
|
||||
"Hay dos clases de interceptores: incluído en <literal>Session</literal>- e "
|
||||
"incluído en <literal>SessionFactory</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:63
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A <literal>Session</literal>-scoped interceptor is specified when a session "
|
||||
"is opened using one of the overloaded SessionFactory.openSession() methods "
|
||||
"accepting an <literal>Interceptor</literal>."
|
||||
msgstr ""
|
||||
"UNTRANSLATED! A <literal>Session</literal>-scoped interceptor is specified "
|
||||
"when a session is opened using one of the overloaded SessionFactory."
|
||||
"openSession() methods accepting an <literal>Interceptor</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:69
|
||||
#, no-c-format
|
||||
msgid "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
|
||||
"Se especifica un interceptor incluído <literal>Session</literal> cuando se "
|
||||
"abre una sesión utilizando uno de los métodos SessionFactory.openSession() "
|
||||
"sobrecargados aceptando un <literal>Interceptor</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:71
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A <literal>SessionFactory</literal>-scoped interceptor is registered with "
|
||||
"the <literal>Configuration</literal> object prior to building the "
|
||||
|
@ -277,46 +108,35 @@ msgid ""
|
|||
"Ensure that you do not store session-specific states, since multiple "
|
||||
"sessions will use this interceptor potentially concurrently."
|
||||
msgstr ""
|
||||
"UNTRANSLATED! A <literal>SessionFactory</literal>-scoped interceptor is "
|
||||
"registered with the <literal>Configuration</literal> object prior to "
|
||||
"building the <literal>SessionFactory</literal>. In this case, the supplied "
|
||||
"interceptor will be applied to all sessions opened from that "
|
||||
"<literal>SessionFactory</literal>; this is true unless a session is opened "
|
||||
"explicitly specifying the interceptor to use. <literal>SessionFactory</"
|
||||
"literal>-scoped interceptors must be thread safe, taking care to not store "
|
||||
"session-specific state since multiple sessions will use this interceptor "
|
||||
"(potentially) concurrently."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:80
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
|
||||
"Un interceptor incluido en <literal>SessionFactory</literal> se encuentra "
|
||||
"registrado con el objeto <literal>Configuration</literal> antes de construir "
|
||||
"el <literal>SessionFactory</literal>. En este caso, el interceptor proveido "
|
||||
"será aplicado a todas las sesiones abiertas desde ese "
|
||||
"<literal>SessionFactory</literal>; a menos de que se abra una sesión "
|
||||
"especificando explícitamente el interceptor a utilizar. Los interceptores "
|
||||
"<literal>SessionFactory</literal> incluidos deben ser a prueba de hilos. "
|
||||
"Asegúrese de no almacenar un estado especifico a la sesión ya que múltiples "
|
||||
"sesiones utilizarán este interceptor potencialmente de manera concurrente."
|
||||
|
||||
#. Tag: title
|
||||
#: events.xml:85
|
||||
#, no-c-format
|
||||
msgid "Event system"
|
||||
msgstr "Sistema de eventos"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:87
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you have to react to particular events in your persistence layer, you can "
|
||||
"also use the Hibernate3 <emphasis>event</emphasis> architecture. The event "
|
||||
"system can be used in addition, or as a replacement, for interceptors."
|
||||
msgstr ""
|
||||
"Si tienes que reaccionar a eventos particulares en tu capa de persistencia, "
|
||||
"puedes también la arquitectura de <emphasis>eventos</emphasis> de "
|
||||
"Hibernate3. El sistema de eventos puede ser usado en adición o como "
|
||||
"un remplazo a los interceptores."
|
||||
"Si tiene que reaccionar a eventos particulares en su capa de persistencia, "
|
||||
"también puede utilizar la arquitectura de <emphasis>eventos</emphasis> de "
|
||||
"Hibernate3. El sistema de eventos se puede ser utilizar además de o como un "
|
||||
"remplazo para los interceptores."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:93
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"All the methods of the <literal>Session</literal> interface correlate to an "
|
||||
"event. You have a <literal>LoadEvent</literal>, a <literal>FlushEvent</"
|
||||
|
@ -333,37 +153,34 @@ msgid ""
|
|||
"processing any <literal>load()</literal> requests made of the "
|
||||
"<literal>Session</literal>."
|
||||
msgstr ""
|
||||
"Esencialmente todos los métodos de la interface <literal>Session</"
|
||||
"literal> se correlacionan con un evento. Tienes un <literal>LoadEvent</"
|
||||
"literal>, un <literal>FlushEvent</literal>, etc (consulta el DTD del fichero "
|
||||
"de configuración XML o el paquete <literal>org.hibernate.event</"
|
||||
"literal> para la lista completa de tipos de evento definidos). Cuando se "
|
||||
"hace una petición de uno de estos métodos, la "
|
||||
"<literal>Session</literal> de Hibernate genera un evento apropiado y se lo "
|
||||
"pasa al oyente (listener) de eventos configurado para ese tipo. De fá"
|
||||
"brica, estos oyentes implementan el mismo procesamiento en los que siempre "
|
||||
"resultan aquellos métodos. Sin embargo, eres libre de implementar una "
|
||||
"personalización de una de las interfaces oyentes (es decir, el "
|
||||
"<literal>LoadEvent</literal> es procesado por la implementación "
|
||||
"registrada de la interface <literal>LoadEventListener</literal>), en cuyo "
|
||||
"caso su implementación sería responsable de procesar cualquier "
|
||||
"petición <literal>load()</literal> hecha a la <literal>Session</"
|
||||
"literal>."
|
||||
"Todos los métodos de la interfaz <literal>Session</literal> se correlacionan "
|
||||
"con un evento. Tiene un <literal>LoadEvent</literal>, un "
|
||||
"<literal>FlushEvent</literal>, etc. Consulte el DTD del archivo de "
|
||||
"configuración XML o el paquete <literal>org.hibernate.event</literal> para "
|
||||
"ver la lista completa de los tipos de eventos definidos. Cuando se realiza "
|
||||
"una petición de uno de estos métodos, la <literal>Session</literal> de "
|
||||
"Hibernate genera un evento apropiado y se lo pasa al escucha (listener) de "
|
||||
"eventos configurado para ese tipo. Tal como vienen, estos escuchas "
|
||||
"implementan el mismo procesamiento en aquellos métodos donde siempre "
|
||||
"resultan . Sin embargo, usted es libre de implementar una personalización de "
|
||||
"una de las interfaces escuchas (por ejemplo, el <literal>LoadEvent</literal> "
|
||||
"es procesado por la implementación registrada de la interfaz "
|
||||
"<literal>LoadEventListener</literal>), en cuyo caso su implementación sería "
|
||||
"responsable de procesar cualquier petición <literal>load()</literal> "
|
||||
"realizada a la <literal>Session</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:108
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The listeners should be considered singletons. This means they are shared "
|
||||
"between requests, and should not save any state as instance variables."
|
||||
msgstr ""
|
||||
"Los oyentes deben ser considerados efectivamente singletons; quiere decir, "
|
||||
"que son compartidos entre las peticiones, y por lo tanto no guardan "
|
||||
"ningún estado en variables de instancia."
|
||||
"Los escuchas se deben considerar como singletons. Esto significa que son "
|
||||
"compartidos entre las peticiones y por lo tanto, no deben guardar ningún "
|
||||
"estado como variables de instancia."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:113
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A custom listener implements the appropriate interface for the event it "
|
||||
"wants to process and/or extend one of the convenience base classes (or even "
|
||||
|
@ -374,100 +191,32 @@ msgid ""
|
|||
"configuration through the properties file is not supported. Here is an "
|
||||
"example of a custom load event listener:"
|
||||
msgstr ""
|
||||
"Un oyente personalizado debe implementar la interface apropiada para el "
|
||||
"evento que quiere procesar y/o extender una de las clases base de "
|
||||
"conveniencia (o incluso los oyentes de eventos por defecto usados por "
|
||||
"Hibernate de fábrica al ser éstos declarados non-final para "
|
||||
"este propósito). Los oyentes personalizados pueden ser registrados "
|
||||
"programáticamente a través del objeto <literal>Configuration</"
|
||||
"literal>, o especificados en el XML de configuración de Hibernate (la "
|
||||
"declaración declarativa a través del fichero de propiedades no "
|
||||
"está soportada). He aquí un ejemplo de un oyente personalizado "
|
||||
"de eventos load:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:123
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
|
||||
" // this is the single method defined by the LoadEventListener interface\n"
|
||||
" public void onLoad(LoadEvent event, LoadEventListener.LoadType "
|
||||
"loadType)\n"
|
||||
" throws HibernateException {\n"
|
||||
" if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
|
||||
"getEntityId() ) ) {\n"
|
||||
" throw MySecurityException(\"Unauthorized access\");\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[public class MyLoadListener extends DefaultLoadEventListener {\n"
|
||||
" // this is the single method defined by the LoadEventListener interface\n"
|
||||
" public Object onLoad(LoadEvent event, LoadEventListener.LoadType "
|
||||
"loadType)\n"
|
||||
" throws HibernateException {\n"
|
||||
" if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
|
||||
"getEntityId() ) ) {\n"
|
||||
" throw MySecurityException(\"Unauthorized access\");\n"
|
||||
" }\n"
|
||||
" return super.onLoad(event, loadType);\n"
|
||||
" }\n"
|
||||
"}]]>"
|
||||
"Un escucha personalizado implementa la interfaz apropiada para el evento que "
|
||||
"quiere procesar y/o extender una de las clases base de conveniencia (o "
|
||||
"incluso los escuchas de eventos predeterminados utilizados por Hibernate de "
|
||||
"fábrica al declararlos como no-finales para este propósito). Los escuchas "
|
||||
"personalizados pueden ser registrados programáticamente a través del objeto "
|
||||
"<literal>Configuration</literal>, o especificados en el XML de configuración "
|
||||
"de Hibernate. No se soporta la configuración declarativa a través del "
|
||||
"archivo de propiedades. Este es un ejemplo de un escucha personalizado de "
|
||||
"eventos load:"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:125
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You also need a configuration entry telling Hibernate to use the listener in "
|
||||
"addition to the default listener:"
|
||||
msgstr ""
|
||||
"Necesitas además una entrada de configuración dicié"
|
||||
"ndole a Hibernate que use el oyente en vez del oyente por defecto:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:130
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<hibernate-configuration>\n"
|
||||
" <session-factory>\n"
|
||||
" ...\n"
|
||||
" <event type=\"load\">\n"
|
||||
" <listener class=\"com.eg.MyLoadListener\"/>\n"
|
||||
" <listener class=\"org.hibernate.event.def."
|
||||
"DefaultLoadEventListener\"/>\n"
|
||||
" </event>\n"
|
||||
" </session-factory>\n"
|
||||
"</hibernate-configuration>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<hibernate-configuration>\n"
|
||||
" <session-factory>\n"
|
||||
" ...\n"
|
||||
" <listener type=\"load\" class=\"MyLoadListener\"/>\n"
|
||||
" </session-factory>\n"
|
||||
"</hibernate-configuration>]]>"
|
||||
"También necesita una entrada de configuración diciéndole a Hibernate que "
|
||||
"utilice el oyente en vez del oyente por defecto:"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:132
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Instead, you can register it programmatically:"
|
||||
msgstr "En cambio, puedes registrarlo programáticamente:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:136
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Configuration cfg = new Configuration();\n"
|
||||
"LoadEventListener[] stack = { new MyLoadListener(), new "
|
||||
"DefaultLoadEventListener() };\n"
|
||||
"cfg.EventListeners().setLoadEventListeners(stack);]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Configuration cfg = new Configuration();\n"
|
||||
"cfg.getSessionEventListenerConfig().setLoadEventListener( new MyLoadListener"
|
||||
"() );]]>"
|
||||
msgstr "En cambio, puede registrarlo programáticamente: "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:138
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Listeners registered declaratively cannot share instances. If the same class "
|
||||
"name is used in multiple <literal><listener/></literal> elements, each "
|
||||
|
@ -476,15 +225,13 @@ msgid ""
|
|||
"programmatic registration approach."
|
||||
msgstr ""
|
||||
"Los oyentes registrados declarativamente no pueden compartir instancias. Si "
|
||||
"el mismo nombre de clase es usado en múltiples elementos <literal><"
|
||||
"listener/></literal>, cada referencia resultará en una instancia "
|
||||
"separada de esa clase. Si necesitas la capacidad de compartir instancias de "
|
||||
"oyentes entre tipos de oyente debes usar el enfoque de registración "
|
||||
"programática."
|
||||
"se utiliza el mismo nombre de clase en múltiples elementos <literal><"
|
||||
"listener/></literal>, cada referencia resultará en una instancia separada "
|
||||
"de esa clase. Si necesita compartir instancias de oyentes entre tipos de "
|
||||
"oyentes debe usar el enfoque de registración programática."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:146
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Why implement an interface and define the specific type during "
|
||||
"configuration? A listener implementation could implement multiple event "
|
||||
|
@ -492,110 +239,332 @@ msgid ""
|
|||
"registration makes it easier to turn custom listeners on or off during "
|
||||
"configuration."
|
||||
msgstr ""
|
||||
"¿Por qué implementar una interface y definir el tipo "
|
||||
"espcífico durante la configuración? Bueno, una "
|
||||
"implementación de oyente podría implementar múltiples "
|
||||
"interfaces de oyente de eventos. Teniendo el tipo definido adicionalmente "
|
||||
"durante la registración lo hace más fácil para activar "
|
||||
"o desactivar oyentes personalizados durante la configuración."
|
||||
"¿Por qué implementar una interfaz y definir el tipo específico durante la "
|
||||
"configuración? Una implementación de escucha podría implementar múltiples "
|
||||
"interfaces de escucha de eventos. Teniendo el tipo definido adicionalmente "
|
||||
"durante la registración hace más fácil activar o desactivar escuchas "
|
||||
"personalizados durante la configuración."
|
||||
|
||||
#. Tag: title
|
||||
#: events.xml:156
|
||||
#, no-c-format
|
||||
msgid "Hibernate declarative security"
|
||||
msgstr "Seguridad declarativa de Hibernate"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:157
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Usually, declarative security in Hibernate applications is managed in a "
|
||||
"session facade layer. Hibernate3 allows certain actions to be permissioned "
|
||||
"via JACC, and authorized via JAAS. This is an optional functionality that is "
|
||||
"built on top of the event architecture."
|
||||
msgstr ""
|
||||
"Usualmente, la seguridad declarativa en aplicaciones Hibernate es manejada "
|
||||
"en una capa de fachada de sesión. Ahora, Hibernate3 permite que "
|
||||
"ciertas acciones sean permitidas vía JACC, y autorizadas vía "
|
||||
"JAAS. Esta en una funcionalidad opcional construída encima de la "
|
||||
"arquitectura de eventos."
|
||||
"Usualmente, la seguridad declarativa en aplicaciones Hibernate se administra "
|
||||
"en una capa de fachada de sesión. Hibernate3 permite que ciertas acciones se "
|
||||
"permitan por medio de JACC y las autoriza por medio de JAAS. Esta es una "
|
||||
"funcionalidad opcional construída encima de la arquitectura de eventos."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:163
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"First, you must configure the appropriate event listeners, to enable the use "
|
||||
"of JAAS authorization."
|
||||
msgstr ""
|
||||
"Primero, debes configurar los oyentes de eventos apropiados, para habilitar "
|
||||
"el uso de autorización JAAS."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:168
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
|
||||
"JACCPreDeleteEventListener\"/>\n"
|
||||
"<listener type=\"pre-update\" class=\"org.hibernate.secure."
|
||||
"JACCPreUpdateEventListener\"/>\n"
|
||||
"<listener type=\"pre-insert\" class=\"org.hibernate.secure."
|
||||
"JACCPreInsertEventListener\"/>\n"
|
||||
"<listener type=\"pre-load\" class=\"org.hibernate.secure."
|
||||
"JACCPreLoadEventListener\"/>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
|
||||
"JACCPreDeleteEventListener\"/>\n"
|
||||
"<listener type=\"pre-update\" class=\"org.hibernate.secure."
|
||||
"JACCPreUpdateEventListener\"/>\n"
|
||||
"<listener type=\"pre-insert\" class=\"org.hibernate.secure."
|
||||
"JACCPreInsertEventListener\"/>\n"
|
||||
"<listener type=\"pre-load\" class=\"org.hibernate.secure."
|
||||
"JACCPreLoadEventListener\"/>]]>"
|
||||
"Primero, tiene que configurar los oyentes de eventos apropiados, para "
|
||||
"habilitar la utilización de autorización JAAS."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:170
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Note that <literal><listener type=\"...\" class=\"...\"/></literal> is "
|
||||
"shorthand for <literal><event type=\"...\"><listener class=\"...\"/"
|
||||
"></event></literal> when there is exactly one listener for a "
|
||||
"particular event type."
|
||||
msgstr ""
|
||||
"UNTRANSLATED! Note that <literal><listener type=\"...\" class=\"...\"/>"
|
||||
"</literal> is just a shorthand for <literal><event type=\"...\"><"
|
||||
"listener class=\"...\"/></event></literal> when there is exactly "
|
||||
"one listener for a particular event type."
|
||||
"Note que <literal><listener type=\"...\" class=\"...\"/></literal> es "
|
||||
"la abreviatura para <literal><event type=\"...\"><listener class="
|
||||
"\"...\"/></event></literal> cuando hay exactamente un escucha para "
|
||||
"un tipo de evento en particular."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:176
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Next, while still in <literal>hibernate.cfg.xml</literal>, bind the "
|
||||
"permissions to roles:"
|
||||
msgstr ""
|
||||
"Seguido, aún en <literal>hibernate.cfg.xml</literal>, liga los "
|
||||
"permisos a roles:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:180
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,"
|
||||
"read\"/>\n"
|
||||
"<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,"
|
||||
"read\"/>\n"
|
||||
"<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
|
||||
"A continuación, todavía en <literal>hibernate.cfg.xml</literal>, enlace los "
|
||||
"permisos a los roles:"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:182
|
||||
#, no-c-format
|
||||
msgid "The role names are the roles understood by your JACC provider."
|
||||
msgstr "Los nombres de role son los roles entendidos por tu proveedor de JACC."
|
||||
msgstr "Los nombres de los roles son comprendidos por su proveedor de JACC."
|
||||
|
||||
#~ msgid "ROLES_OF_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[package org.hibernate.test;\n"
|
||||
#~ "\n"
|
||||
#~ "import java.io.Serializable;\n"
|
||||
#~ "import java.util.Date;\n"
|
||||
#~ "import java.util.Iterator;\n"
|
||||
#~ "\n"
|
||||
#~ "import org.hibernate.EmptyInterceptor;\n"
|
||||
#~ "import org.hibernate.Transaction;\n"
|
||||
#~ "import org.hibernate.type.Type;\n"
|
||||
#~ "\n"
|
||||
#~ "public class AuditInterceptor extends EmptyInterceptor {\n"
|
||||
#~ "\n"
|
||||
#~ " private int updates;\n"
|
||||
#~ " private int creates;\n"
|
||||
#~ " private int loads;\n"
|
||||
#~ "\n"
|
||||
#~ " public void onDelete(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] state,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ " // do nothing\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public boolean onFlushDirty(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] currentState,\n"
|
||||
#~ " Object[] previousState,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ "\n"
|
||||
#~ " if ( entity instanceof Auditable ) {\n"
|
||||
#~ " updates++;\n"
|
||||
#~ " for ( int i=0; i < propertyNames.length; i++ ) {\n"
|
||||
#~ " if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) "
|
||||
#~ "{\n"
|
||||
#~ " currentState[i] = new Date();\n"
|
||||
#~ " return true;\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " return false;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public boolean onLoad(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] state,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ " if ( entity instanceof Auditable ) {\n"
|
||||
#~ " loads++;\n"
|
||||
#~ " }\n"
|
||||
#~ " return false;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public boolean onSave(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] state,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ "\n"
|
||||
#~ " if ( entity instanceof Auditable ) {\n"
|
||||
#~ " creates++;\n"
|
||||
#~ " for ( int i=0; i<propertyNames.length; i++ ) {\n"
|
||||
#~ " if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
|
||||
#~ " state[i] = new Date();\n"
|
||||
#~ " return true;\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " return false;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public void afterTransactionCompletion(Transaction tx) {\n"
|
||||
#~ " if ( tx.wasCommitted() ) {\n"
|
||||
#~ " System.out.println(\"Creations: \" + creates + \", Updates: "
|
||||
#~ "\" + updates, \"Loads: \" + loads);\n"
|
||||
#~ " }\n"
|
||||
#~ " updates=0;\n"
|
||||
#~ " creates=0;\n"
|
||||
#~ " loads=0;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ "}]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[package org.hibernate.test;\n"
|
||||
#~ "\n"
|
||||
#~ "import java.io.Serializable;\n"
|
||||
#~ "import java.util.Date;\n"
|
||||
#~ "import java.util.Iterator;\n"
|
||||
#~ "\n"
|
||||
#~ "import org.hibernate.EmptyInterceptor;\n"
|
||||
#~ "import org.hibernate.Transaction;\n"
|
||||
#~ "import org.hibernate.type.Type;\n"
|
||||
#~ "\n"
|
||||
#~ "public class AuditInterceptor extends EmptyInterceptor {\n"
|
||||
#~ "\n"
|
||||
#~ " private int updates;\n"
|
||||
#~ " private int creates;\n"
|
||||
#~ " private int loads;\n"
|
||||
#~ "\n"
|
||||
#~ " public void onDelete(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] state,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ " // do nothing\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public boolean onFlushDirty(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] currentState,\n"
|
||||
#~ " Object[] previousState,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ "\n"
|
||||
#~ " if ( entity instanceof Auditable ) {\n"
|
||||
#~ " updates++;\n"
|
||||
#~ " for ( int i=0; i < propertyNames.length; i++ ) {\n"
|
||||
#~ " if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) "
|
||||
#~ "{\n"
|
||||
#~ " currentState[i] = new Date();\n"
|
||||
#~ " return true;\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " return false;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public boolean onLoad(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] state,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ " if ( entity instanceof Auditable ) {\n"
|
||||
#~ " loads++;\n"
|
||||
#~ " }\n"
|
||||
#~ " return false;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public boolean onSave(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] state,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ "\n"
|
||||
#~ " if ( entity instanceof Auditable ) {\n"
|
||||
#~ " creates++;\n"
|
||||
#~ " for ( int i=0; i<propertyNames.length; i++ ) {\n"
|
||||
#~ " if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
|
||||
#~ " state[i] = new Date();\n"
|
||||
#~ " return true;\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " return false;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public void afterTransactionCompletion(Transaction tx) {\n"
|
||||
#~ " if ( tx.wasCommitted() ) {\n"
|
||||
#~ " System.out.println(\"Creations: \" + creates + \", Updates: "
|
||||
#~ "\" + updates, \"Loads: \" + loads);\n"
|
||||
#~ " }\n"
|
||||
#~ " updates=0;\n"
|
||||
#~ " creates=0;\n"
|
||||
#~ " loads=0;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ "}]]>"
|
||||
|
||||
#~ msgid "CREDIT_FOR_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
|
||||
#~ " // this is the single method defined by the LoadEventListener "
|
||||
#~ "interface\n"
|
||||
#~ " public void onLoad(LoadEvent event, LoadEventListener.LoadType "
|
||||
#~ "loadType)\n"
|
||||
#~ " throws HibernateException {\n"
|
||||
#~ " if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
|
||||
#~ "getEntityId() ) ) {\n"
|
||||
#~ " throw MySecurityException(\"Unauthorized access\");\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ "}]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
|
||||
#~ " // this is the single method defined by the LoadEventListener "
|
||||
#~ "interface\n"
|
||||
#~ " public void onLoad(LoadEvent event, LoadEventListener.LoadType "
|
||||
#~ "loadType)\n"
|
||||
#~ " throws HibernateException {\n"
|
||||
#~ " if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
|
||||
#~ "getEntityId() ) ) {\n"
|
||||
#~ " throw MySecurityException(\"Unauthorized access\");\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ "}]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<hibernate-configuration>\n"
|
||||
#~ " <session-factory>\n"
|
||||
#~ " ...\n"
|
||||
#~ " <event type=\"load\">\n"
|
||||
#~ " <listener class=\"com.eg.MyLoadListener\"/>\n"
|
||||
#~ " <listener class=\"org.hibernate.event.def."
|
||||
#~ "DefaultLoadEventListener\"/>\n"
|
||||
#~ " </event>\n"
|
||||
#~ " </session-factory>\n"
|
||||
#~ "</hibernate-configuration>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<hibernate-configuration>\n"
|
||||
#~ " <session-factory>\n"
|
||||
#~ " ...\n"
|
||||
#~ " <event type=\"load\">\n"
|
||||
#~ " <listener class=\"com.eg.MyLoadListener\"/>\n"
|
||||
#~ " <listener class=\"org.hibernate.event.def."
|
||||
#~ "DefaultLoadEventListener\"/>\n"
|
||||
#~ " </event>\n"
|
||||
#~ " </session-factory>\n"
|
||||
#~ "</hibernate-configuration>]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Configuration cfg = new Configuration();\n"
|
||||
#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
|
||||
#~ "DefaultLoadEventListener() };\n"
|
||||
#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[Configuration cfg = new Configuration();\n"
|
||||
#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
|
||||
#~ "DefaultLoadEventListener() };\n"
|
||||
#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreDeleteEventListener\"/>\n"
|
||||
#~ "<listener type=\"pre-update\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreUpdateEventListener\"/>\n"
|
||||
#~ "<listener type=\"pre-insert\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreInsertEventListener\"/>\n"
|
||||
#~ "<listener type=\"pre-load\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreLoadEventListener\"/>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreDeleteEventListener\"/>\n"
|
||||
#~ "<listener type=\"pre-update\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreUpdateEventListener\"/>\n"
|
||||
#~ "<listener type=\"pre-insert\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreInsertEventListener\"/>\n"
|
||||
#~ "<listener type=\"pre-load\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreLoadEventListener\"/>]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
|
||||
#~ "update,read\"/>\n"
|
||||
#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
|
||||
#~ "update,read\"/>\n"
|
||||
#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,21 +1,35 @@
|
|||
#, fuzzy
|
||||
# translation of example_parentchild.po to
|
||||
# Michael H. Smith <mhideo@redhat.com>, 2007.
|
||||
# Angela Garcia <agarcia@redhat.com>, 2009, 2010.
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: example_parentchild\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-10 21:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-02-10T07:25:35\n"
|
||||
"PO-Revision-Date: 2010-01-05 17:42+1000\n"
|
||||
"Last-Translator: Angela Garcia <agarcia@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:29
|
||||
#, no-c-format
|
||||
msgid "Example: Parent/Child"
|
||||
msgstr "Ejemplo: Padre/Hijo"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:31
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"One of the first things that new users want to do with Hibernate is to model "
|
||||
"a parent/child type relationship. There are two different approaches to "
|
||||
|
@ -31,54 +45,47 @@ msgid ""
|
|||
"cascades</emphasis> to model a parent/child relationship efficiently and "
|
||||
"elegantly."
|
||||
msgstr ""
|
||||
"Una de las primerísimas cosas que los usuarios nuevos intentan hacer "
|
||||
"con Hibernate es modelar una relación de tipo padre / hijo. Para esto "
|
||||
"hay dos enfoques diferentes. Por varias razones, el enfoque más "
|
||||
"conveniente, especialmente para usuarios nuevos, es modelar tanto "
|
||||
"<literal>Parent</literal> como <literal>Child</literal> como clases de "
|
||||
"entidad con una asociación <literal><one-to-many></literal> "
|
||||
"desde <literal>Parent</literal> a <literal>Child</literal>. (El enfoque "
|
||||
"alternativo es declarar el <literal>Child</literal> como un <literal><"
|
||||
"composite-element></literal>.) Ahora, resulta que la semántica por "
|
||||
"defecto de una asociación uno a muchos (en Hibernate) es mucho menos "
|
||||
"cercana a la semántica usual de una relación padre / hijo que "
|
||||
"aquellas de un mapeo de elementos compuestos. Explicaremos cómo usar "
|
||||
"una <emphasis>asociación uno a muchos bidireccional con tratamiento "
|
||||
"en cascada</emphasis> para modelar una relación padre / hijo "
|
||||
"eficiente y elegantemente. ¡No es para nada difícil!"
|
||||
"Una de las primeras cosas que los usuarios nuevos intentan hacer con "
|
||||
"Hibernate es modelar una relación de tipo padre / hijo. Para esto existen "
|
||||
"dos enfoques diferentes. El enfoque más conveniente, especialmente para los "
|
||||
"usuarios nuevos, es modelar tanto <literal>Parent</literal> como "
|
||||
"<literal>Child</literal> como clases de entidad con una asociación "
|
||||
"<literal><one-to-many></literal> desde <literal>Parent</literal> a "
|
||||
"<literal>Child</literal>. El enfoque opcional es declarar el <literal>Child</"
|
||||
"literal> como un <literal><composite-element></literal>. La semántica "
|
||||
"prederterminada de una asociación uno-a-muchos en Hibernate es mucho menos "
|
||||
"cercana a la semántica usual de una relación padre / hijo que la de un mapeo "
|
||||
"de elementos compuestos. Explicaremos cómo utilizar una <emphasis>asociación "
|
||||
"uno-a-muchos bidireccional con tratamiento en cascada</emphasis> para "
|
||||
"modelar una relación padre / hijo de manera eficiente y elegante."
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:45
|
||||
#, no-c-format
|
||||
msgid "A note about collections"
|
||||
msgstr "Una nota sobre las colecciones"
|
||||
msgstr "Nota sobre las colecciones"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:47
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate collections are considered to be a logical part of their owning "
|
||||
"entity and not of the contained entities. Be aware that this is a critical "
|
||||
"distinction that has the following consequences:"
|
||||
msgstr ""
|
||||
"Se considera que las colecciones de Hibernate son una parte lógica de "
|
||||
"la entidad que las posee; nunca de las entidades contenidas. ¡Esta es "
|
||||
"una distinción crucial! Esto tiene las siguientes consecuencias:"
|
||||
"Se considera que las colecciones de Hibernate son una parte lógica de la "
|
||||
"entidad que las posee y no de las entidades contenidas. Note que esta es una "
|
||||
"diferencia crucial y que esto tiene las siguientes consecuencias:"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:54
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"When you remove/add an object from/to a collection, the version number of "
|
||||
"the collection owner is incremented."
|
||||
msgstr ""
|
||||
"Cuando se quita / añade un objeto desde / a una colección, se "
|
||||
"incrementa el número de versión del dueño de la "
|
||||
"colección."
|
||||
"Cuando se elimina/agrega un objeto desde/a una colección, se incrementa el "
|
||||
"número de la versión del dueño de la colección."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:60
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If an object that was removed from a collection is an instance of a value "
|
||||
"type (e.g. a composite element), that object will cease to be persistent and "
|
||||
|
@ -86,15 +93,14 @@ msgid ""
|
|||
"value type instance to the collection will cause its state to be immediately "
|
||||
"persistent."
|
||||
msgstr ""
|
||||
"Si un objeto que fue quitado de una colección es una instancia de un "
|
||||
"tipo de valor (por ejemplo, un elemento compuesto), ese objeta cesará "
|
||||
"de ser persistente y su estado será completamente quitado de la base "
|
||||
"de datos. Asimismo, añadir una instancia de tipo de valor a la "
|
||||
"colección causará que su estado sea inmediatamente persistente."
|
||||
"Si un objeto que fue eliminado de una colección es una instancia de un tipo "
|
||||
"de valor (por ejemplo, un elemento compuesto), ese objeto cesará de ser "
|
||||
"persistente y su estado será completamente eliminado de la base de datos. "
|
||||
"Asimismo, añadir una instancia de tipo de valor a la colección causará que "
|
||||
"su estado sea persistente inmediatamente."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:68
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Conversely, 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 behavior is "
|
||||
|
@ -102,16 +108,15 @@ msgid ""
|
|||
"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 ""
|
||||
"Por otro lado, si se quita una entidad de una colección (una "
|
||||
"asociación uno-a-muchos o muchos-a-muchos), no será borrado, "
|
||||
"por defecto. Este comportamiento es completamente consistente. ¡Un "
|
||||
"cambio en el estado interno de otra entidad no hace desaparecer la entidad "
|
||||
"asociada! Asimismo, añadir una entidad a una colección no "
|
||||
"causa que la entidad se vuelva persistente, por defecto."
|
||||
"Por otro lado, si se elimina una entidad de una colección (una asociación "
|
||||
"uno-a-muchos o muchos-a-muchos), no se borrará por defecto. Este "
|
||||
"comportamiento es completamente consistente; un cambio en el estado interno "
|
||||
"de otra entidad no hace desaparecer la entidad asociada. Asimismo, el "
|
||||
"agregar una entidad a una colección no causa que la entidad se vuelva "
|
||||
"persistente por defecto."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:78
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Adding an entity to a collection, by default, merely creates a link between "
|
||||
"the two entities. Removing the entity will remove the link. This is "
|
||||
|
@ -119,74 +124,37 @@ msgid ""
|
|||
"case of a parent/child relationship. In this case, the life of the child is "
|
||||
"bound to the life cycle of the parent."
|
||||
msgstr ""
|
||||
"En cambio, el comportamiento por defecto es que al añadir una entidad "
|
||||
"a una colección se crea meramente un enlace entre las dos entidades, "
|
||||
"mientras que al quitarla se quita el enlace. Esto es muy apropiado para "
|
||||
"todos los tipos de casos. Donde no es para nada apropiado es en el caso de "
|
||||
"una relación padre / hijo. donde la vida del hijo está ligada "
|
||||
"al ciclo de vida del padre."
|
||||
"El comportamiento por defecto es que al agregar una entidad a una colección "
|
||||
"se crea un enlace entre las dos entidades. Al eliminar la entidad se "
|
||||
"eliminará el enlace. Esto es muy apropiado para todos los tipos de casos. "
|
||||
"Sin embargo, no apropiado en el caso de una relación padre / hijo. En este "
|
||||
"caso la vida del hijo se encuentra vinculada al ciclo de vida del padre."
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:88
|
||||
#, no-c-format
|
||||
msgid "Bidirectional one-to-many"
|
||||
msgstr "Uno-a-muchos bidirectional"
|
||||
msgstr "Uno-a-muchos bidireccional"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:90
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Suppose we start with a simple <literal><one-to-many></literal> "
|
||||
"association from <literal>Parent</literal> to <literal>Child</literal>."
|
||||
msgstr ""
|
||||
"Supón que empezamos con una asociación simple <literal><one-"
|
||||
"to-many></literal> desde <literal>Parent</literal> a <literal>Child</"
|
||||
"literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:95
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"children\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
"Supónga que empezamos con una asociación simple <literal><one-to-many>"
|
||||
"</literal> desde <literal>Parent</literal> a <literal>Child</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:97
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "If we were to execute the following code:"
|
||||
msgstr "Si ejecutásemos el siguiente código"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:101
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = .....;\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.getChildren().add(c);\n"
|
||||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = .....;\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.getChildren().add(c);\n"
|
||||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr "Si ejecutásemos el siguiente código:"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:103
|
||||
#, no-c-format
|
||||
msgid "Hibernate would issue two SQL statements:"
|
||||
msgstr "Hibernate publicaría dos sentencias SQL:"
|
||||
msgstr "Hibernate publicaría dos declaraciones SQL:"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:109
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
|
||||
|
@ -194,7 +162,6 @@ msgstr ""
|
|||
"un <literal>INSERT</literal> para crear el registro de <literal>c</literal>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:112
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"an <literal>UPDATE</literal> to create the link from <literal>p</literal> to "
|
||||
|
@ -204,43 +171,25 @@ msgstr ""
|
|||
"a <literal>c</literal>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:119
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is not only inefficient, but also violates any <literal>NOT NULL</"
|
||||
"literal> constraint on the <literal>parent_id</literal> column. You can fix "
|
||||
"the nullability constraint violation by specifying <literal>not-null=\"true"
|
||||
"\"</literal> in the collection mapping:"
|
||||
msgstr ""
|
||||
"Esto no es sólo ineficiente, sino que además viola cualquier "
|
||||
"restricción <literal>NOT NULL</literal> en la columna "
|
||||
"<literal>parent_id</literal>. Podemos reparar la violación de "
|
||||
"restricción de nulabilidad especificando <literal>not-null=\"true\"</"
|
||||
"literal> en el mapeo de la colección:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:125
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\">\n"
|
||||
" <key column=\"parent_id\" not-null=\"true\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"children\">\n"
|
||||
" <key column=\"parent_id\" not-null=\"true\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
"Esto no es sólo ineficiente, sino que además viola cualquier restricción "
|
||||
"<literal>NOT NULL</literal> en la columna <literal>parent_id</literal>. "
|
||||
"Puede arreglar la violación de restricción de nulabilidad especificando "
|
||||
"<literal>not-null=\"true\"</literal> en el mapeo de la colección:"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:127
|
||||
#, no-c-format
|
||||
msgid "However, this is not the recommended solution."
|
||||
msgstr "Sin embargo, esta no es la solución recomendada."
|
||||
msgstr "Sin embargo, esta no es la solución recomendada."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:130
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The underlying cause of this behavior is that the link (the foreign key "
|
||||
"<literal>parent_id</literal>) from <literal>p</literal> to <literal>c</"
|
||||
|
@ -248,301 +197,122 @@ msgid ""
|
|||
"object and is therefore not created in the <literal>INSERT</literal>. The "
|
||||
"solution is to make the link part of the <literal>Child</literal> mapping."
|
||||
msgstr ""
|
||||
"El caso subyacente de este comportamiento es que el enlace (la clave "
|
||||
"foránea <literal>parent_id</literal>) de <literal>p</literal> a "
|
||||
"<literal>c</literal> no es considerado parte del estado del objeto "
|
||||
"<literal>Child</literal> y por lo tanto no es creada en el <literal>INSERT</"
|
||||
"literal>. De modo que la solución es hacer el enlace parte del mapeo "
|
||||
"del <literal>Child</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:137
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/"
|
||||
">]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/"
|
||||
">]]>"
|
||||
"El caso subyacente de este comportamiento es que el enlace (la clave foránea "
|
||||
"<literal>parent_id</literal>) de <literal>p</literal> a <literal>c</literal> "
|
||||
"no se considera parte del estado del objeto <literal>Child</literal> y por "
|
||||
"lo tanto no se crea en el <literal>INSERT</literal>. De modo que la solución "
|
||||
"es hacer que el enlace sea parte del mapeo del <literal>Child</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:139
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You also need to add the <literal>parent</literal> property to the "
|
||||
"<literal>Child</literal> class."
|
||||
msgstr ""
|
||||
"(Necesitamos además añadir la propiedad <literal>parent</"
|
||||
"literal> a la clase <literal>Child</literal>.)"
|
||||
"También necesita agregar la propiedad <literal>parent</literal> a la clase "
|
||||
"<literal>Child</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:143
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Now that the <literal>Child</literal> entity is managing the state of the "
|
||||
"link, we tell the collection not to update the link. We use the "
|
||||
"<literal>inverse</literal> attribute to do this:"
|
||||
msgstr ""
|
||||
"Ahora que la entidad <literal>Child</literal> está gestionando el "
|
||||
"estado del enlace, le decimos a la colección que no actualice el "
|
||||
"enlace. Usamos el atributo <literal>inverse</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:148
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
"Ahora que la entidad <literal>Child</literal> está administrando el estado "
|
||||
"del enlace, le decimos a la colección que no actualice el enlace. Usamos el "
|
||||
"atributo <literal>inverse</literal> para hacer esto:"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:150
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "The following code would be used to add a new <literal>Child</literal>:"
|
||||
msgstr ""
|
||||
"El siguiente código podría ser usado para añadir un "
|
||||
"nuevo <literal>Child</literal>"
|
||||
"El siguiente código se podría utilizar para agregar un nuevo <literal>Child</"
|
||||
"literal>:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:154
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"c.setParent(p);\n"
|
||||
"p.getChildren().add(c);\n"
|
||||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"c.setParent(p);\n"
|
||||
"p.getChildren().add(c);\n"
|
||||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:156
|
||||
#, fuzzy, no-c-format
|
||||
msgid "Only one SQL <literal>INSERT</literal> would now be issued."
|
||||
msgstr ""
|
||||
"Y ahora, ¡Sólo se publicaría un <literal>INSERT</"
|
||||
"literal> de SQL!"
|
||||
msgstr "Sólo se emitiría un <literal>INSERT</literal> de SQL."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:160
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You could also create an <literal>addChild()</literal> method of "
|
||||
"<literal>Parent</literal>."
|
||||
msgstr ""
|
||||
"Para ajustar un poco más las cosas, podríamos crear un "
|
||||
"método <literal>addChild()</literal> en <literal>Parent</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:165
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[public void addChild(Child c) {\n"
|
||||
" c.setParent(this);\n"
|
||||
" children.add(c);\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[public void addChild(Child c) {\n"
|
||||
" c.setParent(this);\n"
|
||||
" children.add(c);\n"
|
||||
"}]]>"
|
||||
"También podría crear un método <literal>addChild()</literal> de "
|
||||
"<literal>Parent</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:167
|
||||
#, fuzzy, no-c-format
|
||||
msgid "The code to add a <literal>Child</literal> looks like this:"
|
||||
msgstr ""
|
||||
"Ahora, el código para añadir un <literal>Child</literal> se ve "
|
||||
"así"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:171
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.addChild(c);\n"
|
||||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.addChild(c);\n"
|
||||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgid "The code to add a <literal>Child</literal> looks like this:"
|
||||
msgstr "El código para agregar un <literal>Child</literal> se ve así:"
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:176
|
||||
#, no-c-format
|
||||
msgid "Cascading life cycle"
|
||||
msgstr "Ciclo de vida en cascada"
|
||||
msgstr "Ciclo de vida en cascada "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:178
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can address the frustrations of the explicit call to <literal>save()</"
|
||||
"literal> by using cascades."
|
||||
msgstr ""
|
||||
"La llamada explícita a <literal>save()</literal> es aún "
|
||||
"molesta. Apuntaremos a esto usando tratamientos en cascada."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:183
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
"Puede abordar las frustraciones de la llamada explícita a <literal>save()</"
|
||||
"literal> utilizando cascadas."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:185
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "This simplifies the code above to:"
|
||||
msgstr "Esto simplifica el código anterior a"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:189
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.addChild(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.addChild(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr "Esto simplifica el código anterior a:"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:191
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Similarly, we do not need to iterate over the children when saving or "
|
||||
"deleting a <literal>Parent</literal>. The following removes <literal>p</"
|
||||
"literal> and all its children from the database."
|
||||
msgstr ""
|
||||
"Similarmente, no necesitamos iterar los hijos al salvar o borrar un "
|
||||
"<literal>Parent</literal>. Lo siguiente quita <literal>p</literal> y todos "
|
||||
"De manera similar, no necesitamos iterar los hijos al guardar o borrar un "
|
||||
"<literal>Parent</literal>. Lo siguiente elimina <literal>p</literal> y todos "
|
||||
"sus hijos de la base de datos."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:196
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"session.delete(p);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"session.delete(p);\n"
|
||||
"session.flush();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:198
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "However, the following code:"
|
||||
msgstr "Sin embargo, este código"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:202
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = (Child) p.getChildren().iterator().next();\n"
|
||||
"p.getChildren().remove(c);\n"
|
||||
"c.setParent(null);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = (Child) p.getChildren().iterator().next();\n"
|
||||
"p.getChildren().remove(c);\n"
|
||||
"c.setParent(null);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr "Sin embargo, el siguiente código:"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:204
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"will not remove <literal>c</literal> from the database. In this case, it "
|
||||
"will only remove the link to <literal>p</literal> and cause a <literal>NOT "
|
||||
"NULL</literal> constraint violation. You need to explicitly <literal>delete()"
|
||||
"</literal> the <literal>Child</literal>."
|
||||
msgstr ""
|
||||
"no quitará <literal>c</literal> de la base de datos; sólo "
|
||||
"quitará el enlace a <literal>p</literal> (y causará una "
|
||||
"violación a una restricción <literal>NOT NULL</literal>). "
|
||||
"Necesitas borrar el hijo explícitamente llamando a <literal>delete()</"
|
||||
"no eliminará <literal>c</literal> de la base de datos. En este caso, sólo "
|
||||
"quitará el enlace a <literal>p</literal> y causará una violación a una "
|
||||
"restricción <literal>NOT NULL</literal>. Necesita borrar el hijo "
|
||||
"explícitamente llamando a <literal>delete()</literal> en <literal>Child</"
|
||||
"literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:210
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = (Child) p.getChildren().iterator().next();\n"
|
||||
"p.getChildren().remove(c);\n"
|
||||
"session.delete(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = (Child) p.getChildren().iterator().next();\n"
|
||||
"p.getChildren().remove(c);\n"
|
||||
"session.delete(c);\n"
|
||||
"session.flush();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:212
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"In our case, a <literal>Child</literal> cannot exist without its parent. So "
|
||||
"if we remove a <literal>Child</literal> from the collection, we do want it "
|
||||
"to be deleted. To do this, we must use <literal>cascade=\"all-delete-orphan"
|
||||
"\"</literal>."
|
||||
msgstr ""
|
||||
"Ahora, en nuestro caso, un <literal>Child</literal> no puede existir "
|
||||
"realmente sin su padre. De modo que si quitamos un <literal>Child</literal> "
|
||||
"de la colección, realmente queremos que sea borrado. Para esto, "
|
||||
"debemos usar <literal>cascade=\"all-delete-orphan\"</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:218
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-orphan"
|
||||
"\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-orphan"
|
||||
"\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
"En nuestro caso, un <literal>Child</literal> no puede existir realmente sin "
|
||||
"su padre. De modo que si eliminamos un <literal>Child</literal> de la "
|
||||
"colección, realmente queremos que sea borrado. Para esto, tenemos que "
|
||||
"utilizar <literal>cascade=\"all-delete-orphan\"</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:220
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Even though the collection mapping specifies <literal>inverse=\"true\"</"
|
||||
"literal>, cascades are still processed by iterating the collection elements. "
|
||||
|
@ -550,21 +320,18 @@ msgid ""
|
|||
"it to the collection. It is not enough to simply call <literal>setParent()</"
|
||||
"literal>."
|
||||
msgstr ""
|
||||
"Nota: aunque el mapeo de la colección especifique <literal>inverse="
|
||||
"\"true\"</literal>, el tratamiento en cascada se procesa aún al "
|
||||
"iterar los elementos de colección. De modo que si requieres que un "
|
||||
"objeto sea salvado, borrado o actualizado en cascada, debes añadirlo "
|
||||
"a la colección. No es suficiente con simplemente llamar a "
|
||||
"<literal>setParent()</literal>."
|
||||
"Aunque el mapeo de la colección especifique <literal>inverse=\"true\"</"
|
||||
"literal>, el tratamiento en cascada se procesa aún al iterar los elementos "
|
||||
"de la colección. De modo que si necesita que un objeto se guarde, borre o "
|
||||
"actualice en cascada, debe añadirlo a la colección. No es suficiente con "
|
||||
"simplemente llamar a <literal>setParent()</literal>."
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:230
|
||||
#, no-c-format
|
||||
msgid "Cascades and <literal>unsaved-value</literal>"
|
||||
msgstr "Tratamiento en cascada y <literal>unsaved-value</literal>"
|
||||
msgstr "Cascadas y <literal>unsaved-value</literal>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:232
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
|
||||
|
@ -577,57 +344,36 @@ msgid ""
|
|||
"literal> have generated identifier properties of type <literal>Long</"
|
||||
"literal>. Hibernate will use the identifier and version/timestamp property "
|
||||
"value to determine which of the children are new. (See <xref linkend="
|
||||
"\"objectstate-saveorupdate\"/>.) <emphasis>In Hibernate3, it is no longer "
|
||||
"\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer "
|
||||
"necessary to specify an <literal>unsaved-value</literal> explicitly.</"
|
||||
"emphasis>"
|
||||
msgstr ""
|
||||
"Supón que hemos cargado un <literal>Parent</literal> en una "
|
||||
"<literal>Session</literal>, hemos hecho algunos cambios en una acción "
|
||||
"de UI y deseamos hacer persistentes estos cambios en una nueva sesión "
|
||||
"llamando a <literal>update()</literal>. El <literal>Parent</literal> "
|
||||
"contendrá una colección de hijos y, ya que está "
|
||||
"habilitado el tratamiento en cascada, Hibernate necesita saber qué "
|
||||
"hijos están recién instanciados y cuáles representan "
|
||||
"filas existentes en la base de datos. Asumamos que tanto <literal>Parent</"
|
||||
"literal> como <literal>Child</literal> tienen propiedades identificadoras "
|
||||
"generadas de tipo <literal>Long</literal>. Hibernate usará el "
|
||||
"identificador y el valor de la propiedad de versión/timestamp para "
|
||||
"determinar cuáles de los hijos son nuevos. (Ver <xref linkend="
|
||||
"\"objectstate-saveorupdate\"/>.) <emphasis>En Hibernate3, no es más "
|
||||
"necesario especificar un <literal>unsaved-value</literal> explí"
|
||||
"citamente.</emphasis>"
|
||||
"Supónga que hemos cargado un <literal>Parent</literal> en una "
|
||||
"<literal>Session</literal>, hemos realizado algunos cambios en una acción UI "
|
||||
"y deseamos hacer persistentes estos cambios en una nueva sesión llamando a "
|
||||
"<literal>update()</literal>. El <literal>Parent</literal> contendrá una "
|
||||
"colección de hijos y ya que está habilitado el tratamiento en cascada, "
|
||||
"Hibernate necesita saber qué hijos están recién instanciados y cuáles "
|
||||
"representan filas existentes en la base de datos. También vamos a asumir que "
|
||||
"tanto <literal>Parent</literal> como <literal>Child</literal> tienen "
|
||||
"propiedades identificadoras generadas de tipo <literal>Long</literal>. "
|
||||
"Hibernate usará el identificador y el valor de la propiedad de versión/sello "
|
||||
"de fecha para determinar cuáles de los hijos son nuevos, (consulte la <xref "
|
||||
"linkend=\"objectstate-saveorupdate\" />). <emphasis>En Hibernate3, ya no es "
|
||||
"necesario especificar un <literal>unsaved-value</literal> explícitamente.</"
|
||||
"emphasis>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:244
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The following code will update <literal>parent</literal> and <literal>child</"
|
||||
"literal> and insert <literal>newChild</literal>:"
|
||||
msgstr ""
|
||||
"The following code will update <literal>parent</literal> and <literal>child</"
|
||||
"literal> and insert <literal>newChild</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:249
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[//parent and child were both loaded in a previous session\n"
|
||||
"parent.addChild(child);\n"
|
||||
"Child newChild = new Child();\n"
|
||||
"parent.addChild(newChild);\n"
|
||||
"session.update(parent);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[//parent and child were both loaded in a previous session\n"
|
||||
"parent.addChild(child);\n"
|
||||
"Child newChild = new Child();\n"
|
||||
"parent.addChild(newChild);\n"
|
||||
"session.update(parent);\n"
|
||||
"session.flush();]]>"
|
||||
"El siguiente código actualizará <literal>parent</literal> y <literal>child</"
|
||||
"literal> e insertará <literal>newChild</literal>:"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:251
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This may be suitable for the case of a generated identifier, but what about "
|
||||
"assigned identifiers and composite identifiers? This is more difficult, "
|
||||
|
@ -637,38 +383,33 @@ msgid ""
|
|||
"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 ""
|
||||
"Bueno, todo eso está muy bien para el caso de un identificador "
|
||||
"generado, pero ¿qué de los identificadores asignados y de los "
|
||||
"identificadores compuestos? Esto es más difícil, ya que "
|
||||
"Hibernate no puede usar la propiedad identificadora para distinguir entre un "
|
||||
"objeto recién instanciado (con un identificador asignado por el "
|
||||
"usuario) y un objeto cargado en una sesión previa. En este caso, "
|
||||
"Hibernate bien usará la propiedad de versión o timestamp, o "
|
||||
"bien consultará realmente el caché de segundo nivel, o bien, "
|
||||
"en el peor de los casos, la base de datos, para ver si existe la fila."
|
||||
"Todo eso es apropiado para el caso de un identificador generado, pero ¿qué "
|
||||
"de los identificadores asignados y de los identificadores compuestos? Esto "
|
||||
"es más difícil, ya que Hibernate no puede usar la propiedad identificadora "
|
||||
"para distinguir entre un objeto recién instanciado, con un identificador "
|
||||
"asignado por el usuario y un objeto cargado en una sesión previa. En este "
|
||||
"caso, Hibernate utilizará la propiedad de versión o sello de fecha, o bien "
|
||||
"consultará realmente el caché de segundo nivel, o bien, en el peor de los "
|
||||
"casos, consultará la base de datos, para ver si la fila existe."
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:284
|
||||
#, no-c-format
|
||||
msgid "Conclusion"
|
||||
msgstr "Conclusión"
|
||||
msgstr "Conclusión"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:286
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The sections we have just covered can be a bit confusing. However, in "
|
||||
"practice, it all works out nicely. Most Hibernate applications use the "
|
||||
"parent/child pattern in many places."
|
||||
msgstr ""
|
||||
"Hay que resumir un poco aquí y podría parecer confuso a la "
|
||||
"primera vez. Sin embargo, en la práctica, todo funciona muy "
|
||||
"agradablemente. La mayoría de las aplicaciones de Hibernate usan el "
|
||||
"patrón padre / hijo en muchos sitios."
|
||||
"Las secciones que acabamos de cubrir pueden parecer un poco confusas. Sin "
|
||||
"embargo, en la práctica, todo funciona muy bien. La mayoría de las "
|
||||
"aplicaciones de Hibernate utilizan el patrón padre / hijo en muchos sitios."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:291
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"We mentioned an alternative in the first paragraph. None of the above issues "
|
||||
"exist in the case of <literal><composite-element></literal> mappings, "
|
||||
|
@ -677,16 +418,10 @@ msgid ""
|
|||
"composite elements cannot own collections and they should not be the child "
|
||||
"of any entity other than the unique parent."
|
||||
msgstr ""
|
||||
"Hemos mencionado una alternativa en el primer párrafo. Ninguno de los "
|
||||
"temas anteriores existe en el caso de los mapeos <literal><composite-"
|
||||
"element></literal>, que tienen exactamente la semántica de una "
|
||||
"relación padre / hijo. Desafortunadamente, hay dos grandes "
|
||||
"limitaciones para las clases de elementos compuestos: los elementos "
|
||||
"compuestos no pueden poseer sus propias colecciones, y no deben ser el hijo "
|
||||
"de cualquier otra entidad que no sea su padre único."
|
||||
|
||||
#~ msgid "ROLES_OF_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
#~ msgid "CREDIT_FOR_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
"Mencionamos una opción en el primer párrafo. Ninguno de los temas anteriores "
|
||||
"existe en el caso de los mapeos <literal><composite-element></"
|
||||
"literal>, los cuales tienen exactamente la semántica de una relación padre / "
|
||||
"hijo. Desafortunadamente, existen dos grandes limitaciones para las clases "
|
||||
"de elementos compuestos: los elementos compuestos no pueden poseer sus "
|
||||
"propias colecciones y no deben ser el hijo de cualquier otra entidad que no "
|
||||
"sea su padre único."
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,41 +1,53 @@
|
|||
#, fuzzy
|
||||
# translation of filters.po to
|
||||
# Michael H. Smith <mhideo@redhat.com>, 2007.
|
||||
# Angela Garcia <agarcia@redhat.com>, 2009.
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: filters\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-10 21:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-02-10T07:25:35\n"
|
||||
"PO-Revision-Date: 2009-11-11 08:28+1000\n"
|
||||
"Last-Translator: Angela Garcia <agarcia@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: filters.xml:29
|
||||
#, no-c-format
|
||||
msgid "Filtering data"
|
||||
msgstr "Filtrando datos"
|
||||
msgstr "Filtración de datos"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:31
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate3 provides an innovative new approach to handling data with "
|
||||
"\"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, "
|
||||
"named, parameterized filter that can be enabled or disabled for a particular "
|
||||
"Hibernate session."
|
||||
msgstr ""
|
||||
"Hibernate3 provee un nuevo enfoque innovador para manejar datos con reglas "
|
||||
"de \"visibilidad\". Un <emphasis>filtro de Hibernate</emphasis> es un filtro "
|
||||
"global, con nombre y parametrizado que puede ser habilitado o deshabilitado "
|
||||
"para una sesión de Hibernate en particular."
|
||||
"Hibernate3 proporciona un nuevo enfoque innovador para manejar datos con "
|
||||
"reglas de \"visibilidad\". Un <emphasis>filtro Hibernate</emphasis> es un "
|
||||
"filtro global, con nombre y parametrizado que puede ser habilitado o "
|
||||
"deshabilitado para una sesión de Hibernate especifica."
|
||||
|
||||
#. Tag: title
|
||||
#: filters.xml:38
|
||||
#, no-c-format
|
||||
msgid "Hibernate filters"
|
||||
msgstr "Filtros de Hibernate"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:40
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate3 has the ability to pre-define filter criteria and attach those "
|
||||
"filters at both a class level and a collection level. A filter criteria "
|
||||
|
@ -46,18 +58,17 @@ msgid ""
|
|||
"parameter values should be. Filters can be used like database views, but "
|
||||
"they are parameterized inside the application."
|
||||
msgstr ""
|
||||
"Hibernate3 añade la habilidad de predefinir criterios de filtros y unir esos "
|
||||
"filtros tanto a nivel de una clase como de una colección. Un criterio de "
|
||||
"filtro es la habilidad de definir una cláusula de restricción muy similar al "
|
||||
"atributo existente \"where\" disponible en el elemento class y varios "
|
||||
"elementos de colección. Excepto en que estos filtros pueden ser "
|
||||
"parametrizados. La aplicación puede tomar la decisión en tiempo de ejecución "
|
||||
"de qué filtros deben estar habilitados y cuáles deben ser sus parámetros. "
|
||||
"Los filtros pueden ser usados como vistas de base de datos, pero "
|
||||
"Hibernate3 tiene la habilidad de predefinir criterios de filtros y unir esos "
|
||||
"filtros tanto a nivel de clase como de colección. Un criterio de filtro le "
|
||||
"permite definir una cláusula de restricción muy similar al atributo "
|
||||
"existente \"where\" disponible en el elemento class y en varios elementos de "
|
||||
"colección. Sin embargo, las condiciones de estos filtros se pueden "
|
||||
"parametrizar. La aplicación puede tomar la decisión en tiempo de ejecución "
|
||||
"de si los filtros deben estar habilitados y cuáles deben ser sus parámetros. "
|
||||
"Los filtros se pueden utilizar como vistas de la base de datos, pero "
|
||||
"parametrizados dentro de la aplicación."
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:50
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"In order to use filters, they must first be defined and then attached to the "
|
||||
|
@ -65,74 +76,28 @@ msgid ""
|
|||
"filter-def/></literal> element within a <literal><hibernate-mapping/"
|
||||
"></literal> element:"
|
||||
msgstr ""
|
||||
"Para usar los filtros, éstos deben primero ser definidos y luego unidos a "
|
||||
"los elementos de mapeo apropiados. Para definir un filtro, usa el elemento "
|
||||
"<literal><filter-def/></literal> dentro de un elemento <literal><"
|
||||
"hibernate-mapping/></literal>:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:56
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<filter-def name=\"myFilter\">\n"
|
||||
" <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
|
||||
"</filter-def>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<filter-def name=\"myFilter\">\n"
|
||||
" <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
|
||||
"</filter-def>]]>"
|
||||
"Para utilizar los filtros, éstos se deben definir primero y luego se unen a "
|
||||
"los elementos de mapeo apropiados. Para definir un filtro, utilice el "
|
||||
"elemento <literal><filter-def/></literal> dentro de un elemento "
|
||||
"<literal><hibernate-mapping/></literal>:"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:58
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "This filter can then be attached to a class:"
|
||||
msgstr "Entonces este filtro puede ser unido a una clase:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:62
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"myClass\" ...>\n"
|
||||
" ...\n"
|
||||
" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
|
||||
"\"/>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"myClass\" ...>\n"
|
||||
" ...\n"
|
||||
" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
|
||||
"\"/>\n"
|
||||
"</class>]]>"
|
||||
msgstr "Luego este filtro se puede adjuntar a una clase:"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:64
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Or, to a collection:"
|
||||
msgstr "o a una colección:"
|
||||
msgstr "O a una colección:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:68
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<set ...>\n"
|
||||
" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
|
||||
"\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set ...>\n"
|
||||
" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
|
||||
"\"/>\n"
|
||||
"</set>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:70
|
||||
#, fuzzy, no-c-format
|
||||
msgid "Or, to both or multiples of each at the same time."
|
||||
msgstr "o incluso a ambos (o muchos de cada uno) al mismo tiempo."
|
||||
msgstr "O incluso a ambos o múltiples de cada uno al mismo tiempo."
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:74
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The methods on <literal>Session</literal> are: <literal>enableFilter(String "
|
||||
"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
|
||||
|
@ -145,177 +110,69 @@ msgid ""
|
|||
msgstr ""
|
||||
"Los métodos en <literal>Session</literal> son: <literal>enableFilter(String "
|
||||
"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
|
||||
"literal>, y <literal>disableFilter(String filterName)</literal>. Por "
|
||||
"defecto, los filtros <emphasis>no</emphasis> están habilitados para una "
|
||||
"sesión dada; deben ser habilitados explícitamente por medio del uso del "
|
||||
"método <literal>Session.enableFilter()</literal>, que devuelve una instancia "
|
||||
"de la interface <literal>Filter</literal>. Usando el filtro simple definido "
|
||||
"arriba, esto se vería así:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:83
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", "
|
||||
"\"some-value\");]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", "
|
||||
"\"some-value\");]]>"
|
||||
"literal> y <literal>disableFilter(String filterName)</literal>. Por defecto, "
|
||||
"los filtros <emphasis>no</emphasis> están habilitados para una sesión dada. "
|
||||
"Los filtros deben ser habilitados explícitamente por medio del uso del "
|
||||
"método <literal>Session.enableFilter()</literal>, el cual retorna una "
|
||||
"instancia de la interfaz <literal>Filter</literal>. Si se utiliza el filtro "
|
||||
"simple definido anteriormente, esto se vería así:"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:85
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Methods on the org.hibernate.Filter interface do allow the method-chaining "
|
||||
"common to much of Hibernate."
|
||||
msgstr ""
|
||||
"Nota que los métodos en la interface org.hibernate.Filter permiten el "
|
||||
"encadenamiento de métodos común en gran parte de Hibernate."
|
||||
"Los métodos en la interfaz org.hibernate.Filter permiten el encadenamiento "
|
||||
"de métodos, lo cual es bastante común en gran parte de Hibernate."
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:89
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The following is a full example, using temporal data with an effective "
|
||||
"record date pattern:"
|
||||
msgstr ""
|
||||
"Un ejemplo completo, usando datos temporales con un patrón efectivo de "
|
||||
"fechas de registro:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:93
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<filter-def name=\"effectiveDate\">\n"
|
||||
" <filter-param name=\"asOfDate\" type=\"date\"/>\n"
|
||||
"</filter-def>\n"
|
||||
"\n"
|
||||
"<class name=\"Employee\" ...>\n"
|
||||
"...\n"
|
||||
" <many-to-one name=\"department\" column=\"dept_id\" class=\"Department\"/"
|
||||
">\n"
|
||||
" <property name=\"effectiveStartDate\" type=\"date\" column=\"eff_start_dt"
|
||||
"\"/>\n"
|
||||
" <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt\"/"
|
||||
">\n"
|
||||
"...\n"
|
||||
" <!--\n"
|
||||
" Note that this assumes non-terminal records have an eff_end_dt set "
|
||||
"to\n"
|
||||
" a max db date for simplicity-sake\n"
|
||||
" -->\n"
|
||||
" <filter name=\"effectiveDate\"\n"
|
||||
" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
|
||||
"</class>\n"
|
||||
"\n"
|
||||
"<class name=\"Department\" ...>\n"
|
||||
"...\n"
|
||||
" <set name=\"employees\" lazy=\"true\">\n"
|
||||
" <key column=\"dept_id\"/>\n"
|
||||
" <one-to-many class=\"Employee\"/>\n"
|
||||
" <filter name=\"effectiveDate\"\n"
|
||||
" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
|
||||
">\n"
|
||||
" </set>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<filter-def name=\"effectiveDate\">\n"
|
||||
" <filter-param name=\"asOfDate\" type=\"date\"/>\n"
|
||||
"</filter-def>\n"
|
||||
"\n"
|
||||
"<class name=\"Employee\" ...>\n"
|
||||
"...\n"
|
||||
" <many-to-one name=\"department\" column=\"dept_id\" class=\"Department\"/"
|
||||
">\n"
|
||||
" <property name=\"effectiveStartDate\" type=\"date\" column=\"eff_start_dt"
|
||||
"\"/>\n"
|
||||
" <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt\"/"
|
||||
">\n"
|
||||
"...\n"
|
||||
" <!--\n"
|
||||
" Note that this assumes non-terminal records have an eff_end_dt set "
|
||||
"to\n"
|
||||
" a max db date for simplicity-sake\n"
|
||||
" -->\n"
|
||||
" <filter name=\"effectiveDate\"\n"
|
||||
" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
|
||||
"</class>\n"
|
||||
"\n"
|
||||
"<class name=\"Department\" ...>\n"
|
||||
"...\n"
|
||||
" <set name=\"employees\" lazy=\"true\">\n"
|
||||
" <key column=\"dept_id\"/>\n"
|
||||
" <one-to-many class=\"Employee\"/>\n"
|
||||
" <filter name=\"effectiveDate\"\n"
|
||||
" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
|
||||
">\n"
|
||||
" </set>\n"
|
||||
"</class>]]>"
|
||||
"Este es un ejemplo completo, utilizando datos temporales con un patrón "
|
||||
"efectivo de fechas de registro: "
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:95
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"In order to ensure that you are provided with currently effective records, "
|
||||
"enable the filter on the session prior to retrieving employee data:"
|
||||
msgstr ""
|
||||
"Entonces, en orden de asegurar que siempre tendrás de vuelta registros "
|
||||
"actualmente efectivos, simplemente habilita el filtro en la sesión previo a "
|
||||
"recuperar los datos de empleados:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:100
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = ...;\n"
|
||||
"session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date"
|
||||
"());\n"
|
||||
"List results = session.createQuery(\"from Employee as e where e.salary > :"
|
||||
"targetSalary\")\n"
|
||||
" .setLong(\"targetSalary\", new Long(1000000))\n"
|
||||
" .list();\n"
|
||||
"]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = ...;\n"
|
||||
"session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date"
|
||||
"());\n"
|
||||
"List results = session.createQuery(\"from Employee as e where e.salary > :"
|
||||
"targetSalary\")\n"
|
||||
" .setLong(\"targetSalary\", new Long(1000000))\n"
|
||||
" .list();\n"
|
||||
"]]>"
|
||||
"Con el fin de asegurarse de que siempre recibirá los registros efectivos "
|
||||
"actualmente, habilite el filtro en la sesión antes de recuperar los datos de "
|
||||
"los empleados:"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:102
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Even though a salary constraint was mentioned explicitly on the results in "
|
||||
"the above HQL, because of the enabled filter, the query will return only "
|
||||
"currently active employees who have a salary greater than one million "
|
||||
"dollars."
|
||||
msgstr ""
|
||||
"En el HQL de arriba, aunque sólo hemos mencionado explícitamente una "
|
||||
"restricción de salario en los resultados, debido al filtro habilitado la "
|
||||
"consulta sólo devolverá empleados actualmente activos que tengan un salario "
|
||||
"mayor que un millón de dólares."
|
||||
"En el HQL anterior, aunque sólo mencionamos explícitamente una restricción "
|
||||
"de salario en los resultados, debido al filtro habilitado la consulta sólo "
|
||||
"retornará empleados actualmente activos que tengan un salario mayor a un "
|
||||
"millón de dólares."
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:108
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you want to use filters with outer joining, either through HQL or load "
|
||||
"fetching, be careful of the direction of the condition expression. It is "
|
||||
"safest to set this up for left outer joining. Place the parameter first "
|
||||
"followed by the column name(s) after the operator."
|
||||
msgstr ""
|
||||
"Nota: si planeas usar filtros con unión externa (outer joining) (bien a "
|
||||
"través de HQL, o bien de recuperación de carga) sé cuidadoso en la dirección "
|
||||
"de expresión de la condición. Lo más seguro es establecer esto para unión "
|
||||
"externa izquierda (left outer joining). En general, coloca el primer "
|
||||
"parámetro seguido del nombre(s) de columna(s) después del operador."
|
||||
"Si quiere utilizar filtros con unión externa, ya sea a través de HQL, o bien "
|
||||
"de recuperación de carga, tenga cuidado en la dirección de expresión de la "
|
||||
"condición. Lo más seguro es configurar esto para una unión externa "
|
||||
"izquierda. Coloque el parámetro primero seguido del nombre(s) de la(s) "
|
||||
"columna(s) después del operador."
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:115
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"After being defined, a filter might be attached to multiple entities and/or "
|
||||
|
@ -324,18 +181,13 @@ msgid ""
|
|||
"literal> allows you to definine a default condition, either as an attribute "
|
||||
"or CDATA:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:122
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</filter-"
|
||||
"def>\n"
|
||||
"<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
|
||||
msgstr ""
|
||||
"Después de definir un filtro, este se puede unir a múltiples entidades y/o "
|
||||
"colecciones cada una con su propia condición. Esto puede llegar a ser "
|
||||
"problemático cuando las condiciones son las mismas. Así que el usar "
|
||||
"<literal><filter-def/></literal> le permite definir una condición por "
|
||||
"defecto, ya sea como atributo o como CDATA:"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:124
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This default condition will be used whenever the filter is attached to "
|
||||
|
@ -343,9 +195,144 @@ msgid ""
|
|||
"condition as part of the attachment of the filter that overrides the default "
|
||||
"condition in that particular case."
|
||||
msgstr ""
|
||||
"Esta condición predeterminada se utilizará cuando se una el filtro a algo "
|
||||
"sin especificar una condición. Esto significa que usted le puede dar una "
|
||||
"condición especifica como parte del anexo del filtro, el cual substituye la "
|
||||
"condición por defecto en ese caso en particular."
|
||||
|
||||
#~ msgid "ROLES_OF_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
|
||||
#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
|
||||
#~ "</filter-def>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
|
||||
#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
|
||||
#~ "</filter-def>]]>"
|
||||
|
||||
#~ msgid "CREDIT_FOR_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<class name=\"myClass\" ...>\n"
|
||||
#~ " ...\n"
|
||||
#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
|
||||
#~ "MY_FILTERED_COLUMN\"/>\n"
|
||||
#~ "</class>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<class name=\"myClass\" ...>\n"
|
||||
#~ " ...\n"
|
||||
#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
|
||||
#~ "MY_FILTERED_COLUMN\"/>\n"
|
||||
#~ "</class>]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<set ...>\n"
|
||||
#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
|
||||
#~ "MY_FILTERED_COLUMN\"/>\n"
|
||||
#~ "</set>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<set ...>\n"
|
||||
#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
|
||||
#~ "MY_FILTERED_COLUMN\"/>\n"
|
||||
#~ "</set>]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
|
||||
#~ "\", \"some-value\");]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
|
||||
#~ "\", \"some-value\");]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<filter-def name=\"effectiveDate\">\n"
|
||||
#~ " <filter-param name=\"asOfDate\" type=\"date\"/>\n"
|
||||
#~ "</filter-def>\n"
|
||||
#~ "\n"
|
||||
#~ "<class name=\"Employee\" ...>\n"
|
||||
#~ "...\n"
|
||||
#~ " <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
|
||||
#~ "\"/>\n"
|
||||
#~ " <property name=\"effectiveStartDate\" type=\"date\" column="
|
||||
#~ "\"eff_start_dt\"/>\n"
|
||||
#~ " <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
|
||||
#~ "\"/>\n"
|
||||
#~ "...\n"
|
||||
#~ " <!--\n"
|
||||
#~ " Note that this assumes non-terminal records have an eff_end_dt "
|
||||
#~ "set to\n"
|
||||
#~ " a max db date for simplicity-sake\n"
|
||||
#~ " -->\n"
|
||||
#~ " <filter name=\"effectiveDate\"\n"
|
||||
#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
|
||||
#~ ">\n"
|
||||
#~ "</class>\n"
|
||||
#~ "\n"
|
||||
#~ "<class name=\"Department\" ...>\n"
|
||||
#~ "...\n"
|
||||
#~ " <set name=\"employees\" lazy=\"true\">\n"
|
||||
#~ " <key column=\"dept_id\"/>\n"
|
||||
#~ " <one-to-many class=\"Employee\"/>\n"
|
||||
#~ " <filter name=\"effectiveDate\"\n"
|
||||
#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt"
|
||||
#~ "\"/>\n"
|
||||
#~ " </set>\n"
|
||||
#~ "</class>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<filter-def name=\"effectiveDate\">\n"
|
||||
#~ " <filter-param name=\"asOfDate\" type=\"date\"/>\n"
|
||||
#~ "</filter-def>\n"
|
||||
#~ "\n"
|
||||
#~ "<class name=\"Employee\" ...>\n"
|
||||
#~ "...\n"
|
||||
#~ " <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
|
||||
#~ "\"/>\n"
|
||||
#~ " <property name=\"effectiveStartDate\" type=\"date\" column="
|
||||
#~ "\"eff_start_dt\"/>\n"
|
||||
#~ " <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
|
||||
#~ "\"/>\n"
|
||||
#~ "...\n"
|
||||
#~ " <!--\n"
|
||||
#~ " Note that this assumes non-terminal records have an eff_end_dt "
|
||||
#~ "set to\n"
|
||||
#~ " a max db date for simplicity-sake\n"
|
||||
#~ " -->\n"
|
||||
#~ " <filter name=\"effectiveDate\"\n"
|
||||
#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
|
||||
#~ ">\n"
|
||||
#~ "</class>\n"
|
||||
#~ "\n"
|
||||
#~ "<class name=\"Department\" ...>\n"
|
||||
#~ "...\n"
|
||||
#~ " <set name=\"employees\" lazy=\"true\">\n"
|
||||
#~ " <key column=\"dept_id\"/>\n"
|
||||
#~ " <one-to-many class=\"Employee\"/>\n"
|
||||
#~ " <filter name=\"effectiveDate\"\n"
|
||||
#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt"
|
||||
#~ "\"/>\n"
|
||||
#~ " </set>\n"
|
||||
#~ "</class>]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Session session = ...;\n"
|
||||
#~ "session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new "
|
||||
#~ "Date());\n"
|
||||
#~ "List results = session.createQuery(\"from Employee as e where e.salary > :"
|
||||
#~ "targetSalary\")\n"
|
||||
#~ " .setLong(\"targetSalary\", new Long(1000000))\n"
|
||||
#~ " .list();\n"
|
||||
#~ "]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[Session session = ...;\n"
|
||||
#~ "session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new "
|
||||
#~ "Date());\n"
|
||||
#~ "List results = session.createQuery(\"from Employee as e where e.salary > :"
|
||||
#~ "targetSalary\")\n"
|
||||
#~ " .setLong(\"targetSalary\", new Long(1000000))\n"
|
||||
#~ " .list();\n"
|
||||
#~ "]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
|
||||
#~ "filter-def>\n"
|
||||
#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
|
||||
#~ "filter-def>\n"
|
||||
#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,32 +1,39 @@
|
|||
# Language es-ES translations for Branch package.
|
||||
# Automatically generated, 2009.
|
||||
#
|
||||
# translation of portability.po to
|
||||
# Michael H. Smith <mhideo@redhat.com>, 2007.
|
||||
# Angela Garcia <agarcia@redhat.com>, 2009, 2010.
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Branch 3_3\n"
|
||||
"Project-Id-Version: portability\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-23 18:41+0000\n"
|
||||
"PO-Revision-Date: 2009-06-16 18:47+0000\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:15\n"
|
||||
"PO-Revision-Date: 2010-01-07 10:51+1000\n"
|
||||
"Last-Translator: Angela Garcia <agarcia@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:26
|
||||
#, no-c-format
|
||||
msgid "Database Portability Considerations"
|
||||
msgstr ""
|
||||
msgstr "Consideraciones de la portabilidad de la base de datos"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:29
|
||||
#, no-c-format
|
||||
msgid "Portability Basics"
|
||||
msgstr ""
|
||||
msgstr "Aspectos básicos de la portabilidad"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:31
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"One of the selling points of Hibernate (and really Object/Relational Mapping "
|
||||
|
@ -38,15 +45,22 @@ msgid ""
|
|||
"run against any number of databases without changes to your code, and "
|
||||
"ideally without any changes to the mapping metadata."
|
||||
msgstr ""
|
||||
"Uno de los aspectos que más vende de Hibernate (y realmente del mapeo objeto/"
|
||||
"relacional en sí) es la noción de portabilidad de la base de datos. Podría "
|
||||
"ser el caso de un administrador de sistemas migrando de una base de datos de "
|
||||
"un vendedor a otro, o podría ser un marco de trabajo o una aplicación "
|
||||
"desplegable consumiendo Hibernate para que apunte simultáneamente a "
|
||||
"múltiples productos de bases de datos. Sin importar el escenario exacto, la "
|
||||
"idea básica es que quiere que Hibernate le ayude a ejecutar frente a "
|
||||
"cualquier número de bases de datos sin cambiar el código e idealmente sin "
|
||||
"cambiar los metadatos de mapeo. "
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:42
|
||||
#, no-c-format
|
||||
msgid "Dialect"
|
||||
msgstr ""
|
||||
msgstr "Dialecto"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:44
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The first line of portability for Hibernate is the dialect, which is a "
|
||||
|
@ -58,15 +72,22 @@ msgid ""
|
|||
"your particular database is not among them, it is not terribly difficult to "
|
||||
"write your own."
|
||||
msgstr ""
|
||||
"La primera línea de portabilidad para Hibernate es el dialecto, el cual es "
|
||||
"una especialización del contrato <classname>org.hibernate.dialect.Dialect</"
|
||||
"classname>. Un dialecto encapsula todas las diferencias en la manera en que "
|
||||
"Hibernate debe comunicarse con una base de datos en particular para lograr "
|
||||
"alguna tarea como el obtener un valor de secuencia o el estructurar una "
|
||||
"petición SELECT. Hibernate reune un gran rango de dialectos para muchas de "
|
||||
"las bases de datos más populares. Si encuentra que su base de datos en "
|
||||
"particular no se encuentra entre estos, no es demasiado dificil es escribir "
|
||||
"el propio."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:55
|
||||
#, no-c-format
|
||||
msgid "Dialect resolution"
|
||||
msgstr ""
|
||||
msgstr "Resolución del dialecto"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:57
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Originally, Hibernate would always require that users specify which dialect "
|
||||
|
@ -75,9 +96,14 @@ msgid ""
|
|||
"their users to configure the Hibernate dialect or defining their own method "
|
||||
"of setting that value."
|
||||
msgstr ""
|
||||
"Originalmente, Hibernate siempre requería que los usuarios especificaran qué "
|
||||
"dialecto utilizar. En el caso de aquellos usuarios que buscaban apuntar a "
|
||||
"múltiples bases de datos de manera simultánea con su construcción eso "
|
||||
"representaba un problema. Generalmente esto requería que los usuarios "
|
||||
"configuraran el dialecto de Hibernate o que definieran su propio método para "
|
||||
"establecer ese valor. "
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:64
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.2, Hibernate introduced the notion of automatically "
|
||||
|
@ -87,17 +113,23 @@ msgid ""
|
|||
"that this resolution was limited to databases Hibernate know about ahead of "
|
||||
"time and was in no way configurable or overrideable."
|
||||
msgstr ""
|
||||
"Empezando con la versión 3.2, Hibernate introdujo la noción de detectar "
|
||||
"automáticamente el dialecto a utilizar con base en los <interfacename>java."
|
||||
"sql.DatabaseMetaData</interfacename> que se obtuvieron de una "
|
||||
"<interfacename>java.sql.Connection</interfacename> a esa base de datos. Esto "
|
||||
"era mucho mejor pero esta resolución estaba limitada a las bases de datos "
|
||||
"que Hibernate conoce por adelantado y de ninguna manera era configurable ni "
|
||||
"se podía sobreescribir."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:72
|
||||
#, no-c-format
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.3, Hibernate has a fare more powerful way to "
|
||||
"automatically determine which dialect to should be used by relying on a "
|
||||
"series of delegates which implement the <interfacename>org.hibernate.dialect."
|
||||
"resolver.DialectResolver</interfacename> which defines only a single method:"
|
||||
"<programlisting><![CDATA[public Dialect resolveDialect(DatabaseMetaData "
|
||||
"metaData) throws JDBCConnectionException]]></programlisting>. The basic "
|
||||
"<programlisting role=\"JAVA\">public Dialect resolveDialect(DatabaseMetaData "
|
||||
"metaData) throws JDBCConnectionException</programlisting>. The basic "
|
||||
"contract here is that if the resolver 'understands' the given database "
|
||||
"metadata then it returns the corresponding Dialect; if not it returns null "
|
||||
"and the process continues to the next resolver. The signature also "
|
||||
|
@ -108,9 +140,24 @@ msgid ""
|
|||
"All other exceptions result in a warning and continuing on to the next "
|
||||
"resolver."
|
||||
msgstr ""
|
||||
"Empezando por la versión 3.3, Hibernate cuenta con una manera más poderosa "
|
||||
"de determinar automáticamente cuál dialecto se debe utilizar dependiendo de "
|
||||
"una serie de delegados, los cuales implementan el <interfacename>org."
|
||||
"hibernate.dialect.resolver.DialectResolver</interfacename> el cual define "
|
||||
"solo un método único:<programlisting>public Dialect resolveDialect"
|
||||
"(DatabaseMetaData metaData) throws JDBCConnectionException</programlisting>. "
|
||||
"El contrato básico aquí es que si el resolvedor 'entiende' los metadatos de "
|
||||
"la base de datos dada entonces retorna el dialecto correspondiente; si no "
|
||||
"entonces retorna nulo y el proceso continua al siguiente resolvedor. La "
|
||||
"firma también identifica <exceptionname>org.hibernate.exception."
|
||||
"JDBCConnectionException</exceptionname> ya que posiblemente se presenta. Una "
|
||||
"JDBCConnectionException aquí se interpreta como un problema de conexión \"no "
|
||||
"transitorio\" (también conocido como no-recuperable) y se utiliza para "
|
||||
"indicar que se deben detener inmediatamente los intentos de resolución. "
|
||||
"Todas las otras excepciones resultan en una advertencia y continua al "
|
||||
"siguiente resolvedor. "
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:85
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The cool part about these resolvers is that users can also register their "
|
||||
|
@ -124,16 +171,25 @@ msgid ""
|
|||
"<constant>DIALECT_RESOLVERS</constant> constant on <classname>org.hibernate."
|
||||
"cfg.Environment</classname>)."
|
||||
msgstr ""
|
||||
"La parte divertida de estos resolvedores es que los usuarios también pueden "
|
||||
"registrar sus propios resolvedores personalizados, los cuales se procesarán "
|
||||
"antes de los incluídos en Hibernate. Esto puede llegar a ser útil en un "
|
||||
"número de situaciones diferentes: permite una fácil integración para la auto-"
|
||||
"detección de dialectos más allá de los que se envían junto con Hibernate; le "
|
||||
"permite especificar el uso de un dialecto personalizado cuando se reconoce "
|
||||
"una base de datos en particular; etc. Para registrar uno o más resolvedores, "
|
||||
"simplemente especifiquelos (separados por comas o espacios) usando la "
|
||||
"configuración 'hibernate.dialect_resolvers' (consulte la constante "
|
||||
"<constant>DIALECT_RESOLVERS</constant> en <classname>org.hibernate.cfg."
|
||||
"Environment</classname>)."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:98
|
||||
#, no-c-format
|
||||
msgid "Identifier generation"
|
||||
msgstr ""
|
||||
msgstr "Generación del identificador"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:100
|
||||
#, no-c-format
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"When considering portability between databases, another important decision "
|
||||
"is selecting the identifier generation stratagy you want to use. Originally "
|
||||
|
@ -151,38 +207,94 @@ msgid ""
|
|||
"reference entities within a persistence context it must then issue the "
|
||||
"insert immediately when the users requests the entitiy be associated with "
|
||||
"the session (like via save() e.g.) regardless of current transactional "
|
||||
"semantics. <note> <para> Hibernate was changed slightly once the implication "
|
||||
"of this was better understood so that the insert is delayed in cases where "
|
||||
"that is feasible. </para> </note> The underlying issue is that the actual "
|
||||
"semanctics of the application itself changes in these cases."
|
||||
"semantics."
|
||||
msgstr ""
|
||||
"Al considerar la portabilidad entre bases de datos, otra decisión importante "
|
||||
"es el seleccionar la estrategia de generación del identificador que quiere "
|
||||
"utilizar. Originalmente Hibernate brindaba el generador <emphasis>nativo</"
|
||||
"emphasis> para este propósito, el cual tenía el objetivo de seleccionar "
|
||||
"entre las estrategias <emphasis>sequence</emphasis>, <emphasis>identity</"
|
||||
"emphasis> o <emphasis>table</emphasis> dependiendo de la capacidad de la "
|
||||
"base de datos subyacente. Sin embargo, una de las implicaciones de este "
|
||||
"enfoque se presenta al tener como destino algunas bases de datos que "
|
||||
"soportan la generación de <emphasis>identidad</emphasis> y algunas no. La "
|
||||
"generación de <emphasis>identidad</emphasis> depende de la definición SQL de "
|
||||
"una columna IDENTITY (o auto-incremento) para administrar el valor del "
|
||||
"identificador; es lo que se conoce como una estrategia de generación post-"
|
||||
"insert ya que el insert de hecho debe tener lugar antes de saber el valor "
|
||||
"del identificador. Ya que Hibernate depende de este valor de identificador "
|
||||
"para referenciar de maner única a las entidades dentro de un contexto de "
|
||||
"persistencia entonces debe emitir el insert inmediatamente cuando los "
|
||||
"usuarios solicitan que la entidad se asocie con la sesión (por ejemplo, por "
|
||||
"medio de save()) sin importar la semántica transaccional actual. El problema "
|
||||
"subyacente es que la semántica de la aplicación misma cambia en estos casos."
|
||||
|
||||
#. Tag: para
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Hibernate was changed slightly once the implication of this was better "
|
||||
"understood so that the insert is delayed in cases where that is feasible."
|
||||
msgstr ""
|
||||
"Hibernate se ha mejorado de manera que el insert se retrasa en los casos en "
|
||||
"donde es posible. "
|
||||
|
||||
#. Tag: note
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The underlying issue is that the actual semanctics of the application itself "
|
||||
"changes in these cases."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:125
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.2.3, Hibernate comes with a set of <ulink url="
|
||||
"\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators "
|
||||
"targetting portability in a much different way. <note> <para> There are "
|
||||
"specifically 2 bundled <emphasis>enhanced</emphasis>generators: "
|
||||
"<itemizedlist> <listitem> <para> <classname>org.hibernate.id.enhanced."
|
||||
"SequenceStyleGenerator</classname> </para> </listitem> <listitem> <para> "
|
||||
"<classname>org.hibernate.id.enhanced.TableGenerator</classname> </para> </"
|
||||
"listitem> </itemizedlist> </para> </note> The idea behind these generators "
|
||||
"is to port the actual semantics of the identifer value generation to the "
|
||||
"different databases. For example, the <classname>org.hibernate.id.enhanced."
|
||||
"SequenceStyleGenerator</classname> mimics the behavior of a sequence on "
|
||||
"databases which do not support sequences by using a table."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:154
|
||||
#, no-c-format
|
||||
msgid "Database functions"
|
||||
"targetting portability in a much different way."
|
||||
msgstr ""
|
||||
"Desde la versión 3.2.3, Hibernate viene junto con un grupo de generadores "
|
||||
"identificadores <ulink url=\"http://in.relation.to/2082.lace\">mejorados</"
|
||||
"ulink> apuntando a la portabilidad de una manera muy diferente."
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
|
||||
msgstr ""
|
||||
"Hay especificamente 2 paquetes de generadores <emphasis>mejorados</emphasis>:"
|
||||
|
||||
#. Tag: para
|
||||
#, fuzzy, no-c-format
|
||||
msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
msgstr ""
|
||||
"<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
|
||||
#. Tag: para
|
||||
#, fuzzy, no-c-format
|
||||
msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
|
||||
#. Tag: note
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The idea behind these generators is to port the actual semantics of the "
|
||||
"identifer value generation to the different databases. For example, the "
|
||||
"<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> "
|
||||
"mimics the behavior of a sequence on databases which do not support "
|
||||
"sequences by using a table."
|
||||
msgstr ""
|
||||
"La idea detrás de estos generadores es el llevar la semántica de la "
|
||||
"generación del valor identificador a las diferentes bases de datos. Por "
|
||||
"ejemplo, el <classname>org.hibernate.id.enhanced.SequenceStyleGenerator</"
|
||||
"classname> asemeja el comportamiento de una secuencia en las bases de datos "
|
||||
"que no soportan secuencias usando una tabla."
|
||||
|
||||
#. Tag: title
|
||||
#, no-c-format
|
||||
msgid "Database functions"
|
||||
msgstr "Funciones de la base de datos"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:157
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is an area in Hibernate in need of improvement. In terms of portability "
|
||||
|
@ -191,7 +303,6 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:164
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"SQL functions can be referenced in many ways by users. However, not all "
|
||||
|
@ -200,9 +311,14 @@ msgid ""
|
|||
"knows how to render that particular function, perhaps even using a totally "
|
||||
"different physical function call."
|
||||
msgstr ""
|
||||
"Los usuarios pueden referenciar las funciones de SQL de muchas maneras. Sin "
|
||||
"embargo, no todas las bases de datos soportan el mismo grupo de funciones. "
|
||||
"Hibernate, proporciona una manera de mapear un nombre de una función "
|
||||
"<emphasis>lógica</emphasis> a un delegado, el cual sabe cómo entregar esa "
|
||||
"función en particular, tal vez incluso usando una llamada de función física "
|
||||
"totalmente diferente."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:170
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Technically this function registration is handled through the <classname>org."
|
||||
|
@ -211,24 +327,37 @@ msgid ""
|
|||
"having to provide a custom dialect. This specific behavior is not fully "
|
||||
"completed as of yet."
|
||||
msgstr ""
|
||||
"Técnicamente este registro de función se maneja por medio de la clase "
|
||||
"<classname>org.hibernate.dialect.function.SQLFunctionRegistry</classname>, "
|
||||
"la cual tiene el propósito de permitirle a los usuarios el proporcionar "
|
||||
"definiciones de funciones personalizadas sin tener que brindar un dialecto "
|
||||
"personalizado. Este comportamiento especifico todavía no está del todo "
|
||||
"completo."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:177
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"It is sort of implemented such that users can programatically register "
|
||||
"functions with the <classname>org.hibernate.cfg.Configuration</classname> "
|
||||
"and those functions will be recognized for HQL."
|
||||
msgstr ""
|
||||
"De cierta manera está implementado para que los usuarios puedan registrar "
|
||||
"programáticamente las funciones con la <classname>org.hibernate.cfg."
|
||||
"Configuration</classname> y aquellas funciones serán reconocidas por HQL."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:187
|
||||
#, no-c-format
|
||||
msgid "Type mappings"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:189
|
||||
#, no-c-format
|
||||
msgid "This section scheduled for completion at a later date..."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This is a new area in Hibernate and as such it is not as mature as the "
|
||||
#~ "overall Hibernate experience."
|
||||
#~ msgstr ""
|
||||
#~ "Esta es una nueva área en Hibernate y como tal no es tan madura como lo "
|
||||
#~ "es en general el resto de Hibernate. "
|
||||
|
|
|
@ -1,20 +1,35 @@
|
|||
#, fuzzy
|
||||
# translation of Preface.po to
|
||||
# Michael H. Smith <mhideo@redhat.com>, 2007.
|
||||
# Angela Garcia <agarcia@redhat.com>, 2009, 2010.
|
||||
# translation of preface.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Preface\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-16 18:47+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:15\n"
|
||||
"PO-Revision-Date: 2010-01-07 10:45+1000\n"
|
||||
"Last-Translator: Angela Garcia <agarcia@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: preface.xml:29
|
||||
#, no-c-format
|
||||
msgid "Preface"
|
||||
msgstr "Prefacio"
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:31
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Working with object-oriented software and a relational database can be "
|
||||
|
@ -24,31 +39,30 @@ msgid ""
|
|||
"representation from an object model to a relational data model with a SQL-"
|
||||
"based schema."
|
||||
msgstr ""
|
||||
"Trabajar con software orientado a objetos y una base de datos relacional "
|
||||
"puede ser incómodo y consumir tiempo en los entornos de empresa de "
|
||||
"hoy. Hibernate es una herramienta de mapeo objeto/relacional para entornos "
|
||||
"Java. El término mapeo objeto/relacional (MOR) hace referencia a la "
|
||||
"técnica de mapear una representación de datos desde un modelo "
|
||||
"de objetos a un modelo de datos relacional con un esquema basado en SQL."
|
||||
"El trabajar con software orientado a objetos y con una base de datos "
|
||||
"relacional puede llegar a ser engorroso y puede llegar a tomar bastante "
|
||||
"tiempo en los entornos empresariales de hoy en día. Hibernate es una "
|
||||
"herramienta de mapeo objeto/relacional para entornos Java. El término mapeo "
|
||||
"objeto/relacional (ORM) se refiere a la técnica de mapear una representación "
|
||||
"de datos desde un modelo de objeto a un modelo de datos relacionales con un "
|
||||
"esquema basado en SQL."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:39
|
||||
#, fuzzy, no-c-format
|
||||
#, 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. It can also significantly reduce development "
|
||||
"time otherwise spent with manual data handling in SQL and JDBC."
|
||||
msgstr ""
|
||||
"Hibernate no sólo se encarga de mapear de clases Java a tablas de "
|
||||
"base de datos (y de tipos de datos de Java a tipos de datos SQL), sino que "
|
||||
"también provee facilidades de consulta y recuperación de datos "
|
||||
"y puede reducir significativamente el tiempo de desarrollo que de otra forma "
|
||||
"se gasta en el manejo de los datos en SQL y JDBC."
|
||||
"Hibernate no sólamente se ocupa del mapeo desde las clases Java a las tablas "
|
||||
"de las bases de datos (y desde los tipos de datos de Java a los tipos de "
|
||||
"datos de SQL), sino que también facilita la consulta y recuperación de "
|
||||
"datos. Esto puede reducir de manera importante el tiempo de desarrollo que "
|
||||
"se tomaría con el manejo de datos de forma manual en SQL y JDBC."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:46
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate's goal is to relieve the developer from 95 percent of common data "
|
||||
"persistence related programming tasks. Hibernate may not be the best "
|
||||
|
@ -59,51 +73,49 @@ msgid ""
|
|||
"specific SQL code and will help with the common task of result set "
|
||||
"translation from a tabular representation to a graph of objects."
|
||||
msgstr ""
|
||||
"La meta de Hibernate es relevar al desarrollador del 95 por ciento de las "
|
||||
"tareas comunes relacionadas a la programación de la persistencia de "
|
||||
"los datos. Hibernate puede no ser la mejor solución para aplicaciones "
|
||||
"que usan solamente procedimientos almacenados para implementar la ló"
|
||||
"gica de negocio en la base de datos, es mas útil con modelos de "
|
||||
"dominio orientados a objetos y lógica de negocio en middle-tier "
|
||||
"basada en Java. Sin embargo, Hibernate ciertamente puede ayudarte a quitar o "
|
||||
"encapsular código SQL específico de vendedor y ayudará "
|
||||
"con la tarea común de traducción de resultados desde una "
|
||||
"representación tabular a un grafo de objetos."
|
||||
"La meta de Hibernate es aliviar el trabajo del desarrollador en 95% de la "
|
||||
"persistencia de datos comunes relacionados con tareas de programación. Es "
|
||||
"posible que Hibernate no sea la mejor solución para aquellas aplicaciones "
|
||||
"centralizadas en datos que sólamente utilizan los procedimientos almacenados "
|
||||
"para implementar la lógica empresarial en la base de datos, Hibernate es "
|
||||
"mucho más útil con modelos de dominio orientados a objetos y con lógica "
|
||||
"empresarial middle-tier con base en Java. Sin embargo, Hibernate ciertamente "
|
||||
"le puede ayudar a eliminar o a encapsular código SQL específico del vendedor "
|
||||
"y le ayudará con la tarea común de traducción del grupo de resultados desde "
|
||||
"una representación tabular a un grafo de objetos."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:56
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you are new to Hibernate and Object/Relational Mapping or even Java, "
|
||||
"please follow these steps:"
|
||||
msgstr ""
|
||||
"Si eres nuevo en Hibernate y lo del Mapeo Objeto/Relacional o incluso en "
|
||||
"Java, sigue por favor estos pasos:"
|
||||
"Si usted es nuevo en el tema de Hibernate y del Mapeo Objeto/Relacional o "
|
||||
"inclusive en Java por favor siga los siguientes pasos:"
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:63
|
||||
#, no-c-format
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Read <xref linkend=\"tutorial\"/> for a tutorial with step-by-step "
|
||||
"Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step "
|
||||
"instructions. The source code for the tutorial is included in the "
|
||||
"distribution in the <literal>doc/reference/tutorial/</literal> directory."
|
||||
msgstr ""
|
||||
"Lee <xref linkend=\"tutorial\"/> para un tutorial de 30 minutos, usando "
|
||||
"Tomcat."
|
||||
"Consulte el <xref linkend=\"tutorial\"/>, el cual es un tutorial con "
|
||||
"instrucciones paso por paso. El código fuente para el tutorial se encuentra "
|
||||
"incluido en la distribución en el directorio <literal>doc/reference/tutorial/"
|
||||
"</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:71
|
||||
#, no-c-format
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Read <xref linkend=\"architecture\"/> to understand the environments where "
|
||||
"Read <xref linkend=\"architecture\" /> to understand the environments where "
|
||||
"Hibernate can be used."
|
||||
msgstr ""
|
||||
"Lee <xref linkend=\"architecture\"/> para entender los entornos en los que "
|
||||
"puede ser usado Hibernate."
|
||||
"Consulte el <xref linkend=\"architecture\" /> para comprender los entornos "
|
||||
"en donde se puede utilizar Hibernate."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:77
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"View the <literal>eg/</literal> directory in the Hibernate distribution. It "
|
||||
"contains a simple standalone application. Copy your JDBC driver to the "
|
||||
|
@ -112,64 +124,59 @@ msgid ""
|
|||
"command prompt in the distribution directory, type <literal>ant eg</literal> "
|
||||
"(using Ant), or under Windows, type <literal>build eg</literal>."
|
||||
msgstr ""
|
||||
"Dale una mirada al directorio <literal>eg/</literal> en la distribució"
|
||||
"n de Hibernate, contiene una aplicación independiente simple. Copia "
|
||||
"tu driver JDBC al directorio <literal>lib/</literal> y edita <literal>etc/"
|
||||
"hibernate.properties</literal>, especificando los valores correctos para tu "
|
||||
"base de datos. Desde línea de comandos en el directorio de la "
|
||||
"distribución, tipea <literal>ant eg</literal> (usando Ant), o bajo "
|
||||
"Windows, tipea <literal>build eg</literal>."
|
||||
"Déle un vistazo al directorio <literal>eg/</literal> en la distribución de "
|
||||
"Hibernate. Este comprende una aplicación autónoma simple. Copie su "
|
||||
"compilador JDBC al directorio <literal>lib/</literal> y edite <literal>etc/"
|
||||
"hibernate.properties</literal>, especificando los valores correctos para su "
|
||||
"base de datos. Desde un intérprete de comandos en el directorio de la "
|
||||
"distribución, escriba <literal>ant eg</literal> (utilizando Ant), o bajo "
|
||||
"Windows, escriba <literal>build eg</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:88
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Use this reference documentation as your primary source of information. "
|
||||
"Consider reading <biblioref linkend=\"biblio-JPwH\"></biblioref> if you need "
|
||||
"more help with application design, or if you prefer a step-by-step tutorial. "
|
||||
"Also visit <ulink url=\"http://caveatemptor.hibernate.org\"></ulink> and "
|
||||
"download the example application from <biblioref linkend=\"biblio-JPwH\"></"
|
||||
"biblioref>."
|
||||
"Also visit <ulink url=\"http://caveatemptor.hibernate.org\" /> and download "
|
||||
"the example application from <biblioref linkend=\"biblio-JPwH\"></biblioref>."
|
||||
msgstr ""
|
||||
"Usa esta documentación de referencia como tu fuente de "
|
||||
"información primaria. Ten en consideración leer <emphasis>Java "
|
||||
"Persistence with Hibernate</emphasis> (http://www.manning.com/bauer2) si "
|
||||
"necesitas mas ayuda con el diseño de aplicaciones o si prefieres un "
|
||||
"tutorial paso a paso. Visita también http://caveatemptor.hibernate."
|
||||
"org y descarga la aplicación de ejemplo para Java Persistence with "
|
||||
"Hibernate."
|
||||
"Utilice esta documentación de referencia como su fuente principal de "
|
||||
"información. Considere el leer <emphasis>Java Persistence with Hibernate</"
|
||||
"emphasis> (http://www.manning.com/bauer2) si necesita más ayuda con el "
|
||||
"diseño de la aplicación o si prefiere un tutorial paso por paso. También "
|
||||
"visite http://caveatemptor.hibernate.org y descargue la aplicación "
|
||||
"deejemplo para la persistencia de Java con Hibernate."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:98
|
||||
#, no-c-format
|
||||
msgid "FAQs are answered on the Hibernate website."
|
||||
msgstr "Los FAQs son respondidos en el sitio web de Hibernate."
|
||||
msgstr ""
|
||||
"En el sitio web de Hibernate encontrará las respuestas a las preguntas más "
|
||||
"frecuentes."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:103
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Links to third party demos, examples, and tutorials are maintained on the "
|
||||
"Hibernate website."
|
||||
msgstr ""
|
||||
"En el sitio web de Hibernate hay enlaces a demos de terceros, ejemplos y "
|
||||
"tutoriales."
|
||||
"En el sitio web de Hibernate encontrará un enlace a la demostraciones de "
|
||||
"terceros, ejemplos y tutoriales."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:109
|
||||
#, 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 ""
|
||||
"El Area de Comunidad en el sitio web de Hibernate es una buena fuente de "
|
||||
"patrones de diseño y varias soluciones de integración (Tomcat, "
|
||||
"JBoss, Struts, EJB, etc.)."
|
||||
"El área de la comunidad en el sitio web de Hibernate es un buen recurso para "
|
||||
"encontrar patrones de diseño y varias soluciones de integración (Tomcat, "
|
||||
"JBoss AS, Struts, EJB, etc)."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:117
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you have questions, use the user forum linked on the Hibernate website. "
|
||||
"We also provide a JIRA issue tracking system for bug reports and feature "
|
||||
|
@ -177,15 +184,14 @@ msgid ""
|
|||
"developer mailing list. If you are interested in translating this "
|
||||
"documentation into your language, contact us on the developer mailing list."
|
||||
msgstr ""
|
||||
"Si tienes preguntas, usa el foro de usuarios enlazado en el sitio web de "
|
||||
"Hibernate. También proveemos un sistema de seguimiento JIRA para "
|
||||
"reportes de defectos y peticiones de nuevas características. Si estas "
|
||||
"interesado en el desarrollo de Hibernate, únete a la lista de correo "
|
||||
"de desarrolladores. Si estas interesado en traducir esta documentació"
|
||||
"n a tu lenguaje, contáctanos en la lista de correo de desarrolladores."
|
||||
"Si tiene alguna pregunta, diríjase al sitio web de Hibernate en donde "
|
||||
"encontrará un enlace al foro de usuarios. También proporcionamos un sistema "
|
||||
"de localización para reportes de errores JIRA y solicitud de funciones. Si "
|
||||
"está interesado en el desarrollo de Hibernate, únase a la lista de correo de "
|
||||
"los desarrolladores. Si le interesa traducir esta documentación a su propio "
|
||||
"idioma, contáctenos en la lista de correo de los desarrolladores."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:125
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Commercial development support, production support, and training for "
|
||||
|
@ -194,29 +200,8 @@ msgid ""
|
|||
"critical component of the JBoss Enterprise Middleware System (JEMS) suite of "
|
||||
"products."
|
||||
msgstr ""
|
||||
"A través de JBoss Inc. (see http://www.hibernate.org/"
|
||||
"SupportTraining/) hay disponibilidad de soporte comercial de desarrollo, "
|
||||
"soporte de producción y entrenamiento en Hibernate. Hibernate es un "
|
||||
"proyecto de la suite de productos de código abierto JBoss "
|
||||
"Professional."
|
||||
|
||||
#. Tag: title
|
||||
#: preface.xml:133
|
||||
#, no-c-format
|
||||
msgid "Feedback"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:134
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Use <ulink url=\"http://opensource.atlassian.com/projects/hibernate"
|
||||
"\">Hibernate JIRA</ulink> to report errors or request enhacements to this "
|
||||
"documentation."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "ROLES_OF_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
#~ msgid "CREDIT_FOR_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
"JBoss Inc. proporciona soporte para desarrollo comercial, soporte para "
|
||||
"producción y entrenamiento (vea http://www.hibernate.org/SupportTraining/). "
|
||||
"Hibernate es un proyecto de Código Abierto Profesional y es un componente "
|
||||
"crítico de la suite de productos de JBoss Enterprise Middleware System "
|
||||
"(JEMS)."
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,50 +1,61 @@
|
|||
#, fuzzy
|
||||
# translation of xml.po to
|
||||
# Michael H. Smith <mhideo@redhat.com>, 2007.
|
||||
# Angela Garcia <agarcia@redhat.com>, 2009, 2010.
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: xml\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-10 21:02+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-02-10T07:25:35\n"
|
||||
"PO-Revision-Date: 2010-01-05 07:52+1000\n"
|
||||
"Last-Translator: Angela Garcia <agarcia@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:29
|
||||
#, no-c-format
|
||||
msgid "XML Mapping"
|
||||
msgstr "Mapeo XML"
|
||||
|
||||
#. Tag: emphasis
|
||||
#: xml.xml:31
|
||||
#. Tag: para
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"XML Mapping is an experimental feature in Hibernate 3.0 and is currently "
|
||||
"under active development."
|
||||
"<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is "
|
||||
"currently under active development. </emphasis>"
|
||||
msgstr ""
|
||||
"Nota que esta es una funcionalidad experimental en Hibernate 3.0 y está bajo "
|
||||
"un desarrollo extremadamente activo."
|
||||
"<emphasis> El mapeo XML es una funcionalidad experimental en Hibernate 3.0 y "
|
||||
"se encuentra bajos desarrollo activo. </emphasis>"
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:37
|
||||
#, no-c-format
|
||||
msgid "Working with XML data"
|
||||
msgstr "Trabajando con datos XML"
|
||||
msgstr "Trabajo con datos XML"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:39
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate allows you to work with persistent XML data in much the same way "
|
||||
"you work with persistent POJOs. A parsed XML tree can be thought of as "
|
||||
"another way of representing the relational data at the object level, instead "
|
||||
"of POJOs."
|
||||
msgstr ""
|
||||
"Hibernate te permite trabajar con datos XML persistentes en casi la misma "
|
||||
"forma que trabajas con POJOs persistentes. Un árbol XML analizado (parsed) "
|
||||
"puede ser pensado como sólo otra forma de representar los datos relacionales "
|
||||
"a nivel de objetos, en vez de POJOs."
|
||||
"Hibernate le permite trabajar con datos XML persistentes en casi de la misma "
|
||||
"forma que trabaja con POJOs persistentes. Un árbol XML analizado "
|
||||
"semáticamente se puede considerar como otra manera de representar los datos "
|
||||
"relacionales a nivel de objetos, en lugar de POJOs."
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:46
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate supports dom4j as API for manipulating XML trees. You can write "
|
||||
|
@ -55,181 +66,75 @@ msgid ""
|
|||
"(), saveOrUpdate(), merge(), delete(), replicate()</literal> (merging is not "
|
||||
"yet supported)."
|
||||
msgstr ""
|
||||
"Hibernate soporta dom4j como API para manipular árboles XML. Puedes escribir "
|
||||
"consultas que traigan árboles dom4j de la base de datos y tener cualquier "
|
||||
"modificación que hagas al árbol sincronizada automáticamente a la base de "
|
||||
"datos. Puedes incluso tomar un documento XML, analizarlo usando dom4j, y "
|
||||
"escribirlo a la base de datos con cualquiera de las operaciones básicas de "
|
||||
"Hibernate: <literal>persist(), saveOrUpdate(), merge(), delete(), replicate()"
|
||||
"</literal> (la fusión no está aún soportada)."
|
||||
"Hibernate soporta dom4j como API para manipular árboles XML. Puede escribir "
|
||||
"consultas que recuperen árboles dom4j de la base de datos y puede tener "
|
||||
"cualquier modificación que realice al árbol sincronizada automáticamente con "
|
||||
"la base de datos. Incluso puede tomar un documento XML, analizarlo "
|
||||
"sintácticamente utilizando dom4j, y escribirlo a la base de datos con "
|
||||
"cualquiera de las operaciones básicas de Hibernate: <literal>persist(), "
|
||||
"saveOrUpdate(), merge(), delete(), replicate()</literal> (merge aún no está "
|
||||
"soportado)."
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:56
|
||||
#, 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 ""
|
||||
"Esta funcionalidad tiene muchas aplicaciones incluyendo la importación/"
|
||||
"exportación de datos, externalización de datos de entidad vía JMS o SOAP y "
|
||||
"reportes basados en XSLT."
|
||||
"exportación de datos, externalización de datos de entidad por medio de JMS o "
|
||||
"SOAP y reportes basados en XSLT."
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:61
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A single mapping can 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 can be used to map just the XML."
|
||||
msgstr ""
|
||||
"Un solo mapeo puede ser usado para mapear simultáneamente las propiedades de "
|
||||
"una clase y los nodos de un documento XML a la base de datos, o, si no hay "
|
||||
"ninguna clase a mapear, puede ser usado para mapear sólo el XML."
|
||||
"Un sólo mapeo se puede utilizar para mapear simultáneamente las propiedades "
|
||||
"de una clase y los nodos de un documento XML a la base de datos, o si no hay "
|
||||
"ninguna clase a mapear, se puede utilizar para mapear sólo el XML."
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:68
|
||||
#, no-c-format
|
||||
msgid "Specifying XML and class mapping together"
|
||||
msgstr "Especificando los mapeos de XML y de clase juntos"
|
||||
msgstr "Especificación de los mapeos de XML y de clase en conjunto"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:70
|
||||
#, no-c-format
|
||||
msgid "Here is an example of mapping a POJO and XML simultaneously:"
|
||||
msgstr "He aquí un ejemplo de mapear un POJO y XML simultáneamente:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:74
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"Account\" \n"
|
||||
" table=\"ACCOUNTS\" \n"
|
||||
" node=\"account\">\n"
|
||||
" \n"
|
||||
" <id name=\"accountId\" \n"
|
||||
" column=\"ACCOUNT_ID\" \n"
|
||||
" node=\"@id\"/>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"customer\" \n"
|
||||
" column=\"CUSTOMER_ID\" \n"
|
||||
" node=\"customer/@id\" \n"
|
||||
" embed-xml=\"false\"/>\n"
|
||||
" \n"
|
||||
" <property name=\"balance\" \n"
|
||||
" column=\"BALANCE\" \n"
|
||||
" node=\"balance\"/>\n"
|
||||
" \n"
|
||||
" ...\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"Account\" \n"
|
||||
" table=\"ACCOUNTS\" \n"
|
||||
" node=\"account\">\n"
|
||||
" \n"
|
||||
" <id name=\"accountId\" \n"
|
||||
" column=\"ACCOUNT_ID\" \n"
|
||||
" node=\"@id\"/>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"customer\" \n"
|
||||
" column=\"CUSTOMER_ID\" \n"
|
||||
" node=\"customer/@id\" \n"
|
||||
" embed-xml=\"false\"/>\n"
|
||||
" \n"
|
||||
" <property name=\"balance\" \n"
|
||||
" column=\"BALANCE\" \n"
|
||||
" node=\"balance\"/>\n"
|
||||
" \n"
|
||||
" ...\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr "Este es un ejemplo del mapeo de un POJO y XML de manera simultánea:"
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:78
|
||||
#, no-c-format
|
||||
msgid "Specifying only an XML mapping"
|
||||
msgstr "Especificando sólo un mapeo XML"
|
||||
msgstr "Especificación de sólo un mapeo XML"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:80
|
||||
#, no-c-format
|
||||
msgid "Here is an example where there is no POJO class:"
|
||||
msgstr "He aquí un ejemplo donde no hay ninguna clase POJO:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:84
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<class entity-name=\"Account\" \n"
|
||||
" table=\"ACCOUNTS\" \n"
|
||||
" node=\"account\">\n"
|
||||
" \n"
|
||||
" <id name=\"id\" \n"
|
||||
" column=\"ACCOUNT_ID\" \n"
|
||||
" node=\"@id\" \n"
|
||||
" type=\"string\"/>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"customerId\" \n"
|
||||
" column=\"CUSTOMER_ID\" \n"
|
||||
" node=\"customer/@id\" \n"
|
||||
" embed-xml=\"false\" \n"
|
||||
" entity-name=\"Customer\"/>\n"
|
||||
" \n"
|
||||
" <property name=\"balance\" \n"
|
||||
" column=\"BALANCE\" \n"
|
||||
" node=\"balance\" \n"
|
||||
" type=\"big_decimal\"/>\n"
|
||||
" \n"
|
||||
" ...\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class entity-name=\"Account\" \n"
|
||||
" table=\"ACCOUNTS\" \n"
|
||||
" node=\"account\">\n"
|
||||
" \n"
|
||||
" <id name=\"id\" \n"
|
||||
" column=\"ACCOUNT_ID\" \n"
|
||||
" node=\"@id\" \n"
|
||||
" type=\"string\"/>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"customerId\" \n"
|
||||
" column=\"CUSTOMER_ID\" \n"
|
||||
" node=\"customer/@id\" \n"
|
||||
" embed-xml=\"false\" \n"
|
||||
" entity-name=\"Customer\"/>\n"
|
||||
" \n"
|
||||
" <property name=\"balance\" \n"
|
||||
" column=\"BALANCE\" \n"
|
||||
" node=\"balance\" \n"
|
||||
" type=\"big_decimal\"/>\n"
|
||||
" \n"
|
||||
" ...\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr "Este es un ejemplo donde no hay ninguna clase POJO:"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:86
|
||||
#, fuzzy, no-c-format
|
||||
#, 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 or java <literal>Map</literal>s. The property "
|
||||
"names are purely logical constructs that can be referred to in HQL queries."
|
||||
msgstr ""
|
||||
"Este mapeo te permite acceder a los datos como un árbol dom4j, o como un "
|
||||
"grafo de pares nombre/valor de propiedad (<literal>Map</literal>s de Java). "
|
||||
"Los nombres de propiedades son construcciones puramente lógicas a las que se "
|
||||
"puede hacer referencia en consultas HQL."
|
||||
"Este mapeo le permite acceder a los datos como un árbol dom4j o como un "
|
||||
"grafo de parejas nombre/valor de propiedad o<literal>Map</literal>as de "
|
||||
"Java. Los nombres de propiedades son construcciones puramente lógicas a las "
|
||||
"que se puede hacer referencia en consultas HQL."
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:97
|
||||
#, no-c-format
|
||||
msgid "XML mapping metadata"
|
||||
msgstr "Mapeo de metadatos XML"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:99
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A range of Hibernate mapping elements accept the <literal>node</literal> "
|
||||
"attribute. This lets you specify the name of an XML attribute or element "
|
||||
|
@ -237,42 +142,38 @@ msgid ""
|
|||
"literal> attribute must be one of the following:"
|
||||
msgstr ""
|
||||
"Muchos elementos de mapeo de Hibernate aceptan el atributo <literal>node</"
|
||||
"literal>. Esto te permite espcificar el nombre de un atributo o elemento XML "
|
||||
"que contenga los datos de la propiedad o entidad. El formato del atributo "
|
||||
"<literal>node</literal> debe ser uno de los siguientes:"
|
||||
"literal>. Esto le permite especificar el nombre de un atributo o elemento "
|
||||
"XML que contenga los datos de la propiedad o entidad. El formato del "
|
||||
"atributo <literal>node</literal> tiene que ser uno de los siguientes: "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:108
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "<literal>\"element-name\"</literal>: map to the named XML element"
|
||||
msgstr "<literal>\"element-name\"</literal> - mapea al elemento XML mencionado"
|
||||
msgstr ""
|
||||
"<literal>\"element-name\"</literal> - mapea al elemento XML mencionado "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:111
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
|
||||
msgstr ""
|
||||
"<literal>\"@attribute-name\"</literal> - mapea al atributo XML mencionado"
|
||||
"<literal>\"@attribute-name\"</literal>: mapea al atributo XML mencionado"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:114
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "<literal>\".\"</literal>: map to the parent element"
|
||||
msgstr "<literal>\".\"</literal> - mapea al elemento padre"
|
||||
msgstr "<literal>\".\"</literal> - mapea al elemento padre "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:117
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<literal>\"element-name/@attribute-name\"</literal>: map to the named "
|
||||
"attribute of the named element"
|
||||
msgstr ""
|
||||
"<literal>\"element-name/@attribute-name\"</literal> - mapea al atributo "
|
||||
"mencionado del elemento mencionado"
|
||||
"<literal>\"element-name/@attribute-name\"</literal>: mapea al atributo "
|
||||
"mencionado del elemento nombrado"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:124
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For collections and single valued associations, there is an additional "
|
||||
"<literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</"
|
||||
|
@ -284,306 +185,65 @@ msgid ""
|
|||
msgstr ""
|
||||
"Para las colecciones y asociaciones monovaluadas, existe un atributo "
|
||||
"adicional <literal>embed-xml</literal>. Si <literal>embed-xml=\"true\"</"
|
||||
"literal>, que es el valor por defecto, el árbol XML para la entidad asociada "
|
||||
"(o colección de tipo de valor) será embebida directamente en el árbol XML "
|
||||
"para la entidad que posee la asociación. En otro caso, si <literal>embed-xml="
|
||||
"\"false\"</literal>, sólo el valor identificador referenciado aparecerá en "
|
||||
"el XML para asociaciones de punto único y para las colecciones simplemente "
|
||||
"no aparecerá en absoluto."
|
||||
"literal>, el cual es el valor por defecto, el árbol XML para la entidad "
|
||||
"asociada (o colección de tipo de valor) será incluida directamente en el "
|
||||
"árbol XML para la entidad que posee la asociación. De otra manera, si "
|
||||
"<literal>embed-xml=\"false\"</literal>, entonces sólo el valor identificador "
|
||||
"referenciado aparecerá en el XML para asociaciones de punto único y para las "
|
||||
"colecciones simplemente no aparecerá."
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:134
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Do not leave <literal>embed-xml=\"true\"</literal> for too many "
|
||||
"associations, since XML does not deal well with circularity."
|
||||
msgstr ""
|
||||
"¡Debes ser cuidadoso de no dejar <literal>embed-xml=\"true\"</literal> para "
|
||||
"demasiadas asociaciones, ya que XML no trata bien la circularidad!"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:139
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"Customer\" \n"
|
||||
" table=\"CUSTOMER\" \n"
|
||||
" node=\"customer\">\n"
|
||||
" \n"
|
||||
" <id name=\"id\" \n"
|
||||
" column=\"CUST_ID\" \n"
|
||||
" node=\"@id\"/>\n"
|
||||
" \n"
|
||||
" <map name=\"accounts\" \n"
|
||||
" node=\".\" \n"
|
||||
" embed-xml=\"true\">\n"
|
||||
" <key column=\"CUSTOMER_ID\" \n"
|
||||
" not-null=\"true\"/>\n"
|
||||
" <map-key column=\"SHORT_DESC\" \n"
|
||||
" node=\"@short-desc\" \n"
|
||||
" type=\"string\"/>\n"
|
||||
" <one-to-many entity-name=\"Account\"\n"
|
||||
" embed-xml=\"false\" \n"
|
||||
" node=\"account\"/>\n"
|
||||
" </map>\n"
|
||||
" \n"
|
||||
" <component name=\"name\" \n"
|
||||
" node=\"name\">\n"
|
||||
" <property name=\"firstName\" \n"
|
||||
" node=\"first-name\"/>\n"
|
||||
" <property name=\"initial\" \n"
|
||||
" node=\"initial\"/>\n"
|
||||
" <property name=\"lastName\" \n"
|
||||
" node=\"last-name\"/>\n"
|
||||
" </component>\n"
|
||||
" \n"
|
||||
" ...\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"Customer\" \n"
|
||||
" table=\"CUSTOMER\" \n"
|
||||
" node=\"customer\">\n"
|
||||
" \n"
|
||||
" <id name=\"id\" \n"
|
||||
" column=\"CUST_ID\" \n"
|
||||
" node=\"@id\"/>\n"
|
||||
" \n"
|
||||
" <map name=\"accounts\" \n"
|
||||
" node=\".\" \n"
|
||||
" embed-xml=\"true\">\n"
|
||||
" <key column=\"CUSTOMER_ID\" \n"
|
||||
" not-null=\"true\"/>\n"
|
||||
" <map-key column=\"SHORT_DESC\" \n"
|
||||
" node=\"@short-desc\" \n"
|
||||
" type=\"string\"/>\n"
|
||||
" <one-to-many entity-name=\"Account\"\n"
|
||||
" embed-xml=\"false\" \n"
|
||||
" node=\"account\"/>\n"
|
||||
" </map>\n"
|
||||
" \n"
|
||||
" <component name=\"name\" \n"
|
||||
" node=\"name\">\n"
|
||||
" <property name=\"firstName\" \n"
|
||||
" node=\"first-name\"/>\n"
|
||||
" <property name=\"initial\" \n"
|
||||
" node=\"initial\"/>\n"
|
||||
" <property name=\"lastName\" \n"
|
||||
" node=\"last-name\"/>\n"
|
||||
" </component>\n"
|
||||
" \n"
|
||||
" ...\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
"No deje <literal>embed-xml=\"true\"</literal> para demasiadas asociaciones "
|
||||
"ya que XML no se ocupa bien de la circularidad."
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:141
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"In this case, the collection of account ids is embedded, but not the actual "
|
||||
"account data. The following HQL query:"
|
||||
msgstr ""
|
||||
"en este caso, hemos decidido embeber la colección de ids de cuenta, pero no "
|
||||
"los datos reales de cuenta. La siguiente consulta HQL:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:146
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :"
|
||||
"lastName]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :"
|
||||
"lastName]]>"
|
||||
"En este caso, la colección de ids de cuenta están incluídos, pero no los "
|
||||
"datos reales de cuenta. La siguiente consulta HQL:"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:148
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "would return datasets such as this:"
|
||||
msgstr "devolvería conjuntos de datos como estos:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:152
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<customer id=\"123456789\">\n"
|
||||
" <account short-desc=\"Savings\">987632567</account>\n"
|
||||
" <account short-desc=\"Credit Card\">985612323</account>\n"
|
||||
" <name>\n"
|
||||
" <first-name>Gavin</first-name>\n"
|
||||
" <initial>A</initial>\n"
|
||||
" <last-name>King</last-name>\n"
|
||||
" </name>\n"
|
||||
" ...\n"
|
||||
"</customer>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<customer id=\"123456789\">\n"
|
||||
" <account short-desc=\"Savings\">987632567</account>\n"
|
||||
" <account short-desc=\"Credit Card\">985612323</account>\n"
|
||||
" <name>\n"
|
||||
" <first-name>Gavin</first-name>\n"
|
||||
" <initial>A</initial>\n"
|
||||
" <last-name>King</last-name>\n"
|
||||
" </name>\n"
|
||||
" ...\n"
|
||||
"</customer>]]>"
|
||||
msgstr "retornaría conjuntos de datos como este:"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:154
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-"
|
||||
"many></literal> mapping, the data might look more like this:"
|
||||
msgstr ""
|
||||
"Si estableces <literal>embed-xml=\"true\"</literal> en el mapeo <literal><"
|
||||
"one-to-many></literal>, los datos podrían verse así:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:159
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<customer id=\"123456789\">\n"
|
||||
" <account id=\"987632567\" short-desc=\"Savings\">\n"
|
||||
" <customer id=\"123456789\"/>\n"
|
||||
" <balance>100.29</balance>\n"
|
||||
" </account>\n"
|
||||
" <account id=\"985612323\" short-desc=\"Credit Card\">\n"
|
||||
" <customer id=\"123456789\"/>\n"
|
||||
" <balance>-2370.34</balance>\n"
|
||||
" </account>\n"
|
||||
" <name>\n"
|
||||
" <first-name>Gavin</first-name>\n"
|
||||
" <initial>A</initial>\n"
|
||||
" <last-name>King</last-name>\n"
|
||||
" </name>\n"
|
||||
" ...\n"
|
||||
"</customer>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<customer id=\"123456789\">\n"
|
||||
" <account id=\"987632567\" short-desc=\"Savings\">\n"
|
||||
" <customer id=\"123456789\"/>\n"
|
||||
" <balance>100.29</balance>\n"
|
||||
" </account>\n"
|
||||
" <account id=\"985612323\" short-desc=\"Credit Card\">\n"
|
||||
" <customer id=\"123456789\"/>\n"
|
||||
" <balance>-2370.34</balance>\n"
|
||||
" </account>\n"
|
||||
" <name>\n"
|
||||
" <first-name>Gavin</first-name>\n"
|
||||
" <initial>A</initial>\n"
|
||||
" <last-name>King</last-name>\n"
|
||||
" </name>\n"
|
||||
" ...\n"
|
||||
"</customer>]]>"
|
||||
"Si establece <literal>embed-xml=\"true\"</literal> en el mapeo <literal><"
|
||||
"one-to-many></literal>, puede que los datos se vean así:"
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:165
|
||||
#, no-c-format
|
||||
msgid "Manipulating XML data"
|
||||
msgstr "Manipulando datos XML"
|
||||
msgstr "Manipulación de datos XML"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:167
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can also re-read and update XML documents in the application. You can do "
|
||||
"this by obtaining a dom4j session:"
|
||||
msgstr ""
|
||||
"Vamos a releer y actualizar documentos XML en la aplicación. Hacemos esto "
|
||||
"Puede releer y actualizar documentos XML en la aplicación. Puede hacer esto "
|
||||
"obteniendo una sesión dom4j:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:172
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Document doc = ....;\n"
|
||||
" \n"
|
||||
"Session session = factory.openSession();\n"
|
||||
"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"List results = dom4jSession\n"
|
||||
" .createQuery(\"from Customer c left join fetch c.accounts where c."
|
||||
"lastName like :lastName\")\n"
|
||||
" .list();\n"
|
||||
"for ( int i=0; i<results.size(); i++ ) {\n"
|
||||
" //add the customer data to the XML document\n"
|
||||
" Element customer = (Element) results.get(i);\n"
|
||||
" doc.add(customer);\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Document doc = ....;\n"
|
||||
" \n"
|
||||
"Session session = factory.openSession();\n"
|
||||
"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"List results = dom4jSession\n"
|
||||
" .createQuery(\"from Customer c left join fetch c.accounts where c."
|
||||
"lastName like :lastName\")\n"
|
||||
" .list();\n"
|
||||
"for ( int i=0; i<results.size(); i++ ) {\n"
|
||||
" //add the customer data to the XML document\n"
|
||||
" Element customer = (Element) results.get(i);\n"
|
||||
" doc.add(customer);\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:174
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = factory.openSession();\n"
|
||||
"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
|
||||
"for ( int i=0; i<results.size(); i++ ) {\n"
|
||||
" Element customer = (Element) results.get(i);\n"
|
||||
" //change the customer name in the XML and database\n"
|
||||
" Element name = customer.element(\"name\");\n"
|
||||
" name.element(\"first-name\").setText(firstName);\n"
|
||||
" name.element(\"initial\").setText(initial);\n"
|
||||
" name.element(\"last-name\").setText(lastName);\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = factory.openSession();\n"
|
||||
"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
|
||||
"for ( int i=0; i<results.size(); i++ ) {\n"
|
||||
" Element customer = (Element) results.get(i);\n"
|
||||
" //change the customer name in the XML and database\n"
|
||||
" Element name = customer.element(\"name\");\n"
|
||||
" name.element(\"first-name\").setText(firstName);\n"
|
||||
" name.element(\"initial\").setText(initial);\n"
|
||||
" name.element(\"last-name\").setText(lastName);\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:176
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"When implementing XML-based data import/export, it is useful to combine this "
|
||||
"feature with Hibernate's <literal>replicate()</literal> operation."
|
||||
msgstr ""
|
||||
"Es extremadamente útil combinar esta funcionalidad con la operación "
|
||||
"<literal>replicate()</literal> de Hibernate para implementar la importación/"
|
||||
"exportación de datos basada en XML."
|
||||
|
||||
#~ msgid "ROLES_OF_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
#~ msgid "CREDIT_FOR_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
"Es útil combinar esta funcionalidad con la operación <literal>replicate()</"
|
||||
"literal> de Hibernate para implementar la importación/exportación de datos "
|
||||
"basada en XML."
|
||||
|
|
|
@ -2,35 +2,33 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-06-16 18:47+0000\n"
|
||||
"POT-Creation-Date: 2010-02-04T04:51:23\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: legal_notice.xml:28
|
||||
#, no-c-format
|
||||
msgid "Legal Notice"
|
||||
msgstr "Legal Notice"
|
||||
|
||||
#. Tag: address
|
||||
#: legal_notice.xml:30
|
||||
#, no-c-format
|
||||
#. Tag: para
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"<street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</"
|
||||
"state><postcode>27606-2072</postcode><country>USA</country> <phone>Phone: +1 "
|
||||
"919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 "
|
||||
"3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, "
|
||||
"<state>NC</state><postcode>27709</postcode><country>USA</country>"
|
||||
"<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, "
|
||||
"<state>NC</state><postcode>27606-2072</postcode><country>USA</country> "
|
||||
"<phone>Phone: +1 919 754 3700</phone> <phone>Phone: 888 733 4281</phone> "
|
||||
"<fax>Fax: +1 919 754 3701</fax> <pob>PO Box 13588</pob><city>Research "
|
||||
"Triangle Park</city>, <state>NC</state><postcode>27709</"
|
||||
"postcode><country>USA</country> </address>"
|
||||
msgstr ""
|
||||
"<street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</"
|
||||
"<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</"
|
||||
"state><postcode>27606-2072</postcode><country>USA</country> <phone>Phone: +1 "
|
||||
"919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 "
|
||||
"3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, "
|
||||
"<state>NC</state><postcode>27709</postcode><country>USA</country>"
|
||||
"<state>NC</state><postcode>27709</postcode><country>USA</country> </address>"
|
||||
|
||||
#. Tag: para
|
||||
#: legal_notice.xml:39
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. "
|
||||
|
@ -46,7 +44,6 @@ msgstr ""
|
|||
"Public License</ulink>, as published by the Free Software Foundation."
|
||||
|
||||
#. Tag: para
|
||||
#: legal_notice.xml:45
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red "
|
||||
|
@ -56,7 +53,6 @@ msgstr ""
|
|||
"Hat, Inc. in the United States and other countries."
|
||||
|
||||
#. Tag: para
|
||||
#: legal_notice.xml:48
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"All other trademarks referenced herein are the property of their respective "
|
||||
|
@ -66,13 +62,11 @@ msgstr ""
|
|||
"owners."
|
||||
|
||||
#. Tag: para
|
||||
#: legal_notice.xml:51
|
||||
#, no-c-format
|
||||
msgid "The GPG fingerprint of the security@redhat.com key is:"
|
||||
msgstr "The GPG fingerprint of the security@redhat.com key is:"
|
||||
|
||||
#. Tag: para
|
||||
#: legal_notice.xml:54
|
||||
#, no-c-format
|
||||
msgid "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
|
||||
msgstr "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
|
||||
|
|
|
@ -1,32 +1,30 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:14\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Language-Team: LANGUAGE <kde-i18n-doc@kde.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: application/x-xml2pot; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Tag: title
|
||||
#: Hibernate_Reference.xml:35
|
||||
#, no-c-format
|
||||
msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
|
||||
msgstr "HIBERNATE - Persistance relationnelle en Java standard"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: subtitle
|
||||
#: Hibernate_Reference.xml:36
|
||||
#, no-c-format
|
||||
msgid "Hibernate Reference Documentation"
|
||||
msgstr "Documentation de référence d'Hibernate"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: holder
|
||||
#: Hibernate_Reference.xml:51
|
||||
#. Tag: releaseinfo
|
||||
#, no-c-format
|
||||
msgid "©rightHolder;"
|
||||
msgstr "©rightHolder;"
|
||||
|
||||
#~ msgid "ROLES_OF_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
#~ msgid "CREDIT_FOR_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
msgid "&versionNumber;"
|
||||
msgstr ""
|
||||
|
|
|
@ -5,7 +5,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"POT-Creation-Date: 2010-02-04T04:51:21\n"
|
||||
"PO-Revision-Date: 2009-07-14 19:55+0000\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
|
@ -13,209 +13,137 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:27
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Gavin</firstname> <surname>King</surname>"
|
||||
msgid "Gavin"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:31
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
|
||||
msgid "Christian"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:35
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
|
||||
"surname>"
|
||||
msgid "Max"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:40
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<author><firstname>Emmanuel</firstname> <surname>Bernard</surname></author>"
|
||||
msgid "Emmanuel"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:44
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
|
||||
msgid "Steve"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:49
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>James</firstname> <surname>Cobb</surname>"
|
||||
msgid "James"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: shortaffil
|
||||
#: author_group.xml:53 author_group.xml:60
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "Graphic Design"
|
||||
msgid "Cheyenne"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:56
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
|
||||
msgid "Vincent"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:69
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<othername><![CDATA[Bernardo Antonio Buffa Colomé]]></othername> "
|
||||
"<email>kreimer@bbs.frc.utn.edu.ar</email>"
|
||||
msgid "Sebastien"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:79
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Vincent</firstname> <surname>Ricard</surname>"
|
||||
msgid "Michael"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:83
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Sebastien</firstname> <surname>Cesbron</surname>"
|
||||
msgid "Baptiste"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:87
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Michael</firstname> <surname>Courcy</surname>"
|
||||
msgid "Anthony"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:91
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Vincent</firstname> <surname>Giguère</surname>"
|
||||
msgid "Alvaro"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:95
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Baptiste</firstname> <surname>Mathus</surname>"
|
||||
msgid "Anderson"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:99
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<othercredit><firstname>Emmanuel</firstname> <surname>Bernard</surname></"
|
||||
"othercredit>"
|
||||
msgid "Daniel Vieira"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:103
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Anthony</firstname> <surname>Patricio</surname>"
|
||||
msgid "Francisco"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:113
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Alvaro</firstname> <surname>Netto</surname> "
|
||||
"<email>alvaronetto@cetip.com.br</email>"
|
||||
msgid "Gamarra"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:118
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Anderson</firstname> <surname>Braulio</surname> "
|
||||
"<email>andersonbraulio@gmail.com</email>"
|
||||
msgid "Luiz Carlos"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:123
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Daniel Vieira</firstname> <surname>Costa</surname> "
|
||||
"<email>danielvc@gmail.com</email>"
|
||||
msgid "Marcel"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:128
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Francisco</firstname> <surname>gamarra</surname> <email>francisco."
|
||||
"gamarra@gmail.com</email>"
|
||||
msgid "Paulo"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:133
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Gamarra</firstname> <email>mauricio.gamarra@gmail.com</email>"
|
||||
msgid "Pablo L."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:137
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Luiz Carlos</firstname> <surname>Rodrigues</surname> "
|
||||
"<email>luizcarlos_rodrigues@yahoo.com.br</email>"
|
||||
msgid "Renato"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:142
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Marcel</firstname> <surname>Castelo</surname> <email>marcel."
|
||||
"castelo@gmail.com</email>"
|
||||
msgid "Rogério"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:147
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Paulo</firstname> <surname>César</surname> <email>paulocol@gmail."
|
||||
"com</email>"
|
||||
msgid "Wanderson"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:152
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Pablo L.</firstname> <surname>de Miranda</surname> "
|
||||
"<email>pablolmiranda@gmail.com</email>"
|
||||
msgid "Cao"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:157
|
||||
#. Tag: orgname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Renato</firstname> <surname>Deggau</surname> <email>rdeggau@gmail."
|
||||
"com</email>"
|
||||
msgid "RedSaga"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:162
|
||||
#. Tag: contrib
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Rogério</firstname> <surname>Araújo</surname> "
|
||||
"<email>rgildoaraujo@yahoo.com.br</email>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:167
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Wanderson</firstname> <surname>Siqueira</surname> "
|
||||
"<email>wandersonxs@gmail.com</email>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:178
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Cao</firstname> <surname>Xiaogang</surname> <affiliation> "
|
||||
"<orgname>RedSaga</orgname> </affiliation> <contrib>Translation Lead</"
|
||||
"contrib> <email>caoxg@yahoo.com</email>"
|
||||
msgid "Translation Lead"
|
||||
msgstr ""
|
||||
|
|
|
@ -1,101 +1,95 @@
|
|||
# translation of architecture.po to French
|
||||
# Myriam Malga <mmalga@redhat.com>, 2007.
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007.
|
||||
# Corina Roe <croe@redhat.com>, 2009, 2010.
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: architecture\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2010-02-10T07:25:34\n"
|
||||
"PO-Revision-Date: 2010-01-04 16:40+1000\n"
|
||||
"Last-Translator: Corina Roe <croe@redhat.com>\n"
|
||||
"Language-Team: French <i18@redhat.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:30
|
||||
#, no-c-format
|
||||
msgid "Architecture"
|
||||
msgstr "Architecture"
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:33
|
||||
#, no-c-format
|
||||
msgid "Overview"
|
||||
msgstr "Généralités"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:35
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The diagram below provides a high-level view of the Hibernate architecture:"
|
||||
msgstr "Voici une vue (très) haut niveau de l'architecture d'Hibernate :"
|
||||
msgstr ""
|
||||
"Le diagramme ci-dessus procure une vue - (très) haut niveau - de "
|
||||
"l'architecture Hibernate :"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:48
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"We do not have the scope in this document to provide a more detailed view of "
|
||||
"all the runtime architectures available; Hibernate is flexible and supports "
|
||||
"several different approaches. We will, however, show the two extremes: "
|
||||
"\"minimal\" architecture and \"comprehensive\" architecture."
|
||||
msgstr ""
|
||||
"Nous aimerions décrire une vue plus détaillée de l'architecture. "
|
||||
"Malheureusement, Hibernate est flexible et supporte différentes approches. "
|
||||
"Nous allons en montrer les deux extrêmes. L'architecture légère laisse "
|
||||
"l'application fournir ses propres connexions JDBC et gérer ses propres "
|
||||
"transactions. Cette approche utilise le minimum des APIs Hibernate :"
|
||||
"Nous aimerions décrire une vue plus détaillée de l'architecture. Hibernate "
|
||||
"est flexible et prend en charge différentes approches. Nous allons en "
|
||||
"montrer les deux extrêmes : l'architecture \"légère\" et l'architecture "
|
||||
"\"complète\"."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:54
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This next diagram illustrates how Hibernate utilizes database and "
|
||||
"configuration data to provide persistence services, and persistent objects, "
|
||||
"to the application."
|
||||
msgstr ""
|
||||
"Ce diagramme montre Hibernate utilisant une base de données et des données "
|
||||
"de configuration pour fournir un service de persistance (et des objets "
|
||||
"persistants) à l'application."
|
||||
"Ce diagramme montre Hibernate utilisant la base de données et des données de "
|
||||
"configuration pour fournir un service de persistance, et des objets "
|
||||
"persistants, à l'application."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:59
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The \"minimal\" 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 ""
|
||||
"Nous aimerions décrire une vue plus détaillée de l'architecture. "
|
||||
"Malheureusement, Hibernate est flexible et supporte différentes approches. "
|
||||
"Nous allons en montrer les deux extrêmes. L'architecture légère laisse "
|
||||
"l'application fournir ses propres connexions JDBC et gérer ses propres "
|
||||
"transactions. Cette approche utilise le minimum des APIs Hibernate :"
|
||||
"L'architecture \"légère\" permet à l'application de fournir ses propres "
|
||||
"connexions JDBC et de gérer ses propres transactions. Cette approche utilise "
|
||||
"un sous-ensemble minimum des API Hibernate :"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:74
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The \"comprehensive\" architecture abstracts the application away from the "
|
||||
"underlying JDBC/JTA APIs and allows Hibernate to manage the details."
|
||||
msgstr ""
|
||||
"L'architecture la plus complète abstrait l'application des APIs JDBC/JTA "
|
||||
"sous-jacentes et laisse Hibernate s'occuper des détails."
|
||||
"L'architecture \"complète\" abstrait l'application des API JDBC/JTA sous-"
|
||||
"jacentes et permet à Hibernate de s'occuper des détails."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:88
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Here are some definitions of the objects depicted in the diagrams:"
|
||||
msgstr ""
|
||||
"Voici quelques définitions des objets des diagrammes : <placeholder-1/>"
|
||||
msgstr "Voici quelques définitions des objets dans les diagrammes :"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:93
|
||||
#, no-c-format
|
||||
msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
|
||||
msgstr "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:95
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A threadsafe, immutable cache of compiled mappings for a single database. A "
|
||||
"factory for <literal>Session</literal> and a client of "
|
||||
|
@ -103,22 +97,20 @@ msgid ""
|
|||
"hold an optional (second-level) cache of data that is reusable between "
|
||||
"transactions at a process, or cluster, level."
|
||||
msgstr ""
|
||||
"Un cache threadsafe (immuable) des mappings vers une (et une seule) base de "
|
||||
"données. Une factory (fabrique) de <literal>Session</literal> et un client "
|
||||
"de <literal>ConnectionProvider</literal>. Peut contenir un cache optionnel "
|
||||
"de données (de second niveau) qui est réutilisable entre les différentes "
|
||||
"transactions que cela soit au sein du même processus (JVLM) ou par plusieurs "
|
||||
"nœuds d'un cluster."
|
||||
"Un cache threadsafe (immuable) de mappages compilés pour une base de "
|
||||
"données. En tant que fabrique de <literal>Session</literal> et que client du "
|
||||
"<literal>ConnectionProvider</literal>, <literal>SessionFactory</literal>peut "
|
||||
"contenir un cache optionnel de données (de second niveau), réutilisable "
|
||||
"entre les différentes transactions, que cela soit au sein du même processus "
|
||||
"ou au niveau d'un cluster."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:105
|
||||
#, no-c-format
|
||||
msgid "Session (<literal>org.hibernate.Session</literal>)"
|
||||
msgstr "Session (<literal>org.hibernate.Session</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:107
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A single-threaded, short-lived object representing a conversation between "
|
||||
"the application and the persistent store. It wraps a JDBC connection and is "
|
||||
|
@ -128,20 +120,18 @@ msgid ""
|
|||
msgstr ""
|
||||
"Un objet mono-threadé, à durée de vie courte, qui représente une "
|
||||
"conversation entre l'application et l'entrepôt de persistance. Encapsule une "
|
||||
"connexion JDBC. Factory (fabrique) des objets <literal>Transaction</"
|
||||
"literal>. Contient un cache (de premier niveau) des objets persistants, ce "
|
||||
"cache est obligatoire. Il est utilisé lors de la navigation dans le graphe "
|
||||
"d'objets ou lors de la récupération d'objets par leur identifiant."
|
||||
"connexion JDBC. Fabrique des objets <literal>Transaction</literal>. La "
|
||||
"<literal>Session</literal> contient un cache (de premier niveau) des objets "
|
||||
"persistants, qui sont utilisés lors de la navigation dans le graphe d'objets "
|
||||
"ou lors de la récupération d'objets par leur identifiant."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:117
|
||||
#, no-c-format
|
||||
msgid "Persistent objects and collections"
|
||||
msgstr "Objets et Collections persistants"
|
||||
msgstr "Objets et collections persistants"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:119
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Short-lived, single threaded objects containing persistent state and "
|
||||
"business function. These can be ordinary JavaBeans/POJOs. They are "
|
||||
|
@ -150,23 +140,20 @@ msgid ""
|
|||
"in any application layer (for example, directly as data transfer objects to "
|
||||
"and from presentation)."
|
||||
msgstr ""
|
||||
"Objets mono-threadés à vie courte contenant l'état de persistance et la "
|
||||
"fonction métier. Ceux-ci sont en général les objets de type JavaBean (ou "
|
||||
"POJOs) ; la seule particularité est qu'ils sont associés avec une (et une "
|
||||
"Objets mono-threadés à vie courte, contenant état persistant et fonction "
|
||||
"commerciale. Ceux-ci sont en général des objets ordinaires de type JavaBean "
|
||||
"(ou POJO); la seule particularité est qu'ils sont associés avec une (et une "
|
||||
"seule) <literal>Session</literal>. Dès que la <literal>Session</literal> est "
|
||||
"fermée, ils seront détachés et libres d'être utilisés par n'importe laquelle "
|
||||
"des couches de l'application (ie. de et vers la présentation en tant que "
|
||||
"Data Transfer Objects - DTO : objet de transfert de données)."
|
||||
"fermée, ils sont détachés et libres d'être utilisés par n'importe quelle "
|
||||
"couche de l'application (par ex. de et vers la présentation)."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:129
|
||||
#, no-c-format
|
||||
msgid "Transient and detached objects and collections"
|
||||
msgstr "Objets et collections transients"
|
||||
msgstr "Objets et collections éphémères (transient) et détachés"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:131
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Instances of persistent classes that are not currently associated with a "
|
||||
"<literal>Session</literal>. They may have been instantiated by the "
|
||||
|
@ -175,18 +162,16 @@ msgid ""
|
|||
msgstr ""
|
||||
"Instances de classes persistantes qui ne sont actuellement pas associées à "
|
||||
"une <literal>Session</literal>. Elles ont pu être instanciées par "
|
||||
"l'application et ne pas avoir (encore) été persistées ou elle ont pu être "
|
||||
"l'application et ne pas avoir (encore) été persistées, ou elle ont pu être "
|
||||
"instanciées par une <literal>Session</literal> fermée."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:140
|
||||
#, no-c-format
|
||||
msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
|
||||
msgstr "Transaction (<literal>org.hibernate.Transaction</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:142
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"(Optional) A single-threaded, short-lived object used by the application to "
|
||||
"specify atomic units of work. It abstracts the application from the "
|
||||
|
@ -197,14 +182,13 @@ msgid ""
|
|||
msgstr ""
|
||||
"(Optionnel) Un objet mono-threadé à vie courte utilisé par l'application "
|
||||
"pour définir une unité de travail atomique. Abstrait l'application des "
|
||||
"transactions sous-jacentes qu'elles soient JDBC, JTA ou CORBA. Une "
|
||||
"transactions sous-jacentes, qu'elles soient JDBC, JTA ou CORBA. Une "
|
||||
"<literal>Session</literal> peut fournir plusieurs <literal>Transaction</"
|
||||
"literal>s dans certains cas. Toutefois, la délimitation des transactions, "
|
||||
"via l'API d'Hibernate ou par la <literal>Transaction</literal> sous-jacente, "
|
||||
"n'est jamais optionnelle!"
|
||||
"n'est jamais optionnelle. "
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:153
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
|
||||
|
@ -214,8 +198,7 @@ msgstr ""
|
|||
"literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:155
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"(Optional) A factory for, and pool of, JDBC connections. It abstracts the "
|
||||
"application from underlying <literal>Datasource</literal> or "
|
||||
|
@ -225,10 +208,9 @@ msgstr ""
|
|||
"(Optionnel) Une fabrique de (pool de) connexions JDBC. Abstrait "
|
||||
"l'application de la <literal>Datasource</literal> ou du "
|
||||
"<literal>DriverManager</literal> sous-jacent. Non exposé à l'application, "
|
||||
"mais peut être étendu/implémenté par le développeur."
|
||||
"mais peut être étendu/implémenté par le développeur. "
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:163
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
|
||||
|
@ -236,25 +218,23 @@ msgstr ""
|
|||
"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:165
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"(Optional) A factory for <literal>Transaction</literal> instances. It is not "
|
||||
"exposed to the application, but it can be extended and/or implemented by the "
|
||||
"developer."
|
||||
msgstr ""
|
||||
"(Optionnel) Une fabrique d'instances de <literal>Transaction</literal>. Non "
|
||||
"exposé à l'application, mais peut être étendu/implémenté par le développeur."
|
||||
"exposée à l'application, mais peut être étendue/implémentée par le "
|
||||
"développeur. "
|
||||
|
||||
#. Tag: emphasis
|
||||
#: architecture.xml:172
|
||||
#, no-c-format
|
||||
msgid "Extension Interfaces"
|
||||
msgstr "Interfaces d'extension"
|
||||
#. Tag: term
|
||||
#, fuzzy, no-c-format
|
||||
msgid "<emphasis>Extension Interfaces</emphasis>"
|
||||
msgstr "<emphasis>Interfaces d'extension</emphasis> "
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:174
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate offers a range of optional extension interfaces you can implement "
|
||||
"to customize the behavior of your persistence layer. See the API "
|
||||
|
@ -263,31 +243,28 @@ msgstr ""
|
|||
"Hibernate fournit de nombreuses interfaces d'extensions optionnelles que "
|
||||
"vous pouvez implémenter pour personnaliser le comportement de votre couche "
|
||||
"de persistance. Reportez vous à la documentation de l'API pour plus de "
|
||||
"détails."
|
||||
"détails. "
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:183
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Given a \"minimal\" architecture, the application bypasses the "
|
||||
"<literal>Transaction</literal>/<literal>TransactionFactory</literal> and/or "
|
||||
"<literal>ConnectionProvider</literal> APIs to communicate with JTA or JDBC "
|
||||
"directly."
|
||||
msgstr ""
|
||||
"Dans une architecture légère, l'application n'aura pas à utiliser les APIs "
|
||||
"Dans une architecture légère, l'application n'aura pas à utiliser les API "
|
||||
"<literal>Transaction</literal>/<literal>TransactionFactory</literal> et/ou "
|
||||
"n'utilisera pas les APIs <literal>ConnectionProvider</literal> pour utiliser "
|
||||
"JTA ou JDBC."
|
||||
"n'utilisera pas les API <literal>ConnectionProvider</literal> pour utiliser "
|
||||
"directement JTA ou JDBC. "
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:191
|
||||
#, no-c-format
|
||||
msgid "Instance states"
|
||||
msgstr "Etats des instances"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:192
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"An instance of a persistent class can be in one of three different states. "
|
||||
"These states are defined in relation to a <emphasis>persistence context</"
|
||||
|
@ -296,35 +273,31 @@ msgid ""
|
|||
msgstr ""
|
||||
"Une instance d'une classe persistante peut être dans l'un des trois états "
|
||||
"suivants, définis par rapport à un <emphasis>contexte de persistance</"
|
||||
"emphasis>. L'objet <literal>Session</literal> d'hibernate correspond à ce "
|
||||
"concept de contexte de persistance :"
|
||||
"emphasis>. L'objet <literal>Session</literal> Hibernate correspond à ce "
|
||||
"contexte de persistance. Les trois états distincts sont:"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:200
|
||||
#, no-c-format
|
||||
msgid "transient"
|
||||
msgstr "passager (transient)"
|
||||
msgstr "éphémère (transient)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:202
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The instance is not associated with any persistence context. It has no "
|
||||
"persistent identity or primary key value."
|
||||
msgstr ""
|
||||
"L'instance n'est pas et n'a jamais été associée à un contexte de "
|
||||
"persistance. Elle ne possède pas d'identité persistante (valeur de clé "
|
||||
"primaire)"
|
||||
"primaire)."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:210
|
||||
#, no-c-format
|
||||
msgid "persistent"
|
||||
msgstr "persistant"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:212
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The instance is currently associated with a persistence context. It has a "
|
||||
"persistent identity (primary key value) and can have a corresponding row in "
|
||||
|
@ -332,22 +305,20 @@ msgid ""
|
|||
"<emphasis>guarantees</emphasis> that persistent identity is equivalent to "
|
||||
"Java identity in relation to the in-memory location of the object."
|
||||
msgstr ""
|
||||
"L'instance est associée au contexte de persistance. Elle possède une "
|
||||
"identité persistante (valeur de clé primaire) et, peut-être, un "
|
||||
"enregistrement correspondant dans la base. Pour un contexte de persistance "
|
||||
"particulier, Hibernate <emphasis>garantit</emphasis> que l'identité "
|
||||
"persistante est équivalente à l'identité Java (emplacement mémoire de "
|
||||
"l'objet)"
|
||||
"L'instance est associée à un contexte de persistance. Elle possède une "
|
||||
"identité persistante (valeur de clé primaire) et, peut-être un "
|
||||
"enregistrement correspondant dans la base de données. Pour un contexte de "
|
||||
"persistance particulier, Hibernate <emphasis>garantit</emphasis> que "
|
||||
"l'identité persistante soit équivalente à l'identité Java (emplacement "
|
||||
"mémoire de l'objet). "
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:224
|
||||
#, no-c-format
|
||||
msgid "detached"
|
||||
msgstr "détaché"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:226
|
||||
#, fuzzy, no-c-format
|
||||
#, 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 "
|
||||
|
@ -358,18 +329,16 @@ msgstr ""
|
|||
"L'instance a été associée au contexte de persistance mais ce contexte a été "
|
||||
"fermé, ou l'instance a été sérialisée vers un autre processus. Elle possède "
|
||||
"une identité persistante et peut-être un enregistrement correspondant dans "
|
||||
"la base. Pour des instances détachées, Hibernate ne donne aucune garantie "
|
||||
"sur la relation entre l'identité persistante et l'identité Java."
|
||||
"la base de données. Pour des instances détachées, Hibernate ne donne aucune "
|
||||
"garantie sur la relation entre l'identité persistante et l'identité Java. "
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:241
|
||||
#, no-c-format
|
||||
msgid "JMX Integration"
|
||||
msgstr "Intégration JMX"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:243
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"JMX is the J2EE standard for the management of Java components. Hibernate "
|
||||
"can be managed via a JMX standard service. AN MBean implementation is "
|
||||
|
@ -379,24 +348,22 @@ msgstr ""
|
|||
"JMX est le standard J2EE de gestion des composants Java. Hibernate peut être "
|
||||
"géré via un service JMX standard. Nous fournissons une implémentation d'un "
|
||||
"MBean dans la distribution : <literal>org.hibernate.jmx.HibernateService</"
|
||||
"literal>."
|
||||
"literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:249
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For an example of how to deploy Hibernate as a JMX service on the JBoss "
|
||||
"Application Server, please see the JBoss User Guide. JBoss AS also provides "
|
||||
"these benefits if you deploy using JMX:"
|
||||
msgstr ""
|
||||
"Pour avoir un exemple sur la manière de déployer Hibernate en tant que "
|
||||
"service JMX dans le serveur d'application JBoss Application Server, référez "
|
||||
"vous au guide utilisateur JBoss (JBoss User Guide). Si vous déployez "
|
||||
"Hibernate via JMX sur JBoss AS, vous aurez également les bénéfices suivants :"
|
||||
"Pour un exemple sur la manière de déployer Hibernate en tant que service JMX "
|
||||
"dans le serveur d'application JBoss Application Server, référez vous au "
|
||||
"guide de l'utilisateur JBoss (JBoss User Guide). Si vous déployez Hibernate "
|
||||
"via JMX sur JBoss AS, vous aurez également les avantages suivants : "
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:257
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<emphasis>Session Management</emphasis>: the Hibernate <literal>Session</"
|
||||
"literal>'s life cycle can be automatically bound to the scope of a JTA "
|
||||
|
@ -408,20 +375,19 @@ msgid ""
|
|||
"the <literal>HibernateContext</literal> to access a <literal>Session</"
|
||||
"literal>."
|
||||
msgstr ""
|
||||
"<emphasis>Gestion de la session :</emphasis> Le cycle de vie de la "
|
||||
"<literal>Session</literal> Hibernate peut être automatiquement limitée à la "
|
||||
"<emphasis>Gestion de la session</emphasis> : le cycle de vie de la "
|
||||
"<literal>Session</literal> Hibernate peut être automatiquement liée à la "
|
||||
"portée d'une transaction JTA. Cela signifie que vous n'avez plus besoin "
|
||||
"d'ouvrir et de fermer la <literal>Session</literal> manuellement, cela "
|
||||
"devient le travail de l'intercepteur EJB de JBoss. Vous n'avez pas non plus "
|
||||
"à vous occuper des démarcations des transactions dans votre code (sauf si "
|
||||
"vous voulez écrire une couche de persistance qui soit portable, dans ce cas "
|
||||
"vous pouvez utiliser l'API optionnelle <literal>Transaction</literal> "
|
||||
"d'Hibernate). Vous appelez l'<literal>HibernateContext</literal> pour "
|
||||
"accéder à la <literal>Session</literal>."
|
||||
"vous pouvez utiliser l'API optionnelle <literal>Transaction</literal> de "
|
||||
"Hibernate). Vous appelez le <literal>HibernateContext</literal> pour accéder "
|
||||
"à la <literal>Session</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:269
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<emphasis>HAR deployment</emphasis>: the Hibernate JMX service is deployed "
|
||||
"using a JBoss service deployment descriptor in an EAR and/or SAR file, as it "
|
||||
|
@ -431,17 +397,16 @@ msgid ""
|
|||
"deployment, JBoss will automatically detect all mapping files in your HAR "
|
||||
"file."
|
||||
msgstr ""
|
||||
"<emphasis>Déploiement HAR :</emphasis> Habituellement vous déployez le "
|
||||
"<emphasis>Déploiement HAR :</emphasis>: habituellement vous déployez le "
|
||||
"service JMX Hibernate en utilisant le descripteur de déploiement de JBoss "
|
||||
"(dans un fichier EAR et/ou un SAR), il supporte toutes les options de "
|
||||
"dans un fichier EAR et/ou un SAR, car il supporte toutes les options de "
|
||||
"configuration usuelles d'une <literal>SessionFactory</literal> Hibernate. "
|
||||
"Cependant, vous devez toujours nommer tous vos fichiers de mapping dans le "
|
||||
"Cependant, vous devez toujours nommer tous vos fichiers de mappage dans le "
|
||||
"descripteur de déploiement. Si vous décidez d'utiliser le déploiement "
|
||||
"optionnel sous forme de HAR, JBoss détectera automatiquement tous vos "
|
||||
"fichiers de mapping dans votre fichier HAR."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:280
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Consult the JBoss AS user guide for more information about these options."
|
||||
|
@ -450,26 +415,23 @@ msgstr ""
|
|||
"ces options."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:284
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Another feature available as a JMX service is runtime Hibernate statistics. "
|
||||
"See <xref linkend=\"configuration-optional-statistics\"/> for more "
|
||||
"See <xref linkend=\"configuration-optional-statistics\" /> for more "
|
||||
"information."
|
||||
msgstr ""
|
||||
"Les statistiques pendant l'exécution d'Hibernate (au runtime) sont une autre "
|
||||
"fonctionnalité disponible en tant que service JMX. Voyez pour cela <xref "
|
||||
"linkend=\"configuration-optional-statistics\"/>."
|
||||
"Les statistiques Hibernate (runtime) représentent une autre fonctionnalité "
|
||||
"qui est disponible en tant que service JMX. Voyez pour cela les <xref "
|
||||
"linkend=\"configuration-optional-statistics\" />."
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:291
|
||||
#, no-c-format
|
||||
msgid "JCA Support"
|
||||
msgstr "Support JCA"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:292
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate can also be configured as a JCA connector. Please see the website "
|
||||
"for more information. Please note, however, that at this stage Hibernate JCA "
|
||||
|
@ -477,17 +439,15 @@ msgid ""
|
|||
msgstr ""
|
||||
"Hibernate peut aussi être configuré en tant que connecteur JCA. Référez-vous "
|
||||
"au site web pour de plus amples détails. Il est important de noter que le "
|
||||
"support JCA d'Hibernate est encore considéré comme expérimental."
|
||||
"support JCA de Hibernate est encore considéré comme expérimental. "
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:299
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Contextual sessions"
|
||||
msgstr "Sessions Contextuelles"
|
||||
msgstr "Sessions contextuelles "
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:300
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Most applications using Hibernate need some form of \"contextual\" session, "
|
||||
"where a given session is in effect throughout the scope of a given context. "
|
||||
|
@ -500,20 +460,19 @@ msgid ""
|
|||
"proxy/interception-based contextual sessions."
|
||||
msgstr ""
|
||||
"Certaines applications utilisant Hibernate ont besoin d'une sorte de session "
|
||||
"\"contextuelle\", où une session est liée à la portée d'un contexte "
|
||||
"particulier. Cependant, les applications ne définissent pas toutes la notion "
|
||||
"de contexte de la même manière, et différents contextes définissent "
|
||||
"différentes portées à la notion de \"courant\". Les applications à base "
|
||||
"d'Hibernate, versions précédentes à la 3.0 utilisaient généralement un "
|
||||
"principe maison de sessions contextuelles basées sur le "
|
||||
"\"contextuelle\", où une session donnée est en effet liée à la portée d'un "
|
||||
"contexte particulier. Cependant, les applications ne définissent pas toutes "
|
||||
"la notion de contexte de la même manière, et différents contextes "
|
||||
"définissent différentes portées à la notion de \"courant\". Les applications "
|
||||
"qui utilisaient Hibernate, versions précédentes à la 3.0, avaient tendance à "
|
||||
"employer un principe maison de sessions contextuelles basées sur le "
|
||||
"<literal>ThreadLocal</literal>, ainsi que sur des classes utilitaires comme "
|
||||
"<literal>HibernateUtil</literal>, ou utilisaient des framework tiers (comme "
|
||||
"Spring ou Pico) qui fournissaient des sessions contextuelles basées sur "
|
||||
"l'utilisation de proxy/interception."
|
||||
"l'utilisation de proxy/interception. "
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:309
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.0.1, Hibernate added the <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> method. Initially, this assumed usage of "
|
||||
|
@ -530,16 +489,15 @@ msgstr ""
|
|||
"demandait l'usage de transactions <literal>JTA</literal>, où la transaction "
|
||||
"<literal>JTA</literal> définissait la portée et le contexte de la session "
|
||||
"courante. L'équipe Hibernate pense que, étant donnée la maturité des "
|
||||
"implémentations de <literal>JTA TransactionManager</literal> , la plupart "
|
||||
"(sinon toutes) des applications devraient utiliser la gestion des "
|
||||
"transactions par <literal>JTA</literal> qu'elles soient ou non déployées "
|
||||
"dans un conteneur <literal>J2EE</literal>. Par conséquent, vous devriez "
|
||||
"toujours contextualiser vos sessions, si vous en avez besoin, via la méthode "
|
||||
"basée sur JTA."
|
||||
"nombreuses implémentations autonomes du <literal>JTA TransactionManager</"
|
||||
"literal>, la plupart (sinon toutes) des applications devraient utiliser la "
|
||||
"gestion des transactions par <literal>JTA</literal> qu'elles soient ou non "
|
||||
"déployées dans un conteneur <literal>J2EE</literal>. Par conséquent, il vous "
|
||||
"suffira de contextualiser vos sessions via la méthode basée sur "
|
||||
"<literal>JTA</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:319
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"However, as of version 3.1, the processing behind <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> is now pluggable. To that end, a new extension "
|
||||
|
@ -550,15 +508,14 @@ msgid ""
|
|||
msgstr ""
|
||||
"Cependant, depuis la version 3.1, la logique derrière "
|
||||
"<literal>SessionFactory.getCurrentSession()</literal> est désormais "
|
||||
"branchable. A cette fin, une nouvelle interface d'extension (<literal>org."
|
||||
"hibernate.context.CurrentSessionContext</literal>) et un nouveau paramètre "
|
||||
"de configuration (<literal>hibernate.current_session_context_class</"
|
||||
"literal>) ont été ajoutés pour permettre de configurer d'autres moyens de "
|
||||
"définir la portée et le contexte des sessions courantes."
|
||||
"enfichable. A cette fin, une nouvelle interface d'extension(<literal>org."
|
||||
"hibernate.context.CurrentSessionContext</literal> et un nouveau paramètre de "
|
||||
"configuration <literal>hibernate.current_session_context_class</literal> ont "
|
||||
"été ajoutés pour enficher la portée et le contexte de sessions courantes "
|
||||
"caractéristiques."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:326
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"See the Javadocs for the <literal>org.hibernate.context."
|
||||
"CurrentSessionContext</literal> interface for a detailed discussion of its "
|
||||
|
@ -567,16 +524,14 @@ msgid ""
|
|||
"contextual session. Out-of-the-box, Hibernate comes with three "
|
||||
"implementations of this interface:"
|
||||
msgstr ""
|
||||
"Allez voir les Javadocs de l'interface <literal>org.hibernate.context."
|
||||
"CurrentSessionContext</literal> pour une description détaillée de son "
|
||||
"contrat. Elle définit une seule méthode, <literal>currentSession()</"
|
||||
"literal>, depuis laquelle l'implémentation est responsable de traquer la "
|
||||
"session courante du contexte. Hibernate fournit deux implémentation de cette "
|
||||
"interface."
|
||||
"Pour une description détaillée de son contrat, consultez les Javadocs de "
|
||||
"l'interface <literal>org.hibernate.context.CurrentSessionContext</literal>. "
|
||||
"Elle définit une seule méthode, <literal>currentSession()</literal>, par "
|
||||
"laquelle l'implémentation est responsable de traquer la session contextuelle "
|
||||
"courante. Hibernate fournit trois implémentations de cette interface :"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:336
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<literal>org.hibernate.context.JTASessionContext</literal>: current sessions "
|
||||
"are tracked and scoped by a <literal>JTA</literal> transaction. The "
|
||||
|
@ -585,36 +540,34 @@ msgid ""
|
|||
msgstr ""
|
||||
"<literal>org.hibernate.context.JTASessionContext</literal> - les sessions "
|
||||
"courantes sont associées à une transaction <literal>JTA</literal>. La "
|
||||
"logique est la même que l'ancienne approche basée sur JTA. Voir les javadocs "
|
||||
"pour les détails."
|
||||
"logique est la même que l'ancienne approche basée sur JTA. Consultez les "
|
||||
"javadocs pour pour plus d'informations. "
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:344
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<literal>org.hibernate.context.ThreadLocalSessionContext</literal>:current "
|
||||
"sessions are tracked by thread of execution. See the Javadocs for details."
|
||||
msgstr ""
|
||||
"<literal>org.hibernate.context.ThreadLocalSessionContext</literal> - les "
|
||||
"sessions courantes sont associées au thread d'exécution. Voir les javadocs "
|
||||
"pour les détails."
|
||||
"sessions courantes sont traquées par l'exécution du thread. Consultez les "
|
||||
"javadocs pour plus d'informations. "
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:350
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<literal>org.hibernate.context.ManagedSessionContext</literal>: current "
|
||||
"sessions are tracked by thread of execution. However, you are responsible to "
|
||||
"bind and unbind a <literal>Session</literal> instance with static methods on "
|
||||
"this class: it does not open, flush, or close a <literal>Session</literal>."
|
||||
msgstr ""
|
||||
"<literal>org.hibernate.context.ManagedSessionContext</literal> - current "
|
||||
"sessions are tracked by thread of execution. However, you are responsible to "
|
||||
"bind and unbind a <literal>Session</literal> instance with static methods on "
|
||||
"this class, it does never open, flush, or close a <literal>Session</literal>."
|
||||
"<literal>org.hibernate.context.ManagedSessionContext</literal> - les "
|
||||
"sessions courantes sont traquées par l'exécution du thread. Toutefois, vous "
|
||||
"êtes responsable de lier et de délier une instance de <literal>Session</"
|
||||
"literal> avec des méthodes statiques de cette classe. Elle n'ouvre jamais, "
|
||||
"ni ne nettoie ou ne ferme une <literal>Session</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:359
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"The first two implementations provide a \"one session - one database "
|
||||
|
@ -627,25 +580,24 @@ msgid ""
|
|||
"utilize the JTA interfaces to demarcate transactions. If you execute in an "
|
||||
"EJB container that supports CMT, transaction boundaries are defined "
|
||||
"declaratively and you do not need any transaction or session demarcation "
|
||||
"operations in your code. Refer to <xref linkend=\"transactions\"/> for more "
|
||||
"operations in your code. Refer to <xref linkend=\"transactions\" /> for more "
|
||||
"information and code examples."
|
||||
msgstr ""
|
||||
"Les deux implémentations fournissent un modèle de programmation de type "
|
||||
"\"une session - une transaction à la base de données\", aussi connu sous le "
|
||||
"nom de <emphasis>session-per-request</emphasis>. Le début et la fin d'une "
|
||||
"Les deux premières implémentations fournissent un modèle de programmation de "
|
||||
"type \"une session - une transaction de base de données\", aussi connu sous "
|
||||
"le nom de <emphasis>session-per-request</emphasis>. Le début et la fin d'une "
|
||||
"session Hibernate sont définis par la durée d'une transaction de base de "
|
||||
"données. Si vous utilisez une démarcation programmatique de la transaction "
|
||||
"(par exemple sous J2SE ou JTA/UserTransaction/BMT), nous vous conseillons "
|
||||
"d'utiliser l'API Hibernate <literal>Transaction</literal> pour masquer le "
|
||||
"système de transaction utilisé. Si vous exécutez sous un conteneur EJB qui "
|
||||
"supporte CMT, vous n'avez besoin d'aucune opérations de démarcations de "
|
||||
"session ou transaction dans votre code puisque tout est géré de manière "
|
||||
"déclarative. Référez vous à <xref linkend=\"transactions\"/> pour plus "
|
||||
"d'informations et des exemples de code."
|
||||
"avec JSE sans JTA, nous vous conseillons d'utiliser l'API Hibernate "
|
||||
"<literal>Transaction</literal> pour masquer le système de transaction sous-"
|
||||
"jacent à votre code. Si vous exécutez sous un conteneur EJB qui prend en "
|
||||
"charge CMT, vous n'avez besoin d'aucune opération de démarcation de session "
|
||||
"ou transaction dans votre code puisque tout est géré de manière déclarative. "
|
||||
"Référez vous au <xref linkend=\"transactions\" /> pour plus d'informations "
|
||||
"et des exemples de code."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:371
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>hibernate.current_session_context_class</literal> configuration "
|
||||
"parameter defines which <literal>org.hibernate.context."
|
||||
|
@ -666,5 +618,6 @@ msgstr ""
|
|||
"hibernate.transaction.TransactionManagerLookup</literal> est configuré, "
|
||||
"Hibernate utilisera le <literal>org.hibernate.context.JTASessionContext</"
|
||||
"literal>. La valeur de ce paramètre devrait juste nommer la classe "
|
||||
"d'implémentation à utiliser, pour les deux implémentations fournies, il y a "
|
||||
"cependant deux alias correspondant: \"jta\" et \"thread\"."
|
||||
"d'implémentation à utiliser. Pour les trois implémentations prêtes à "
|
||||
"utiliser, toutefois, il y a trois noms brefs correspondants : \"jta\", "
|
||||
"\"thread\" et \"managed\"."
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,48 +1,37 @@
|
|||
# translation of batch.po to French
|
||||
# Myriam Malga <mmalga@redhat.com>, 2007.
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007.
|
||||
# Corina Roe <croe@redhat.com>, 2009, 2010.
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: batch\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:15\n"
|
||||
"PO-Revision-Date: 2010-01-04 17:03+1000\n"
|
||||
"Last-Translator: Corina Roe <croe@redhat.com>\n"
|
||||
"Language-Team: French <i18@redhat.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:29
|
||||
#, no-c-format
|
||||
msgid "Batch processing"
|
||||
msgstr "Traitement par paquet"
|
||||
msgstr "Traitement par lot"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:31
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A naive approach to inserting 100,000 rows in the database using Hibernate "
|
||||
"might look like this:"
|
||||
msgstr ""
|
||||
"Une approche naïve pour insérer 100 000 lignes dans la base de données en "
|
||||
"utilisant Hibernate pourrait ressembler à ça :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:36
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"for ( int i=0; i<100000; i++ ) {\n"
|
||||
" Customer customer = new Customer(.....);\n"
|
||||
" session.save(customer);\n"
|
||||
"}\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"utilisant Hibernate ressemblerait à : "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:38
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This would fall over with an <literal>OutOfMemoryException</literal> "
|
||||
"somewhere around the 50,000th row. That is because Hibernate caches all the "
|
||||
|
@ -50,176 +39,96 @@ msgid ""
|
|||
"cache. In this chapter we will show you how to avoid this problem."
|
||||
msgstr ""
|
||||
"Ceci devrait s'écrouler avec une <literal>OutOfMemoryException</literal> "
|
||||
"quelque part aux alentours de la 50 000ème ligne. C'est parce qu'Hibernate "
|
||||
"quelque part aux alentours de la 50 000ème ligne. C'est parce que Hibernate "
|
||||
"cache toutes les instances de <literal>Customer</literal> nouvellement "
|
||||
"insérées dans le cache de second niveau."
|
||||
"insérées dans le cache de second niveau. Dans ce chapitre, nous allons vous "
|
||||
"montrer comment éviter ce problème."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:45
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you are undertaking batch processing you will need to enable the use of "
|
||||
"JDBC batching. This is absolutely essential if you want to achieve optimal "
|
||||
"performance. Set the JDBC batch size to a reasonable number (10-50, for "
|
||||
"example):"
|
||||
msgstr ""
|
||||
"Dans ce chapitre nous montrerons comment éviter ce problème. D'abord, "
|
||||
"cependant, si vous faites des traitements par batch, il est absolument "
|
||||
"critique que vous activiez l'utilisation ds paquet JDBC (NdT : JDBC "
|
||||
"batching), si vous avez l'intention d'obtenir des performances raisonnables. "
|
||||
"Configurez la taille du paquet JDBC avec un nombre raisonnable (disons, 10-"
|
||||
"50) :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:52
|
||||
#, no-c-format
|
||||
msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
|
||||
msgstr ""
|
||||
"Dans ce chapitre nous montrerons comment éviter ce problème. Mais tout "
|
||||
"d'abord, si vous faites des traitements par lot, il est absolument "
|
||||
"indispensable d'activer l'utilisation des lots JDBC, pour obtenir des "
|
||||
"performances raisonnables. Configurez la taille du lot JDBC à un nombre "
|
||||
"raisonnable (disons, 10-50) : "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:54
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate disables insert batching at the JDBC level transparently if you "
|
||||
"use an <literal>identity</literal> identifier generator."
|
||||
msgstr ""
|
||||
"Vous pourriez aussi vouloir faire cette sorte de travail dans un traitement "
|
||||
"où l'interaction avec le cache de second niveau est complètement désactivé :"
|
||||
"Notez que Hibernate désactive, de manière transparente, l'insertion par lot "
|
||||
"au niveau JDBC si vous utilisez un générateur d'identifiant de type "
|
||||
"<literal>identity</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:59
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can also do this kind of work in a process where interaction with the "
|
||||
"second-level cache is completely disabled:"
|
||||
msgstr "Insertions en paquet"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:64
|
||||
#, no-c-format
|
||||
msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
|
||||
msgstr ""
|
||||
"Vous désirez peut-être effectuer ce genre de tâche dans un traitement où "
|
||||
"l'interaction avec le cache de second niveau est complètement désactivée :"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:66
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"However, this is not absolutely necessary, since we can explicitly set the "
|
||||
"<literal>CacheMode</literal> to disable interaction with the second-level "
|
||||
"cache."
|
||||
msgstr ""
|
||||
"Lorsque vous rendez des nouveaux objets persistants, vous devez "
|
||||
"régulièrement appeler <literal>flush()</literal> et puis <literal>clear()</"
|
||||
"literal> sur la session, pour contrôler la taille du cache de premier niveau."
|
||||
"Toutefois ce n'est pas absolument nécessaire puisque nous pouvons configurer "
|
||||
"le <literal>CacheMode</literal> de façon à désactiver l'interaction avec le "
|
||||
"cache de second niveau."
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:72
|
||||
#, no-c-format
|
||||
msgid "Batch inserts"
|
||||
msgstr "Paquet de mises à jour"
|
||||
msgstr "Insertions en lot"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:74
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"When making new objects persistent <literal>flush()</literal> and then "
|
||||
"<literal>clear()</literal> the session regularly in order to control the "
|
||||
"size of the first-level cache."
|
||||
msgstr ""
|
||||
"Pour récupérer et mettre à jour des données les mêmes idées s'appliquent. En "
|
||||
"plus, vous avez besoin d'utiliser <literal>scroll()</literal> pour tirer "
|
||||
"partie des curseurs côté serveur pour les requêtes qui retournent beaucoup "
|
||||
"de lignes de données."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:80
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"for ( int i=0; i<100000; i++ ) {\n"
|
||||
" Customer customer = new Customer(.....);\n"
|
||||
" session.save(customer);\n"
|
||||
" if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
|
||||
" //flush a batch of inserts and release memory:\n"
|
||||
" session.flush();\n"
|
||||
" session.clear();\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"Lorsque vous rendez des nouveaux objets persistants, vous devez "
|
||||
"régulièrement appeler <literal>flush()</literal> et puis <literal>clear()</"
|
||||
"literal> sur la session, pour contrôler la taille du cache de premier "
|
||||
"niveau. "
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:85
|
||||
#, no-c-format
|
||||
msgid "Batch updates"
|
||||
msgstr "L'interface StatelessSession"
|
||||
msgstr "Mise à jour des lots"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:87
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For retrieving and updating data, the same ideas apply. In addition, you "
|
||||
"need to use <literal>scroll()</literal> to take advantage of server-side "
|
||||
"cursors for queries that return many rows of data."
|
||||
msgstr ""
|
||||
"Alternativement, Hibernate fournit une API orientée commande qui peut être "
|
||||
"utilisée avec des flux de données pour et en provenance de la base de "
|
||||
"données sous la forme d'objets détachés. Une <literal>StatelessSession</"
|
||||
"literal> n'a pas de contexte de persistance associé et ne fournit pas "
|
||||
"beaucoup de sémantique de durée de vie de haut niveau. En particulier, une "
|
||||
"session sans état n'implémente pas de cache de premier niveau et n'interagit "
|
||||
"pas non plus avec un cache de seconde niveau ou un cache de requêtes. Elle "
|
||||
"n'implémente pas les transactions ou la vérification sale automatique (NdT : "
|
||||
"automatic dirty checking). Les opérations réalisées avec une session sans "
|
||||
"état ne sont jamais répercutées en cascade sur les instances associées. Les "
|
||||
"collections sont ignorées par une session sans état. Les opérations "
|
||||
"exécutées via une session sans état outrepasse le modèle d'événements "
|
||||
"d'Hibernate et les intercepteurs. Les sessions sans état sont vulnérables "
|
||||
"aux effets de modification des données, ceci est dû au manque de cache de "
|
||||
"premier niveau. Une session sans état est une abstraction bas niveau, plus "
|
||||
"proche de la couche JDBC sous-jacente."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:93
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
" .setCacheMode(CacheMode.IGNORE)\n"
|
||||
" .scroll(ScrollMode.FORWARD_ONLY);\n"
|
||||
"int count=0;\n"
|
||||
"while ( customers.next() ) {\n"
|
||||
" Customer customer = (Customer) customers.get(0);\n"
|
||||
" customer.updateStuff(...);\n"
|
||||
" if ( ++count % 20 == 0 ) {\n"
|
||||
" //flush a batch of updates and release memory:\n"
|
||||
" session.flush();\n"
|
||||
" session.clear();\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"Pour récupérer et mettre à jour des données les mêmes idées s'appliquent. De "
|
||||
"plus, vous devez utiliser <literal>scroll()</literal> pour tirer partie des "
|
||||
"curseurs côté serveur pour les requêtes qui retournent beaucoup de lignes de "
|
||||
"données. "
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:98
|
||||
#, no-c-format
|
||||
msgid "The StatelessSession interface"
|
||||
msgstr ""
|
||||
"Notez que dans le code de l'exemple, les intances de <literal>Customer</"
|
||||
"literal> retournées par la requête sont immédiatement détachées. Elles ne "
|
||||
"sont jamais associées à un contexte de persistance."
|
||||
msgstr "L'interface StatelessSession"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:99
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Alternatively, Hibernate provides a command-oriented API that can be used "
|
||||
"for streaming data to and from the database in the form of detached objects. "
|
||||
|
@ -235,47 +144,36 @@ msgid ""
|
|||
"effects. A stateless session is a lower-level abstraction that is much "
|
||||
"closer to the underlying JDBC."
|
||||
msgstr ""
|
||||
"Les opérations <literal>insert()</literal>, <literal>update()</literal> et "
|
||||
"<literal>delete()</literal> définies par l'interface "
|
||||
"<literal>StatelessSession</literal> sont considérées comme des opérations "
|
||||
"d'accès direct aux lignes de la base de données, ce qui résulte en une "
|
||||
"exécution immédiate du SQL <literal>INSERT</literal>, <literal>UPDATE</"
|
||||
"literal> ou <literal>DELETE</literal> respectif. De là, elles ont des "
|
||||
"sémantiques tres différentes des opérations <literal>save()</literal>, "
|
||||
"<literal>saveOrUpdate()</literal> et <literal>delete()</literal> définies "
|
||||
"par l'interface <literal>Session</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:114
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[StatelessSession session = sessionFactory.openStatelessSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
" .scroll(ScrollMode.FORWARD_ONLY);\n"
|
||||
"while ( customers.next() ) {\n"
|
||||
" Customer customer = (Customer) customers.get(0);\n"
|
||||
" customer.updateStuff(...);\n"
|
||||
" session.update(customer);\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"Alternativement, Hibernate fournit une API orientée commande qui peut être "
|
||||
"utilisée avec des flux de données vers et en provenance de la base de "
|
||||
"données sous la forme d'objets détachés. Une <literal>StatelessSession</"
|
||||
"literal> n'a pas de contexte de persistance associé et ne fournit pas "
|
||||
"beaucoup de sémantique de cycle de vie de haut niveau. En particulier, une "
|
||||
"session sans état n'implémente pas de cache de premier niveau et n'interagit "
|
||||
"pas non plus avec un cache de seconde niveau ou un cache de requêtes. Elle "
|
||||
"n'implémente pas les transactions ou la vérification sale automatique "
|
||||
"(automatic dirty checking). Les opérations réalisées avec une session sans "
|
||||
"état ne sont jamais répercutées en cascade sur les instances associées. Les "
|
||||
"collections sont ignorées par une session sans état. Les opérations "
|
||||
"exécutées via une session sans état outrepassent le modèle d'événements de "
|
||||
"Hibernate et les intercepteurs. Les sessions sans état sont vulnérables aux "
|
||||
"effets de réplication des données, ceci est dû au manque de cache de premier "
|
||||
"niveau. Une session sans état est une abstraction bas niveau, plus proche de "
|
||||
"la couche JDBC sous-jacente. "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:116
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"In this code example, the <literal>Customer</literal> instances returned by "
|
||||
"the query are immediately detached. They are never associated with any "
|
||||
"persistence context."
|
||||
msgstr "Opérations de style DML"
|
||||
msgstr ""
|
||||
"Notez que dans le code de l'exemple, les instances de <literal>Customer</"
|
||||
"literal> retournées par la requête sont immédiatement détachées. Elles ne "
|
||||
"sont jamais associées à un contexte de persistance. "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:122
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>insert(), update()</literal> and <literal>delete()</literal> "
|
||||
"operations defined by the <literal>StatelessSession</literal> interface are "
|
||||
|
@ -285,28 +183,22 @@ msgid ""
|
|||
"<literal>save(), saveOrUpdate()</literal> and <literal>delete()</literal> "
|
||||
"operations defined by the <literal>Session</literal> interface."
|
||||
msgstr ""
|
||||
"Comme déjà discuté avant, le mapping objet/relationnel automatique et "
|
||||
"transparent est intéressé par la gestion de l'état de l'objet. Ceci implique "
|
||||
"que l'état de l'objet est disponible en mémoire, d'où manipuler (en "
|
||||
"utilisant des expressions du langage de manipulation de données - "
|
||||
"<literal>Data Manipulation Language</literal> (DML) - SQL) les données "
|
||||
"directement dans la base n'affectera pas l'état en mémoire. Pourtant, "
|
||||
"Hibernate fournit des méthodes pour l'exécution d'expression DML de style "
|
||||
"SQL lesquelles sont réalisées à travers le langage de requête d'Hibernate "
|
||||
"(<xref linkend=\"queryhql\">HQL</xref>)."
|
||||
"Les opérations <literal>insert()</literal>, <literal>update()</literal> et "
|
||||
"<literal>delete()</literal> définies par l'interface "
|
||||
"<literal>StatelessSession</literal> sont considérées comme des opérations "
|
||||
"d'accès direct aux lignes de la base de données, ce qui résulte en une "
|
||||
"exécution immédiate du SQL <literal>INSERT</literal>, <literal>UPDATE</"
|
||||
"literal> ou <literal>DELETE</literal> respectivement. Ainsi, elles ont des "
|
||||
"sémantiques très différentes des opérations <literal>save()</literal>, "
|
||||
"<literal>saveOrUpdate()</literal> et <literal>delete()</literal> définies "
|
||||
"par l'interface <literal>Session</literal>."
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:135
|
||||
#, no-c-format
|
||||
msgid "DML-style operations"
|
||||
msgstr ""
|
||||
"La pseudo-syntaxe pour les expressions <literal>UPDATE</literal> et "
|
||||
"<literal>DELETE</literal> est : <literal>( UPDATE | DELETE ) FROM? "
|
||||
"EntityName (WHERE where_conditions)?</literal>. Certains points sont à "
|
||||
"noter :"
|
||||
msgstr "Opérations de style DML"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:137
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"As already discussed, automatic and transparent object/relational mapping is "
|
||||
|
@ -318,111 +210,84 @@ msgid ""
|
|||
"Hibernate provides methods for bulk SQL-style DML statement execution that "
|
||||
"is performed through the Hibernate Query Language (<link linkend=\"queryhql"
|
||||
"\">HQL</link>)."
|
||||
msgstr "Dans la clause from, le mot-clef FROM est optionnel"
|
||||
msgstr ""
|
||||
"Comme mentionné auparavant, le mapping objet/relationnel automatique et "
|
||||
"transparent s'intéresse à la gestion de l'état de l'objet. Ceci implique que "
|
||||
"l'état de l'objet soit disponible en mémoire, c'est pourquoi manipuler (en "
|
||||
"utilisant des expressions SQL du langage de manipulation de données - "
|
||||
"<literal>Data Manipulation Language</literal> (DML) : les données "
|
||||
"<literal>INSERT</literal>, <literal>UPDATE</literal>, <literal>DELETE</"
|
||||
"literal>) directement dans la base n'affecteront pas l'état en mémoire. "
|
||||
"Cependant, Hibernate fournit des méthodes pour l'exécution d'expression DML "
|
||||
"de style SQL en gros, qui sont réalisées à travers le langage de requête de "
|
||||
"Hibernate, Hibernate Query Language (<xref linkend=\"queryhql\"/> HQL)."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:146
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</"
|
||||
"literal> statements is: <literal>( UPDATE | DELETE ) FROM? EntityName (WHERE "
|
||||
"where_conditions)?</literal>."
|
||||
msgstr ""
|
||||
"Il ne peut y avoir qu'une seule entité nommée dans la clause from ; elle "
|
||||
"peut optionnellement avoir un alias. Si le nom de l'entité a un alias, alors "
|
||||
"n'importe quelle référence de propriété doit être qualifiée en ayant un "
|
||||
"alias ; si le nom de l'entité n'a pas d'alias, alors il est illégal pour "
|
||||
"n'importe quelle référence de propriété d'être qualifiée."
|
||||
"La pseudo-syntaxe pour les expressions <literal>UPDATE</literal> et "
|
||||
"<literal>DELETE</literal> est : <literal>( UPDATE | DELETE ) FROM? "
|
||||
"EntityName (WHERE where_conditions)?</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:151
|
||||
#, no-c-format
|
||||
msgid "Some points to note:"
|
||||
msgstr ""
|
||||
msgstr "Certains points à noter :"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:157
|
||||
#, no-c-format
|
||||
msgid "In the from-clause, the FROM keyword is optional"
|
||||
msgstr ""
|
||||
"Aucune jointure (implicite ou explicite) ne peut être spécifiée dans une "
|
||||
"requête HQL. Les sous-requêtes peuvent être utilisées dans la clause where ; "
|
||||
"les sous-requêtes, elles-mêmes, peuvent contenir des jointures."
|
||||
msgstr "Dans la clause from, le mot-clef FROM est optionnel"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:162
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"There can only be a single entity named in the from-clause. It can, however, "
|
||||
"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 "La clause where est aussi optionnelle."
|
||||
msgstr ""
|
||||
"Il ne peut y avoir qu'une seule entité nommée dans la clause from ; elle "
|
||||
"peut optionnellement avoir un alias. Si le nom de l'entité a un alias, alors "
|
||||
"n'importe quelle référence de propriété doit être qualifiée en utilisant un "
|
||||
"alias ; si le nom de l'entité n'a pas d'alias, il sera illégal pour "
|
||||
"n'importe quelle référence de propriété d'être qualifiée."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:170
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"No <link linkend=\"queryhql-joins-forms\">joins</link>, either implicit or "
|
||||
"explicit, can be specified in a bulk HQL query. Sub-queries can be used in "
|
||||
"the where-clause, where the subqueries themselves may contain joins."
|
||||
msgstr ""
|
||||
"Par exemple, pour exécuter un <literal>UPDATE</literal> HQL, utilisez la "
|
||||
"méthode <literal>Query.executeUpdate()</literal> (la méthode est données "
|
||||
"pour ceux qui sont familiers avec <literal>PreparedStatement.executeUpdate()"
|
||||
"</literal> de JDBC) :"
|
||||
"Aucune jointure <xref linkend=\"queryhql-joins-forms\" /> (implicite ou "
|
||||
"explicite) ne peut être spécifiée dans une requête HQL en gros. Les sous-"
|
||||
"requêtes peuvent être utilisées dans la clause where- ; les sous-requêtes, "
|
||||
"elles-mêmes, peuvent contenir des jointures."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:177
|
||||
#, no-c-format
|
||||
msgid "The where-clause is also optional."
|
||||
msgstr ""
|
||||
"Pour exécuter un <literal>DELETE</literal> HQL, utilisez la même méthode "
|
||||
"<literal>Query.executeUpdate()</literal> :"
|
||||
msgstr "La clause where- est aussi optionnelle."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:183
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"As an example, to execute an HQL <literal>UPDATE</literal>, use the "
|
||||
"<literal>Query.executeUpdate()</literal> method. The method is named for "
|
||||
"those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</"
|
||||
"literal>:"
|
||||
msgstr ""
|
||||
"La valeur du <literal>int</literal> retourné par la méthode <literal>Query."
|
||||
"executeUpdate()</literal> indique le nombre d'entités affectées par "
|
||||
"l'opération. Considérez que cela peut ou pas corréler le nombre de lignes "
|
||||
"affectés dans la base de données. Une opération HQL pourrait entraîner "
|
||||
"l'exécution de multiples expressions SQL réelles, pour des classes filles "
|
||||
"mappées par jointure (NdT: join-subclass), par exemple. Le nombre retourné "
|
||||
"indique le nombre d'entités réelles affectées par l'expression. Retour à "
|
||||
"l'exemple de la classe fille mappée par jointure, un effacement d'une des "
|
||||
"classes filles peut réellement entraîner des suppressions pas seulement dans "
|
||||
"la table qui mappe la classe fille, mais aussi dans la table \"racine\" et "
|
||||
"potentillement dans les tables des classes filles plus bas dans la "
|
||||
"hiérarchie d'héritage."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:189
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"String hqlUpdate = \"update Customer c set c.name = :newName where c.name = :"
|
||||
"oldName\";\n"
|
||||
"// or String hqlUpdate = \"update Customer set name = :newName where name = :"
|
||||
"oldName\";\n"
|
||||
"int updatedEntities = s.createQuery( hqlUpdate )\n"
|
||||
" .setString( \"newName\", newName )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"Par exemple, pour exécuter un HQL <literal>UPDATE</literal>, utilisez la "
|
||||
"méthode <literal>Query.executeUpdate()</literal> (la méthode est données "
|
||||
"pour ceux qui connaissent <literal>PreparedStatement.executeUpdate()</"
|
||||
"literal> de JDBC) : "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:191
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> "
|
||||
|
@ -435,72 +300,38 @@ msgid ""
|
|||
"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
|
||||
"keyword."
|
||||
msgstr ""
|
||||
"La pseudo-syntaxe pour l'expression <literal>INSERT</literal> est : "
|
||||
"<literal>INSERT INTO EntityName properties_list select_statement</literal>. "
|
||||
"Quelques points sont à noter :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:201
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"String hqlVersionedUpdate = \"update versioned Customer set name = :newName "
|
||||
"where name = :oldName\";\n"
|
||||
"int updatedEntities = s.createQuery( hqlUpdate )\n"
|
||||
" .setString( \"newName\", newName )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"Par défaut, les déclarations HQL <literal>UPDATE</literal>, n'affectent pas "
|
||||
"la version <xref linkend=\"mapping-declaration-version\"/> ou les valeurs "
|
||||
"<xref linkend=\"mapping-declaration-timestamp\" /> de propriétés timestamp "
|
||||
"pour les entités concernées; ceci est compatible avec la spécification EJB3. "
|
||||
"Toutefois, vous pouvez forcer Hibernate à mettre à jour les valeurs des "
|
||||
"propriétés <literal>version</literal> ou <literal>timestamp</literal> en "
|
||||
"utilisant le <literal>versioned update</literal>. Pour ce faire, ajoutez le "
|
||||
"mot clé <literal>VERSIONED</literal> après le mot clé <literal>UPDATE</"
|
||||
"literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:203
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Custom version types, <literal>org.hibernate.usertype.UserVersionType</"
|
||||
"literal>, are not allowed in conjunction with a <literal>update versioned</"
|
||||
"literal> statement."
|
||||
msgstr ""
|
||||
"Seule la forme INSERT INTO ... SELECT ... est supportée ; pas la forme "
|
||||
"INSERT INTO ... VALUES ... ."
|
||||
"Notez que les types personnalisés (<literal>org.hibernate.usertype."
|
||||
"UserVersionType</literal>) ne sont pas permis en conjonction avec la "
|
||||
"déclaration <literal>update versioned</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:208
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"To execute an HQL <literal>DELETE</literal>, use the same <literal>Query."
|
||||
"executeUpdate()</literal> method:"
|
||||
msgstr ""
|
||||
"La properties_list est analogue à la <literal>spécification de la colonne</"
|
||||
"literal> The properties_list is analogous to the <literal>column "
|
||||
"speficiation</literal> dans l'expression SQL <literal>INSERT</literal>. Pour "
|
||||
"les entités impliquées dans un héritage mappé, seules les propriétés "
|
||||
"directement définies à ce niveau de classe donné peuvent être utilisées dans "
|
||||
"properties_list. Les propriétés de la classe mère ne sont pas permises ; et "
|
||||
"les propriétés des classes filles n'ont pas de sens. En d'autres mots, les "
|
||||
"expressions <literal>INSERT</literal> par nature non polymorphiques."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:213
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
|
||||
"// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
|
||||
"int deletedEntities = s.createQuery( hqlDelete )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"Pour exécuter un HQL <literal>DELETE</literal>, utilisez la même méthode "
|
||||
"<literal>Query.executeUpdate()</literal> :"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:215
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>int</literal> value returned by the <literal>Query.executeUpdate"
|
||||
"()</literal> method indicates the number of entities effected by the "
|
||||
|
@ -513,61 +344,41 @@ msgid ""
|
|||
"which that subclass is mapped, but also the \"root\" table and potentially "
|
||||
"joined-subclass tables further down the inheritance hierarchy."
|
||||
msgstr ""
|
||||
"select_statement peut être n'importe quelle requête de sélection HQl valide, "
|
||||
"avec l'avertissement que les types de retour doivent correspondre aux types "
|
||||
"attendus par l'insertion. Actuellement, c'est vérifié durant la compilation "
|
||||
"de la requête plutôt que la vérification soit reléguée à la base de données. "
|
||||
"Notez cependant que cela pourrait poser des problèmes entre les "
|
||||
"<literal>Type</literal>s d'Hibernate qui sont <emphasis>équivalents</"
|
||||
"emphasis> opposé à <emphasis>égaux</emphasis>. Cela pourrait poser des "
|
||||
"problèmes avec des disparités entre une propriété définie comme un "
|
||||
"<literal>org.hibernate.type.DateType</literal> et une propriété définie "
|
||||
"comme un <literal>org.hibernate.type.TimestampType</literal>, même si la "
|
||||
"base de données ne ferait pas de distinction ou ne serait pas capable de "
|
||||
"gérer la conversion."
|
||||
"La valeur du <literal>int</literal> retourné par la méthode <literal>Query."
|
||||
"executeUpdate()</literal> indique le nombre d'entités affectées par "
|
||||
"l'opération. Considérez que cela peut ou non, corréler le nombre de lignes "
|
||||
"affectées dans la base de données. Une opération HQL pourrait entraîner "
|
||||
"l'exécution de multiples expressions SQL réelles, pour des classes filles "
|
||||
"mappées par jointure (join-subclass), par exemple. Le nombre retourné "
|
||||
"indique le nombre d'entités réelles affectées par l'expression. Si on "
|
||||
"revient à l'exemple de la classe fille mappée par jointure, un effacement "
|
||||
"d'une des classes filles peut réellement entraîner des suppressions pas "
|
||||
"seulement dans la table à laquelle la classe fille est mappée, mais "
|
||||
"également dans la table \"racine\" et potentillement dans les tables des "
|
||||
"classes filles plus bas dans la hiérarchie d'héritage. "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:226
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The pseudo-syntax for <literal>INSERT</literal> statements is: "
|
||||
"<literal>INSERT INTO EntityName properties_list select_statement</literal>. "
|
||||
"Some points to note:"
|
||||
msgstr ""
|
||||
"Pour la propriéte id, l'expression d'insertion vous donne deux options. Vous "
|
||||
"pouvez soit spécifier explicitement la propriété id dans properties_list "
|
||||
"(auquel cas sa valeur est extraite de l'expression de sélection "
|
||||
"correspondante), soit l'omettre de properties_list (auquel cas une valeur "
|
||||
"générée est utilisée). Cette dernière option est seulement disponible en "
|
||||
"utilisant le générateur d'identifiant qui opère dans la base de données ; "
|
||||
"tenter d'utiliser cette option avec n'importe quel type de générateur \"en "
|
||||
"mémoire\" causera une exception durant l'analyse. Notez que pour les buts de "
|
||||
"cette discussion, les générateurs \"en base\" sont considérés être "
|
||||
"<literal>org.hibernate.id.SequenceGenerator</literal> (et ses classes "
|
||||
"filles) et n'importe quelles implémentations de <literal>org.hibernate.id."
|
||||
"PostInsertIdentifierGenerator</literal>. L'exception la plus notable ici est "
|
||||
"<literal>org.hibernate.id.TableHiLoGenerator</literal>, qu ne peut pas être "
|
||||
"utilisée parce qu'il ne propose pas un moyen de d'exposer ses valeurs par un "
|
||||
"select."
|
||||
"La pseudo-syntaxe pour l'expression <literal>INSERT</literal> est : "
|
||||
"<literal>INSERT INTO EntityName properties_list select_statement</literal>. "
|
||||
"Quelques points sont à noter :"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:234
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Only the INSERT INTO ... SELECT ... form is supported; not the INSERT "
|
||||
"INTO ... VALUES ... form."
|
||||
msgstr ""
|
||||
"Pour des propriétés mappées comme <literal>version</literal> ou "
|
||||
"<literal>timestamp</literal>, l'expression d'insertion vous donne deux "
|
||||
"options. Vous pouvez soit spécifier la propriété dans properties_list "
|
||||
"(auquel cas sa valeur est extraite des expressions select correspondantes), "
|
||||
"soit l'omettre de properties_list (auquel cas la <literal>valeur de graine</"
|
||||
"literal> (NdT : seed value) définie par le <literal>org.hibernate.type."
|
||||
"VersionType</literal> est utilisée)."
|
||||
"Seule la forme INSERT INTO ... SELECT ... est supportée ; pas la forme "
|
||||
"INSERT INTO ... VALUES ... ."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:237
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The properties_list is analogous to the <literal>column specification</"
|
||||
"literal> in the SQL <literal>INSERT</literal> statement. For entities "
|
||||
|
@ -576,11 +387,16 @@ msgid ""
|
|||
"are not allowed and subclass properties do not make sense. In other words, "
|
||||
"<literal>INSERT</literal> statements are inherently non-polymorphic."
|
||||
msgstr ""
|
||||
"Un exemple d'exécution d'une expression <literal>INSERT</literal> HQL :"
|
||||
"La properties_list est analogue à la <literal>column speficiation</literal> "
|
||||
"dans la déclaration SQL <literal>INSERT</literal>. Pour les entités "
|
||||
"impliquées dans un héritage mappé, seules les propriétés directement "
|
||||
"définies à ce niveau de classe donné peuvent être utilisées dans "
|
||||
"properties_list. Les propriétés de la classe mère ne sont pas permises ; et "
|
||||
"les propriétés des classes filles n'ont pas de sens. En d'autres termes, les "
|
||||
"expressions <literal>INSERT</literal> sont par nature non polymorphiques. "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:247
|
||||
#, fuzzy, no-c-format
|
||||
#, 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 "
|
||||
|
@ -592,10 +408,21 @@ msgid ""
|
|||
"DateType</literal> and a property defined as a <literal>org.hibernate.type."
|
||||
"TimestampType</literal>, even though the database might not make a "
|
||||
"distinction or might be able to handle the conversion."
|
||||
msgstr "translator-credits"
|
||||
msgstr ""
|
||||
"select_statement peut être n'importe quelle requête de sélection HQL valide, "
|
||||
"avec l'avertissement que les types de retour doivent correspondre aux types "
|
||||
"attendus par l'insertion. Actuellement, cela est vérifié durant la "
|
||||
"compilation de la requête plutôt que de reléguer la vérification à la base "
|
||||
"de données. Notez cependant que cela pourrait poser des problèmes entre les "
|
||||
"<literal>Type</literal>s de Hibernate qui sont <emphasis>équivalents</"
|
||||
"emphasis> contrairement à <emphasis>égaux</emphasis>. Cela pourrait poser "
|
||||
"des problèmes avec des disparités entre une propriété définie comme un "
|
||||
"<literal>org.hibernate.type.DateType</literal> et une propriété définie "
|
||||
"comme un <literal>org.hibernate.type.TimestampType</literal>, bien que la "
|
||||
"base de données ne fasse pas de distinction ou ne soit pas capable de gérer "
|
||||
"la conversion."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:259
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For the id property, the insert statement gives you two options. You can "
|
||||
|
@ -612,9 +439,23 @@ msgid ""
|
|||
"TableHiLoGenerator</literal>, which cannot be used because it does not "
|
||||
"expose a selectable way to get its values."
|
||||
msgstr ""
|
||||
"Pour la propriété id, l'expression d'insertion vous donne deux options. Vous "
|
||||
"pouvez soit spécifier explicitement la propriété id dans properties_list "
|
||||
"(auquel cas sa valeur est extraite de l'expression de sélection "
|
||||
"correspondante), soit l'omettre de properties_list (auquel cas une valeur "
|
||||
"générée est utilisée). Cette dernière option est seulement disponible si "
|
||||
"vous utilisez le générateur d'identifiant qui opère dans la base de "
|
||||
"données ; tenter d'utiliser cette option avec n'importe quel type de "
|
||||
"générateur \"en mémoire\" causera une exception durant l'analyse. Notez que "
|
||||
"pour les buts de cette discussion, les générateurs \"en base\" sont "
|
||||
"considérés comme <literal>org.hibernate.id.SequenceGenerator</literal> (et "
|
||||
"ses classes filles) et n'importe quelles implémentations de <literal>org."
|
||||
"hibernate.id.PostInsertIdentifierGenerator</literal>. L'exception la plus "
|
||||
"notable ici est <literal>org.hibernate.id.TableHiLoGenerator</literal>, qui "
|
||||
"ne peut pas être utilisée parce qu'elle ne propose pas de moyen d'obtenir "
|
||||
"ses valeurs par un select. "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:274
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For properties mapped as either <literal>version</literal> or "
|
||||
|
@ -624,26 +465,18 @@ msgid ""
|
|||
"from the properties_list, in which case the <literal>seed value</literal> "
|
||||
"defined by the <literal>org.hibernate.type.VersionType</literal> is used."
|
||||
msgstr ""
|
||||
"Pour des propriétés mappées comme <literal>version</literal> ou "
|
||||
"<literal>timestamp</literal>, l'expression d'insertion vous donne deux "
|
||||
"options. Vous pouvez soit spécifier la propriété dans properties_list "
|
||||
"(auquel cas sa valeur est extraite des expressions select correspondantes), "
|
||||
"soit l'omettre de properties_list (auquel cas la <literal>seed value</"
|
||||
"literal> définie par le <literal>org.hibernate.type.VersionType</literal> "
|
||||
"est utilisée). "
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:284
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The following is an example of an HQL <literal>INSERT</literal> statement "
|
||||
"execution:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:288
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"String hqlInsert = \"insert into DelinquentAccount (id, name) select c.id, c."
|
||||
"name from Customer c where ...\";\n"
|
||||
"int createdEntities = s.createQuery( hqlInsert )\n"
|
||||
" .executeUpdate();\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"Un exemple d'exécution d'une expression HQL <literal>INSERT</literal> : "
|
||||
|
|
|
@ -1,33 +1,36 @@
|
|||
# translation of best_practices.po to French
|
||||
# Myriam Malga <mmalga@redhat.com>, 2007.
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007.
|
||||
# Corina Roe <croe@redhat.com>, 2009.
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: best_practices\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:15\n"
|
||||
"PO-Revision-Date: 2009-11-10 16:06+1000\n"
|
||||
"Last-Translator: Corina Roe <croe@redhat.com>\n"
|
||||
"Language-Team: French <i18@redhat.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: best_practices.xml:29
|
||||
#, no-c-format
|
||||
msgid "Best Practices"
|
||||
msgstr "Meilleures pratiques"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:33
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Write fine-grained classes and map them using <literal><component></"
|
||||
"literal>:"
|
||||
msgstr ""
|
||||
"Découpez finement vos classes et mappez les en utilisant <literal><"
|
||||
"component></literal>."
|
||||
"Découpez finement vos classes et mappez-les en utilisant <literal><"
|
||||
"component></literal> :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:35
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Use an <literal>Address</literal> class to encapsulate <literal>street</"
|
||||
|
@ -35,37 +38,33 @@ msgid ""
|
|||
"<literal>postcode</literal>. This encourages code reuse and simplifies "
|
||||
"refactoring."
|
||||
msgstr ""
|
||||
"Utilisez une classe <literal>Adresse</literal> pour encapsuler <literal>Rue</"
|
||||
"literal>, <literal>Region</literal>, <literal>CodePostal</literal>. Ceci "
|
||||
"permet la réutilisation du code et simplifie la maintenance."
|
||||
"Utilisez une classe <literal>Address</literal> pour résumer <literal>street</"
|
||||
"literal>, <literal>suburb</literal>, <literal>state</literal>, "
|
||||
"<literal>postcode</literal>. Ceci permet la réutilisation du code et "
|
||||
"simplifie la maintenance. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:43
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Declare identifier properties on persistent classes:"
|
||||
msgstr "Déclarez des propriétés d'identifiants dans les classes persistantes."
|
||||
msgstr "Déclarez des propriétés d'identifiants dans les classes persistantes :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:45
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate makes identifier properties optional. There are a range of reasons "
|
||||
"why you should use them. We recommend that identifiers be 'synthetic', that "
|
||||
"is, generated with no business meaning."
|
||||
msgstr ""
|
||||
"Hibernate rend les propriétés d'identifiants optionnelles. Il existe "
|
||||
"beaucoup de raisons pour lesquelles vous devriez les utiliser. Nous "
|
||||
"recommandons que vous utilisiez des identifiants techniques (générés, et "
|
||||
"sans connotation métier)."
|
||||
"Hibernate rend les propriétés d'identifiants optionnelles. Il est recommandé "
|
||||
"de les utiliser pour de nombreuses raisons. Utilisez les identifiants comme "
|
||||
"'synthetic' (générés, et sans connotation métier)."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:53
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Identify natural keys:"
|
||||
msgstr "Identifiez les clefs naturelles."
|
||||
msgstr "Identifiez les clefs naturelles :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:55
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Identify natural keys for all entities, and map them using <literal><"
|
||||
|
@ -73,20 +72,18 @@ msgid ""
|
|||
"<literal>hashCode()</literal> to compare the properties that make up the "
|
||||
"natural key."
|
||||
msgstr ""
|
||||
"Identifiez les clefs naturelles pour toutes les entités, et mappez les avec "
|
||||
"Identifiez les clefs naturelles pour toutes les entités, et mappez-les avec "
|
||||
"<literal><natural-id></literal>. Implémentez <literal>equals()</"
|
||||
"literal> et <literal>hashCode()</literal> pour comparer les propriétés qui "
|
||||
"composent la clef naturelle."
|
||||
"composent la clef naturelle. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:63
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Place each class mapping in its own file:"
|
||||
msgstr "Placez chaque mapping de classe dans son propre fichier."
|
||||
msgstr "Placez chaque mapping de classe dans son propre fichier :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:65
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Do not use a single monolithic mapping document. Map <literal>com.eg.Foo</"
|
||||
"literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes "
|
||||
|
@ -94,87 +91,77 @@ msgid ""
|
|||
msgstr ""
|
||||
"N'utilisez pas un unique document de mapping. Mappez <literal>com.eg.Foo</"
|
||||
"literal> dans le fichier <literal>com/eg/Foo.hbm.xml</literal>. Cela prend "
|
||||
"tout son sens lors d'un travail en équipe."
|
||||
"tout son sens lors d'un travail en équipe. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:73
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Load mappings as resources:"
|
||||
msgstr "Chargez les mappings comme des ressources."
|
||||
msgstr "Chargez les mappings comme des ressources :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:75
|
||||
#, no-c-format
|
||||
msgid "Deploy the mappings along with the classes they map."
|
||||
msgstr "Déployez les mappings en même temps que les classes qu'ils mappent."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:81
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Consider externalizing query strings:"
|
||||
msgstr "Pensez à externaliser les chaînes de caractères."
|
||||
msgstr "Pensez à externaliser les chaînes de requêtes :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:83
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is recommended if your queries call non-ANSI-standard SQL functions. "
|
||||
"Externalizing the query strings to mapping files will make the application "
|
||||
"more portable."
|
||||
msgstr ""
|
||||
"Ceci est une bonne habitude si vos requêtes appellent des fonctions SQL qui "
|
||||
"ne sont pas au standard ANSI. Cette externalisation dans les fichiers de "
|
||||
"mapping rendra votre application plus portable."
|
||||
"ne sont pas au standard ANSI. Cette externalisation des chaînes de requête "
|
||||
"dans les fichiers de mapping rendra votre application plus portable. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:91
|
||||
#, no-c-format
|
||||
msgid "Use bind variables."
|
||||
msgstr "Utilisez les variables \"bindées\"."
|
||||
msgstr "Utilisez les variables bindées."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:93
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"As in JDBC, always replace non-constant values by \"?\". Do not use string "
|
||||
"manipulation to bind a non-constant value in a query. You should also "
|
||||
"consider using named parameters in queries."
|
||||
msgstr ""
|
||||
"Comme en JDBC, remplacez toujours les valeurs non constantes par \"?\". "
|
||||
"N'utilisez jamais la manipulation des chaînes de caractères pour remplacer "
|
||||
"des valeurs non constantes dans une requête ! Encore mieux, utilisez les "
|
||||
"Comme dans JDBC, remplacez toujours les valeurs non constantes par \"?\". "
|
||||
"N'utilisez jamais la manipulation des chaînes de caractères pour lier des "
|
||||
"valeurs non constantes dans une requête ! Encore mieux, utilisez les "
|
||||
"paramètres nommés dans les requêtes."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:101
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Do not manage your own JDBC connections:"
|
||||
msgstr "Ne gérez pas vous même les connexions JDBC."
|
||||
msgstr "Ne gérez pas vous-même les connexions JDBC :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:103
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate allows the application to manage JDBC connections, but his "
|
||||
"approach should be considered a last-resort. If you cannot use the built-in "
|
||||
"connection providers, consider providing your own implementation of "
|
||||
"<literal>org.hibernate.connection.ConnectionProvider</literal>."
|
||||
msgstr ""
|
||||
"Hibernate laisse l'application gérer les connexions JDBC. Vous ne devriez "
|
||||
"gérer vos connexions qu'en dernier recours. Si vous ne pouvez pas utiliser "
|
||||
"les systèmes de connexions livrés, réfléchissez à l'idée de fournir votre "
|
||||
"propre implémentation de <literal>org.hibernate.connection."
|
||||
"ConnectionProvider</literal>."
|
||||
"Hibernate permet à l'application de gérer les connexions JDBC. Vous ne "
|
||||
"devriez gérer vos connexions qu'en dernier recours. Si vous ne pouvez pas "
|
||||
"utiliser les systèmes de connexions livrés, considérez la fourniture de "
|
||||
"votre propre implémentation de <literal>org.hibernate.connection."
|
||||
"ConnectionProvider</literal>. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:111
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Consider using a custom type:"
|
||||
msgstr "Pensez à utiliser les types utilisateurs."
|
||||
msgstr "Considérez l'utilisation de types personnalisés :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:113
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Suppose you have a Java type from a library that needs to be persisted but "
|
||||
"does not provide the accessors needed to map it as a component. You should "
|
||||
|
@ -182,48 +169,45 @@ msgid ""
|
|||
"approach frees the application code from implementing transformations to/"
|
||||
"from a Hibernate type."
|
||||
msgstr ""
|
||||
"Supposez que vous ayez une type Java, de telle bibliothèque, qui a besoin "
|
||||
"Supposez que vous ayez un type Java, de telle bibliothèque, qui a besoin "
|
||||
"d'être persisté mais qui ne fournit pas les accesseurs nécessaires pour le "
|
||||
"mapper comme composant. Vous devriez implémenter <literal>org.hibernate."
|
||||
"UserType</literal>.Cette approche libère le code de l'application de "
|
||||
"l'implémentation des transformations vers / depuis les types Hibernate."
|
||||
"UserType</literal>. Cette approche évite au code de l'application, "
|
||||
"l'implémentation de transformations vers / depuis les types Hibernate. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:122
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Use hand-coded JDBC in bottlenecks:"
|
||||
msgstr "Utilisez du JDBC pur dans les goulets d'étranglement."
|
||||
msgstr "Utilisez du JDBC pur dans les goulots d'étranglement :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:124
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"In performance-critical areas of the system, some kinds of operations might "
|
||||
"benefit from direct JDBC. Do not assume, however, that JDBC is necessarily "
|
||||
"faster. Please wait until you <emphasis>know</emphasis> something is a "
|
||||
"bottleneck. If you need to use direct JDBC, you can open a Hibernate "
|
||||
"<literal>Session</literal> and usingfile:///usr/share/doc/HTML/en-US/index."
|
||||
"html that JDBC connection. This way you can still use the same transaction "
|
||||
"strategy and underlying connection provider."
|
||||
"<literal>Session</literal>, wrap your JDBC operation as a <literal>org."
|
||||
"hibernate.jdbc.Work</literal> object and using that JDBC connection. This "
|
||||
"way you can still use the same transaction strategy and underlying "
|
||||
"connection provider."
|
||||
msgstr ""
|
||||
"Dans certaines parties critiques de votre système d'un point de vue "
|
||||
"performance, quelques opérations peuvent tirer partie d'un appel JDBC natif. "
|
||||
"Mais attendez de <emphasis>savoir</emphasis> que c'est un goulet "
|
||||
"En ce qui concerne les performances dans certaines parties critiques de "
|
||||
"votre système, quelques opérations peuvent tirer partie d'un appel JDBC "
|
||||
"natif. Mais attendez de <emphasis>savoir</emphasis> que c'est un goulet "
|
||||
"d'étranglement. Ne supposez jamais qu'un appel JDBC sera forcément plus "
|
||||
"rapide. Si vous avez besoin d'utiliser JDBC directement, ouvrez une "
|
||||
"rapide. Si vous devez utiliser JDBC directement, ouvrez une "
|
||||
"<literal>Session</literal> Hibernate et utilisez la connexion SQL sous-"
|
||||
"jacente. Ainsi vous pourrez utiliser la même stratégie de transation et la "
|
||||
"même gestion des connexions."
|
||||
"même gestion des connexions. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:134
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Understand <literal>Session</literal> flushing:"
|
||||
msgstr "Comprendre le flush de <literal>Session</literal>."
|
||||
msgstr "Comprenez le flush de <literal>Session</literal> :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:136
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Sometimes the Session synchronizes its persistent state with the database. "
|
||||
"Performance will be affected if this process occurs too often. You can "
|
||||
|
@ -234,20 +218,18 @@ msgstr ""
|
|||
"De temps en temps la Session synchronise ses états persistants avec la base "
|
||||
"de données. Les performances seront affectées si ce processus arrive trop "
|
||||
"souvent. Vous pouvez parfois minimiser les flush non nécessaires en "
|
||||
"désactivant le flush automatique ou même en changeant l'ordre des opérations "
|
||||
"menées dans une transaction particulière."
|
||||
"désactivant le flush automatique ou même en changeant l'ordre des requêtes "
|
||||
"et autres opérations effectuées dans une transaction particulière. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:145
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "In a three tiered architecture, consider using detached objects:"
|
||||
msgstr ""
|
||||
"Dans une architecture à trois couches, pensez à utiliser "
|
||||
"<literal>saveOrUpdate()</literal>."
|
||||
"Dans une architecture à trois couches, vous pouvez utilisez des objets "
|
||||
"détachés :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:147
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"When using a servlet/session bean architecture, you can pass persistent "
|
||||
"objects loaded in the session bean to and from the servlet/JSP layer. Use a "
|
||||
|
@ -256,23 +238,21 @@ msgid ""
|
|||
"database."
|
||||
msgstr ""
|
||||
"Quand vous utilisez une architecture à base de servlet / session bean, vous "
|
||||
"pourriez passer des objets chargés dans le bean session vers et depuis la "
|
||||
"pouvez passer des objets chargés dans le bean session vers et depuis la "
|
||||
"couche servlet / JSP. Utilisez une nouvelle session pour traiter chaque "
|
||||
"requête. Utilisez <literal>Session.merge()</literal> ou <literal>Session."
|
||||
"saveOrUpdate()</literal> pour synchroniser les objets avec la base de "
|
||||
"données."
|
||||
"données. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:156
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "In a two tiered architecture, consider using long persistence contexts:"
|
||||
msgstr ""
|
||||
"Dans une architecture à deux couches, pensez à utiliser la déconnexion de "
|
||||
"session."
|
||||
"Dans une architecture à deux couches, pensez à utiliser les contextes de "
|
||||
"persistance longue :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:158
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Database Transactions have to be as short as possible for best scalability. "
|
||||
"However, it is often necessary to implement long running "
|
||||
|
@ -288,28 +268,26 @@ msgid ""
|
|||
"stale data."
|
||||
msgstr ""
|
||||
"Les transactions de bases de données doivent être aussi courtes que possible "
|
||||
"pour une meilleure montée en charge.Cependant, il est souvent nécessaire "
|
||||
"pour une meilleure extensibilité. Cependant, il est souvent nécessaire "
|
||||
"d'implémenter de longues <emphasis>transactions applicatives</emphasis>, une "
|
||||
"simple unité de travail du point de vue de l'utilisateur. Une transaction "
|
||||
"applicative peut s'étaler sur plusieurs cycles de requêtes/réponses du "
|
||||
"client. Il est commun d'utiliser des objets détachés pour implémenter des "
|
||||
"transactions applicatives. Une alternative, extrêmement appropriée dans une "
|
||||
"architecture à 2 couches, est de maintenir un seul contact de persistance "
|
||||
"architecture à deux couches, est de maintenir un seul contact de persistance "
|
||||
"ouvert (session) pour toute la durée de vie de la transaction applicative et "
|
||||
"simplement se déconnecter de la connexion JDBC à la fin de chaque requête, "
|
||||
"et se reconnecter au début de la requête suivante. Ne partagez jamais une "
|
||||
"seule session avec plus d'une transaction applicative, ou vous travaillerez "
|
||||
"avec des données périmées."
|
||||
"seule session avec plus d'une transaction applicative, ou bien vous "
|
||||
"travaillerez avec des données périmées. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:172
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Do not treat exceptions as recoverable:"
|
||||
msgstr "Considérez que les exceptions ne sont pas rattrapables."
|
||||
msgstr "Considérez que les exceptions ne sont pas rattrapables :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:174
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is more of a necessary practice than a \"best\" practice. When an "
|
||||
"exception occurs, roll back the <literal>Transaction</literal> and close the "
|
||||
|
@ -324,18 +302,17 @@ msgstr ""
|
|||
"<literal>Transaction</literal> et fermer la <literal>Session</literal>. "
|
||||
"Sinon, Hibernate ne peut garantir l'intégrité des états persistants en "
|
||||
"mémoire. En particulier, n'utilisez pas <literal>Session.load()</literal> "
|
||||
"pour déterminer si une instance avec un identifiant donné existe en base de "
|
||||
"données, utilisez <literal>Session.get()</literal> ou un requête."
|
||||
"pour déterminer si une instance avec l'identifiant donné existe en base de "
|
||||
"données, à la place utilisez <literal>Session.get()</literal> ou une "
|
||||
"requête. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:184
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Prefer lazy fetching for associations:"
|
||||
msgstr "Préférez le chargement tardif des associations."
|
||||
msgstr "Préférez le chargement différé des associations :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:186
|
||||
#, fuzzy, no-c-format
|
||||
#, 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 "
|
||||
|
@ -348,27 +325,25 @@ msgstr ""
|
|||
"Utilisez le chargement complet avec modération. Utilisez les proxies et les "
|
||||
"collections chargées tardivement pour la plupart des associations vers des "
|
||||
"classes qui ne sont pas susceptibles d'être complètement retenues dans le "
|
||||
"cache de second niveau. Pour les assocations de classes en cache, où il y a "
|
||||
"une extrêmement forte probabilité que l'élément soit en cache, désactivez "
|
||||
"explicitement le chargement par jointures ouvertes en utilisant "
|
||||
"<literal>outer-join=\"false\"</literal>. Lorsqu'un chargement par jointure "
|
||||
"ouverte est approprié pour un cas d'utilisation particulier, utilisez une "
|
||||
"requête avec un <literal>left join fetch</literal>."
|
||||
"cache de second niveau. Pour les associations de classes en cache, où il y a "
|
||||
"une forte probabilité que l'élément soit en cache, désactivez explicitement "
|
||||
"le chargement par jointures ouvertes en utilisant <literal>outer-join=\"false"
|
||||
"\"</literal>. Lorsqu'un chargement par jointure ouverte est approprié pour "
|
||||
"un cas d'utilisation particulier, utilisez une requête avec un <literal>left "
|
||||
"join fetch</literal>. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:196
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Use the <emphasis>open session in view</emphasis> pattern, or a disciplined "
|
||||
"<emphasis>assembly phase</emphasis> to avoid problems with unfetched data:"
|
||||
msgstr ""
|
||||
"Utilisez le pattern <emphasis>d'une ouverture de session dans une vue</"
|
||||
"emphasis>, ou une <emphasis>phase d'assemblage</emphasis> disciplinée pour "
|
||||
"éviter des problèmes avec des données non rapatriées."
|
||||
"éviter des problèmes avec des données non rapatriées :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:201
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
|
||||
"Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual "
|
||||
|
@ -384,28 +359,28 @@ msgid ""
|
|||
"requirement of safe transactional data access."
|
||||
msgstr ""
|
||||
"Hibernate libère les développeurs de l'écriture fastidieuse des "
|
||||
"<emphasis>objets de transfert de données (NdT : Data Transfer Objects)</"
|
||||
"emphasis> (DTO). Dans une architecture EJB traditionnelle, les DTOs ont deux "
|
||||
"buts : premièrement, ils contournent le problème des \"entity bean\" qui ne "
|
||||
"sont pas sérialisables ; deuxièmement, ils définissent implicitement une "
|
||||
"phase d'assemblage où toutes les données utilisées par la vue sont "
|
||||
"rapatriées et organisées dans les DTOs avant de retourner sous le contrôle "
|
||||
"de la couche de présentation. Hibernate élimine le premier but. Pourtant, "
|
||||
"vous aurez encore besoin d'une phase d'assemblage (pensez vos méthodes "
|
||||
"métier comme ayant un contrat strict avec la couche de présentation à propos "
|
||||
"de quelles données sont disponibles dans les objets détachés) à moins que "
|
||||
"vous soyez préparés à garder le contexte de persistance (la session) ouvert "
|
||||
"à travers tout le processus de rendu de la vue."
|
||||
"<emphasis>objets de transfert de données </emphasis> (DTO). Dans une "
|
||||
"architecture EJB traditionnelle, les DTO ont deux buts : premièrement, ils "
|
||||
"contournent le problème des beans entités qui ne sont pas sérialisables ; "
|
||||
"deuxièmement, ils définissent implicitement une phase d'assemblage où toutes "
|
||||
"les données utilisées par la vue sont rapatriées et organisées dans les DTO "
|
||||
"avant de retourner sous le contrôle de la couche de présentation. Hibernate "
|
||||
"élimine le premier but. Cependant, vous aurez encore besoin d'une phase "
|
||||
"d'assemblage (pensez à vos méthodes métier comme ayant un contrat strict "
|
||||
"avec la couche de présentation, en ce qui concerne les données disponibles "
|
||||
"dans les objets détachés) à moins que vous soyez préparés à garder le "
|
||||
"contexte de persistance (la session) ouvert à travers tout le processus de "
|
||||
"rendu de la vue. Ceci ne représente pas une limitation de Hibernate! Au "
|
||||
"contraire c'est une exigence fondamentale d'un accès sécurisé aux données "
|
||||
"transactionnelles. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:215
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Consider abstracting your business logic from Hibernate:"
|
||||
msgstr "Pensez à abstraite votre logique métier d'Hibernate."
|
||||
msgstr "Pensez à abstraire votre logique métier d'Hibernate :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:217
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hide Hibernate data-access code behind an interface. Combine the "
|
||||
"<emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> "
|
||||
|
@ -415,21 +390,19 @@ msgid ""
|
|||
"appropriate for an application with five tables."
|
||||
msgstr ""
|
||||
"Cachez le mécanisme d'accès aux données (Hibernate) derrière une interface. "
|
||||
"Combinez les patterns <emphasis>DAO</emphasis> et <emphasis>Thread Local "
|
||||
"Combinez les modèles <emphasis>DAO</emphasis> et <emphasis>Thread Local "
|
||||
"Session</emphasis>. Vous pouvez même avoir quelques classes persistées par "
|
||||
"du JDBC pur, associées à Hibernate via un <literal>UserType</literal> (ce "
|
||||
"conseil est valable pour des applications de taille respectables ; il n'est "
|
||||
"pas valable pour une application avec cinq tables)."
|
||||
"pas valable pour une application avec cinq tables). "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:227
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Do not use exotic association mappings:"
|
||||
msgstr "N'utilisez pas d'associations de mapping exotiques."
|
||||
msgstr "N'utilisez pas d'associations de mapping exotiques :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:229
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Practical test cases for real many-to-many associations are rare. Most of "
|
||||
"the time you need additional information stored in the \"link table\". In "
|
||||
|
@ -438,23 +411,21 @@ msgid ""
|
|||
"to-one. For this reason, you should proceed cautiously when using any other "
|
||||
"association style."
|
||||
msgstr ""
|
||||
"De bons cas d'utilisation pour de vraies associations plusieurs-vers-"
|
||||
"plusieurs sont rares. La plupart du temps vous avez besoin d'informations "
|
||||
"Les utilisations appropriées de vraies associations plusieurs-à-plusieurs "
|
||||
"sont rares. La plupart du temps vous avez besoin d'informations "
|
||||
"additionnelles stockées dans la table d'association. Dans ce cas, il est "
|
||||
"préférable d'utiliser deux associations un-vers-plusieurs vers une classe de "
|
||||
"préférable d'utiliser deux associations un-à-plusieurs vers une classe de "
|
||||
"liaisons intermédiaire. En fait, nous pensons que la plupart des "
|
||||
"associations sont de type un-vers-plusieurs ou plusieurs-vers-un, vous devez "
|
||||
"être très attentifs lorsque vous utilisez autre chose et vous demander si "
|
||||
"c'est vraiment nécessaire."
|
||||
"associations sont de type un-à-plusieurs ou plusieurs-à-un, vous devez être "
|
||||
"très prudent lorsque vous utilisez toute autre association et vous demander "
|
||||
"si c'est vraiment nécessaire. "
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:239
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Prefer bidirectional associations:"
|
||||
msgstr "Préférez les associations bidirectionnelles."
|
||||
msgstr "Préférez les associations bidirectionnelles :"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:241
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Unidirectional associations are more difficult to query. In a large "
|
||||
|
@ -463,4 +434,4 @@ msgid ""
|
|||
msgstr ""
|
||||
"Les associations unidirectionnelles sont plus difficiles à questionner. Dans "
|
||||
"une grande application, la plupart des associations devraient être "
|
||||
"navigables dans les deux directions dans les requêtes."
|
||||
"navigables dans les deux directions dans les requêtes. "
|
||||
|
|
|
@ -5,7 +5,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"POT-Creation-Date: 2010-02-04T04:51:21\n"
|
||||
"PO-Revision-Date: 2009-07-14 19:55+0000\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
|
@ -14,55 +14,36 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Tag: title
|
||||
#: bibliography.xml:27
|
||||
#, no-c-format
|
||||
msgid "References"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: bibliography.xml:31
|
||||
#, no-c-format
|
||||
msgid "Patterns of Enterprise Application Architecture"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: bibliography.xml:34
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Martin</firstname> <surname>Fowler</surname>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: holder
|
||||
#: bibliography.xml:41
|
||||
#, no-c-format
|
||||
msgid "Pearson Education, Inc."
|
||||
msgid "Martin"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: bibliography.xml:50
|
||||
#, no-c-format
|
||||
msgid "Java Persistence with Hibernate"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: subtitle
|
||||
#: bibliography.xml:51
|
||||
#, no-c-format
|
||||
msgid "Second Edition of Hibernate in Action"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: bibliography.xml:57
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
|
||||
msgid "Christian"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: bibliography.xml:61
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Gavin</firstname> <surname>King</surname>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: holder
|
||||
#: bibliography.xml:68
|
||||
#, no-c-format
|
||||
msgid "Manning Publications Co."
|
||||
msgid "Gavin"
|
||||
msgstr ""
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,24 +1,28 @@
|
|||
# translation of events.po to French
|
||||
# Myriam Malga <mmalga@redhat.com>, 2007.
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007.
|
||||
# Corina Roe <croe@redhat.com>, 2009.
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: events\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2010-02-10T07:25:34\n"
|
||||
"PO-Revision-Date: 2009-11-11 09:16+1000\n"
|
||||
"Last-Translator: Corina Roe <croe@redhat.com>\n"
|
||||
"Language-Team: French <i18@redhat.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: events.xml:29
|
||||
#, no-c-format
|
||||
msgid "Interceptors and events"
|
||||
msgstr "Les intercepteurs et les événements"
|
||||
msgstr "Intercepteurs et événements"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:31
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"It is useful for the application to react to certain events that occur "
|
||||
"inside Hibernate. This allows for the implementation of generic "
|
||||
|
@ -26,18 +30,15 @@ msgid ""
|
|||
msgstr ""
|
||||
"Il est souvent utile pour l'application de réagir à certains événements qui "
|
||||
"surviennent dans Hibernate. Cela autorise l'implémentation de certaines "
|
||||
"sortes de fonctionnalités génériques, et d'extensions de fonctionnalités "
|
||||
"d'Hibernate."
|
||||
"fonctionnalités génériques, et l'extension de fonctionnalités d'Hibernate."
|
||||
|
||||
#. Tag: title
|
||||
#: events.xml:38
|
||||
#, no-c-format
|
||||
msgid "Interceptors"
|
||||
msgstr "Intercepteurs"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:40
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>Interceptor</literal> interface provides callbacks from the "
|
||||
"session to the application, allowing the application to inspect and/or "
|
||||
|
@ -50,145 +51,46 @@ msgid ""
|
|||
"literal> is updated."
|
||||
msgstr ""
|
||||
"L'interface <literal>Interceptor</literal> fournit des \"callbacks\" de la "
|
||||
"session vers l'application et permettent à l'application de consulter et/ou "
|
||||
"de manipuler des propriétés d'un objet persistant avant qu'il soit "
|
||||
"sauvegardé, mis à jour, supprimé ou chargé. Une utilisation possible de "
|
||||
"cette fonctionnalité est de tracer l'accès à l'information. Par exemple, "
|
||||
"session vers l'application permettant à l'application de consulter et/ou de "
|
||||
"manipuler des propriétés d'un objet persistant avant qu'il soit sauvegardé, "
|
||||
"mis à jour, supprimé ou chargé. Une utilisation possible de cette "
|
||||
"fonctionnalité est de tracer l'accès à l'information. Par exemple, "
|
||||
"l'<literal>Interceptor</literal> suivant positionne "
|
||||
"<literal>createTimestamp</literal> quand un <literal>Auditable</literal> est "
|
||||
"créé et met à jour la propriété <literal>lastUpdateTimestamp</literal> quand "
|
||||
"un <literal>Auditable</literal> est mis à jour."
|
||||
"un <literal>Auditable</literal> est mis à jour. "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:51
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can either implement <literal>Interceptor</literal> directly or extend "
|
||||
"<literal>EmptyInterceptor</literal>."
|
||||
msgstr ""
|
||||
"Vous pouvez soit implémenter <literal>Interceptor</literal> directement ou "
|
||||
"(mieux) étendre <literal>EmptyInterceptor</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:56
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[package org.hibernate.test;\n"
|
||||
"\n"
|
||||
"import java.io.Serializable;\n"
|
||||
"import java.util.Date;\n"
|
||||
"import java.util.Iterator;\n"
|
||||
"\n"
|
||||
"import org.hibernate.EmptyInterceptor;\n"
|
||||
"import org.hibernate.Transaction;\n"
|
||||
"import org.hibernate.type.Type;\n"
|
||||
"\n"
|
||||
"public class AuditInterceptor extends EmptyInterceptor {\n"
|
||||
"\n"
|
||||
" private int updates;\n"
|
||||
" private int creates;\n"
|
||||
" private int loads;\n"
|
||||
"\n"
|
||||
" public void onDelete(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] state,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
" // do nothing\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public boolean onFlushDirty(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] currentState,\n"
|
||||
" Object[] previousState,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
"\n"
|
||||
" if ( entity instanceof Auditable ) {\n"
|
||||
" updates++;\n"
|
||||
" for ( int i=0; i < propertyNames.length; i++ ) {\n"
|
||||
" if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) {\n"
|
||||
" currentState[i] = new Date();\n"
|
||||
" return true;\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public boolean onLoad(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] state,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
" if ( entity instanceof Auditable ) {\n"
|
||||
" loads++;\n"
|
||||
" }\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public boolean onSave(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] state,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
"\n"
|
||||
" if ( entity instanceof Auditable ) {\n"
|
||||
" creates++;\n"
|
||||
" for ( int i=0; i<propertyNames.length; i++ ) {\n"
|
||||
" if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
|
||||
" state[i] = new Date();\n"
|
||||
" return true;\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public void afterTransactionCompletion(Transaction tx) {\n"
|
||||
" if ( tx.wasCommitted() ) {\n"
|
||||
" System.out.println(\"Creations: \" + creates + \", Updates: \" + "
|
||||
"updates, \"Loads: \" + loads);\n"
|
||||
" }\n"
|
||||
" updates=0;\n"
|
||||
" creates=0;\n"
|
||||
" loads=0;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"(mieux) étendre <literal>EmptyInterceptor</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:58
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"There are two kinds of inteceptors: <literal>Session</literal>-scoped and "
|
||||
"<literal>SessionFactory</literal>-scoped."
|
||||
msgstr ""
|
||||
"Interceptors come in two flavors: <literal>Session</literal>-scoped and "
|
||||
"<literal>SessionFactory</literal>-scoped."
|
||||
"Il y a deux types d'intercepteurs : lié à la <literal>Session</literal> et "
|
||||
"lié à la <literal>SessionFactory</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:63
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A <literal>Session</literal>-scoped interceptor is specified when a session "
|
||||
"is opened using one of the overloaded SessionFactory.openSession() methods "
|
||||
"accepting an <literal>Interceptor</literal>."
|
||||
msgstr ""
|
||||
"A <literal>Session</literal>-scoped interceptor is specified when a session "
|
||||
"is opened using one of the overloaded SessionFactory.openSession() methods "
|
||||
"accepting an <literal>Interceptor</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:69
|
||||
#, no-c-format
|
||||
msgid "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
|
||||
msgstr ""
|
||||
"Un intercepteur lié à la <literal>Session</literal> est défini lorsqu'une "
|
||||
"session est ouverte via l'invocation des méthodes surchargées SessionFactory."
|
||||
"openSession() acceptant un <literal>Interceptor</literal> (comme argument)."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:71
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A <literal>SessionFactory</literal>-scoped interceptor is registered with "
|
||||
"the <literal>Configuration</literal> object prior to building the "
|
||||
|
@ -199,31 +101,24 @@ msgid ""
|
|||
"Ensure that you do not store session-specific states, since multiple "
|
||||
"sessions will use this interceptor potentially concurrently."
|
||||
msgstr ""
|
||||
"A <literal>SessionFactory</literal>-scoped interceptor is registered with "
|
||||
"the <literal>Configuration</literal> object prior to building the "
|
||||
"<literal>SessionFactory</literal>. In this case, the supplied interceptor "
|
||||
"will be applied to all sessions opened from that <literal>SessionFactory</"
|
||||
"literal>; this is true unless a session is opened explicitly specifying the "
|
||||
"interceptor to use. <literal>SessionFactory</literal>-scoped interceptors "
|
||||
"must be thread safe, taking care to not store session-specific state since "
|
||||
"multiple sessions will use this interceptor (potentially) concurrently."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:80
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
|
||||
msgstr ""
|
||||
"Un intercepteur lié à <literal>SessionFactory</literal> est enregistré avec "
|
||||
"l'objet <literal>Configuration</literal> avant la construction de la "
|
||||
"<literal>SessionFactory</literal>. Dans ce cas, les intercepteurs fournis "
|
||||
"seront appliqués à toutes les sessions ouvertes pour cette "
|
||||
"<literal>SessionFactory</literal>; ceci est vrai à moins que la session ne "
|
||||
"soit ouverte en spécifiant l'intercepteur à utiliser. Les intercepteurs liés "
|
||||
"à la <literal>SessionFactory</literal> doivent être thread safe, en faisant "
|
||||
"attention à ne pas stocker des états spécifiques de la session puisque "
|
||||
"plusieurs sessions peuvent utiliser cet intercepteur (potentiellement) de "
|
||||
"manière concurrente. "
|
||||
|
||||
#. Tag: title
|
||||
#: events.xml:85
|
||||
#, no-c-format
|
||||
msgid "Event system"
|
||||
msgstr "Système d'événements"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:87
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you have to react to particular events in your persistence layer, you can "
|
||||
"also use the Hibernate3 <emphasis>event</emphasis> architecture. The event "
|
||||
|
@ -231,12 +126,11 @@ msgid ""
|
|||
msgstr ""
|
||||
"Si vous devez réagir à des événements particuliers dans votre couche de "
|
||||
"persistance, vous pouvez aussi utiliser l'architecture "
|
||||
"d'<emphasis>événements</emphasis> d'Hibernate3. Le système d'événements peut "
|
||||
"être utilisé en supplément ou en remplacement des interceptors."
|
||||
"d'<emphasis>événements</emphasis> de Hibernate3. Le système d'événements "
|
||||
"peut être utilisé en supplément ou en remplacement des interceptors. "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:93
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"All the methods of the <literal>Session</literal> interface correlate to an "
|
||||
"event. You have a <literal>LoadEvent</literal>, a <literal>FlushEvent</"
|
||||
|
@ -256,7 +150,7 @@ msgstr ""
|
|||
"Essentiellement toutes les méthodes de l'interface <literal>Session</"
|
||||
"literal> sont corrélées à un événement. Vous avez un <literal>LoadEvent</"
|
||||
"literal>, un <literal>FlushEvent</literal>, etc (consultez la DTD du fichier "
|
||||
"de configuration XML ou le paquet <literal>org.hibernate.event</literal> "
|
||||
"de configuration XML ou le paquetage <literal>org.hibernate.event</literal> "
|
||||
"pour avoir la liste complète des types d'événement définis). Quand une "
|
||||
"requête est faite à partir d'une de ces méthodes, la <literal>Session</"
|
||||
"literal> Hibernate génère un événement approprié et le passe au listener "
|
||||
|
@ -267,22 +161,20 @@ msgstr ""
|
|||
"l'implémentation de l'interface <literal>LoadEventListener</literal> "
|
||||
"déclarée), dans quel cas leur implémentation devrait être responsable du "
|
||||
"traitement des requêtes <literal>load()</literal> faites par la "
|
||||
"<literal>Session</literal>."
|
||||
"<literal>Session</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:108
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The listeners should be considered singletons. This means they are shared "
|
||||
"between requests, and should not save any state as instance variables."
|
||||
msgstr ""
|
||||
"Les listeners devraient effectivement être considérés comme des singletons ; "
|
||||
"dans le sens où ils sont partagés entre des requêtes, et donc ne devraient "
|
||||
"pas sauvegarder des états de variables d'instance."
|
||||
"pas sauvegarder des états en tant que variables d'instance. "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:113
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A custom listener implements the appropriate interface for the event it "
|
||||
"wants to process and/or extend one of the convenience base classes (or even "
|
||||
|
@ -298,72 +190,27 @@ msgstr ""
|
|||
"même l'événement prêt à l'emploi utilisé par Hibernate comme ceux déclarés "
|
||||
"non-finaux à cette intention). Les listeners personnalisés peuvent être soit "
|
||||
"inscrits par programmation à travers l'objet <literal>Configuration</"
|
||||
"literal>, ou spécifiés la configuration XML d'Hibernate (la configuration "
|
||||
"déclarative à travers le fichier de propriétés n'est pas supportée). Voici "
|
||||
"un exemple de listener personnalisé pour l'événement de chargement :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:123
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
|
||||
" // this is the single method defined by the LoadEventListener interface\n"
|
||||
" public void onLoad(LoadEvent event, LoadEventListener.LoadType "
|
||||
"loadType)\n"
|
||||
" throws HibernateException {\n"
|
||||
" if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
|
||||
"getEntityId() ) ) {\n"
|
||||
" throw MySecurityException(\"Unauthorized access\");\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"literal>, ou spécifiés dans la configuration XML de Hibernate (la "
|
||||
"configuration déclarative à travers le fichier de propriétés n'est pas "
|
||||
"supportée). Voici un exemple de listener personnalisé pour l'événement de "
|
||||
"chargement :"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:125
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You also need a configuration entry telling Hibernate to use the listener in "
|
||||
"addition to the default listener:"
|
||||
msgstr ""
|
||||
"Vous avez aussi besoin d'une entrée de configuration disant à Hibernate "
|
||||
"Vous avez aussi besoin d'une entrée de configuration indiquant à Hibernate "
|
||||
"d'utiliser ce listener en plus du listener par défaut :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:130
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<hibernate-configuration>\n"
|
||||
" <session-factory>\n"
|
||||
" ...\n"
|
||||
" <event type=\"load\">\n"
|
||||
" <listener class=\"com.eg.MyLoadListener\"/>\n"
|
||||
" <listener class=\"org.hibernate.event.def."
|
||||
"DefaultLoadEventListener\"/>\n"
|
||||
" </event>\n"
|
||||
" </session-factory>\n"
|
||||
"</hibernate-configuration>]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:132
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Instead, you can register it programmatically:"
|
||||
msgstr "Vous pouvez aussi l'inscrire par programmation :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:136
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Configuration cfg = new Configuration();\n"
|
||||
"LoadEventListener[] stack = { new MyLoadListener(), new "
|
||||
"DefaultLoadEventListener() };\n"
|
||||
"cfg.EventListeners().setLoadEventListeners(stack);]]>"
|
||||
msgstr ""
|
||||
msgstr "Vous pouvez aussi l'inscrire par programmation : "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:138
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Listeners registered declaratively cannot share instances. If the same class "
|
||||
"name is used in multiple <literal><listener/></literal> elements, each "
|
||||
|
@ -373,14 +220,13 @@ msgid ""
|
|||
msgstr ""
|
||||
"Les listeners inscrits déclarativement ne peuvent pas partager d'instances. "
|
||||
"Si le même nom de classe est utilisée dans plusieurs éléments <literal><"
|
||||
"listener/></literal>, chaque référence sera une instance distincte de "
|
||||
"cette classe. Si vous avez besoin de la faculté de partager des instances de "
|
||||
"listener entre plusieurs types de listener, vous devez utiliser l'approche "
|
||||
"d'inscription par programmation."
|
||||
"listener/></literal>, chaque référence résultera en une instance "
|
||||
"distincte de cette classe. Si vous avez besoin de la faculté de partager des "
|
||||
"instances de listener entre plusieurs types de listener, vous devez utiliser "
|
||||
"l'approche d'inscription par programmation. "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:146
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Why implement an interface and define the specific type during "
|
||||
"configuration? A listener implementation could implement multiple event "
|
||||
|
@ -390,19 +236,17 @@ msgid ""
|
|||
msgstr ""
|
||||
"Pourquoi implémenter une interface et définir le type spécifique durant la "
|
||||
"configuration ? Une implémentation de listener pourrait implémenter "
|
||||
"plusieurs interfaces de listener d'événements. Avoir en plus le type défini "
|
||||
"durant l'inscription rend plus facile l'activation ou la désactivation "
|
||||
"pendant la configuration."
|
||||
"plusieurs interfaces de listener d'événements. Par ailleurs, le fait de "
|
||||
"définir le type durant l'inscription, rend l'activation ou la désactivation "
|
||||
"plus facile au moment de la configuration. "
|
||||
|
||||
#. Tag: title
|
||||
#: events.xml:156
|
||||
#, no-c-format
|
||||
msgid "Hibernate declarative security"
|
||||
msgstr "Sécurité déclarative d'Hibernate"
|
||||
msgstr "Sécurité déclarative de Hibernate "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:157
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Usually, declarative security in Hibernate applications is managed in a "
|
||||
"session facade layer. Hibernate3 allows certain actions to be permissioned "
|
||||
|
@ -413,35 +257,19 @@ msgstr ""
|
|||
"gérée dans la couche de session. Maintenant, Hibernate3 permet à certaines "
|
||||
"actions d'être approuvées via JACC, et autorisées via JAAS. Cette "
|
||||
"fonctionnalité optionnelle est construite au dessus de l'architecture "
|
||||
"d'événements."
|
||||
"d'événements. "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:163
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"First, you must configure the appropriate event listeners, to enable the use "
|
||||
"of JAAS authorization."
|
||||
msgstr ""
|
||||
"D'abord, vous devez configurer les listeners d'événements appropriés pour "
|
||||
"permettre l'utilisation d'autorisations JAAS."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:168
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
|
||||
"JACCPreDeleteEventListener\"/>\n"
|
||||
"<listener type=\"pre-update\" class=\"org.hibernate.secure."
|
||||
"JACCPreUpdateEventListener\"/>\n"
|
||||
"<listener type=\"pre-insert\" class=\"org.hibernate.secure."
|
||||
"JACCPreInsertEventListener\"/>\n"
|
||||
"<listener type=\"pre-load\" class=\"org.hibernate.secure."
|
||||
"JACCPreLoadEventListener\"/>]]>"
|
||||
msgstr ""
|
||||
"permettre l'utilisation d'autorisations JAAS. "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:170
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Note that <literal><listener type=\"...\" class=\"...\"/></literal> is "
|
||||
"shorthand for <literal><event type=\"...\"><listener class=\"...\"/"
|
||||
|
@ -451,29 +279,288 @@ msgstr ""
|
|||
"Notez que <literal><listener type=\"...\" class=\"...\"/></literal> "
|
||||
"est juste un raccourci pour <literal><event type=\"...\"><listener "
|
||||
"class=\"...\"/></event></literal> quand il y a exactement un "
|
||||
"listener pour un type d'événement particulier."
|
||||
"listener pour un type d'événement particulier. "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:176
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Next, while still in <literal>hibernate.cfg.xml</literal>, bind the "
|
||||
"permissions to roles:"
|
||||
msgstr ""
|
||||
"Ensuite, toujours dans <literal>hibernate.cfg.xml</literal>, lier les "
|
||||
"permissions aux rôles :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:180
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,"
|
||||
"read\"/>\n"
|
||||
"<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
|
||||
msgstr ""
|
||||
"Ensuite, toujours dans <literal>hibernate.cfg.xml</literal>, liez les "
|
||||
"permissions aux rôles : "
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:182
|
||||
#, no-c-format
|
||||
msgid "The role names are the roles understood by your JACC provider."
|
||||
msgstr "Les noms de rôle sont les rôles compris par votre fournisseur JAAC."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[package org.hibernate.test;\n"
|
||||
#~ "\n"
|
||||
#~ "import java.io.Serializable;\n"
|
||||
#~ "import java.util.Date;\n"
|
||||
#~ "import java.util.Iterator;\n"
|
||||
#~ "\n"
|
||||
#~ "import org.hibernate.EmptyInterceptor;\n"
|
||||
#~ "import org.hibernate.Transaction;\n"
|
||||
#~ "import org.hibernate.type.Type;\n"
|
||||
#~ "\n"
|
||||
#~ "public class AuditInterceptor extends EmptyInterceptor {\n"
|
||||
#~ "\n"
|
||||
#~ " private int updates;\n"
|
||||
#~ " private int creates;\n"
|
||||
#~ " private int loads;\n"
|
||||
#~ "\n"
|
||||
#~ " public void onDelete(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] state,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ " // do nothing\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public boolean onFlushDirty(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] currentState,\n"
|
||||
#~ " Object[] previousState,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ "\n"
|
||||
#~ " if ( entity instanceof Auditable ) {\n"
|
||||
#~ " updates++;\n"
|
||||
#~ " for ( int i=0; i < propertyNames.length; i++ ) {\n"
|
||||
#~ " if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) "
|
||||
#~ "{\n"
|
||||
#~ " currentState[i] = new Date();\n"
|
||||
#~ " return true;\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " return false;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public boolean onLoad(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] state,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ " if ( entity instanceof Auditable ) {\n"
|
||||
#~ " loads++;\n"
|
||||
#~ " }\n"
|
||||
#~ " return false;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public boolean onSave(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] state,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ "\n"
|
||||
#~ " if ( entity instanceof Auditable ) {\n"
|
||||
#~ " creates++;\n"
|
||||
#~ " for ( int i=0; i<propertyNames.length; i++ ) {\n"
|
||||
#~ " if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
|
||||
#~ " state[i] = new Date();\n"
|
||||
#~ " return true;\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " return false;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public void afterTransactionCompletion(Transaction tx) {\n"
|
||||
#~ " if ( tx.wasCommitted() ) {\n"
|
||||
#~ " System.out.println(\"Creations: \" + creates + \", Updates: "
|
||||
#~ "\" + updates, \"Loads: \" + loads);\n"
|
||||
#~ " }\n"
|
||||
#~ " updates=0;\n"
|
||||
#~ " creates=0;\n"
|
||||
#~ " loads=0;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ "}]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[package org.hibernate.test;\n"
|
||||
#~ "\n"
|
||||
#~ "import java.io.Serializable;\n"
|
||||
#~ "import java.util.Date;\n"
|
||||
#~ "import java.util.Iterator;\n"
|
||||
#~ "\n"
|
||||
#~ "import org.hibernate.EmptyInterceptor;\n"
|
||||
#~ "import org.hibernate.Transaction;\n"
|
||||
#~ "import org.hibernate.type.Type;\n"
|
||||
#~ "\n"
|
||||
#~ "public class AuditInterceptor extends EmptyInterceptor {\n"
|
||||
#~ "\n"
|
||||
#~ " private int updates;\n"
|
||||
#~ " private int creates;\n"
|
||||
#~ " private int loads;\n"
|
||||
#~ "\n"
|
||||
#~ " public void onDelete(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] state,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ " // do nothing\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public boolean onFlushDirty(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] currentState,\n"
|
||||
#~ " Object[] previousState,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ "\n"
|
||||
#~ " if ( entity instanceof Auditable ) {\n"
|
||||
#~ " updates++;\n"
|
||||
#~ " for ( int i=0; i < propertyNames.length; i++ ) {\n"
|
||||
#~ " if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) "
|
||||
#~ "{\n"
|
||||
#~ " currentState[i] = new Date();\n"
|
||||
#~ " return true;\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " return false;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public boolean onLoad(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] state,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ " if ( entity instanceof Auditable ) {\n"
|
||||
#~ " loads++;\n"
|
||||
#~ " }\n"
|
||||
#~ " return false;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public boolean onSave(Object entity,\n"
|
||||
#~ " Serializable id,\n"
|
||||
#~ " Object[] state,\n"
|
||||
#~ " String[] propertyNames,\n"
|
||||
#~ " Type[] types) {\n"
|
||||
#~ "\n"
|
||||
#~ " if ( entity instanceof Auditable ) {\n"
|
||||
#~ " creates++;\n"
|
||||
#~ " for ( int i=0; i<propertyNames.length; i++ ) {\n"
|
||||
#~ " if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
|
||||
#~ " state[i] = new Date();\n"
|
||||
#~ " return true;\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ " return false;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ " public void afterTransactionCompletion(Transaction tx) {\n"
|
||||
#~ " if ( tx.wasCommitted() ) {\n"
|
||||
#~ " System.out.println(\"Creations: \" + creates + \", Updates: "
|
||||
#~ "\" + updates, \"Loads: \" + loads);\n"
|
||||
#~ " }\n"
|
||||
#~ " updates=0;\n"
|
||||
#~ " creates=0;\n"
|
||||
#~ " loads=0;\n"
|
||||
#~ " }\n"
|
||||
#~ "\n"
|
||||
#~ "}]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
|
||||
#~ " // this is the single method defined by the LoadEventListener "
|
||||
#~ "interface\n"
|
||||
#~ " public void onLoad(LoadEvent event, LoadEventListener.LoadType "
|
||||
#~ "loadType)\n"
|
||||
#~ " throws HibernateException {\n"
|
||||
#~ " if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
|
||||
#~ "getEntityId() ) ) {\n"
|
||||
#~ " throw MySecurityException(\"Unauthorized access\");\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ "}]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
|
||||
#~ " // this is the single method defined by the LoadEventListener "
|
||||
#~ "interface\n"
|
||||
#~ " public void onLoad(LoadEvent event, LoadEventListener.LoadType "
|
||||
#~ "loadType)\n"
|
||||
#~ " throws HibernateException {\n"
|
||||
#~ " if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
|
||||
#~ "getEntityId() ) ) {\n"
|
||||
#~ " throw MySecurityException(\"Unauthorized access\");\n"
|
||||
#~ " }\n"
|
||||
#~ " }\n"
|
||||
#~ "}]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<hibernate-configuration>\n"
|
||||
#~ " <session-factory>\n"
|
||||
#~ " ...\n"
|
||||
#~ " <event type=\"load\">\n"
|
||||
#~ " <listener class=\"com.eg.MyLoadListener\"/>\n"
|
||||
#~ " <listener class=\"org.hibernate.event.def."
|
||||
#~ "DefaultLoadEventListener\"/>\n"
|
||||
#~ " </event>\n"
|
||||
#~ " </session-factory>\n"
|
||||
#~ "</hibernate-configuration>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<hibernate-configuration>\n"
|
||||
#~ " <session-factory>\n"
|
||||
#~ " ...\n"
|
||||
#~ " <event type=\"load\">\n"
|
||||
#~ " <listener class=\"com.eg.MyLoadListener\"/>\n"
|
||||
#~ " <listener class=\"org.hibernate.event.def."
|
||||
#~ "DefaultLoadEventListener\"/>\n"
|
||||
#~ " </event>\n"
|
||||
#~ " </session-factory>\n"
|
||||
#~ "</hibernate-configuration>]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Configuration cfg = new Configuration();\n"
|
||||
#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
|
||||
#~ "DefaultLoadEventListener() };\n"
|
||||
#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[Configuration cfg = new Configuration();\n"
|
||||
#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
|
||||
#~ "DefaultLoadEventListener() };\n"
|
||||
#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreDeleteEventListener\"/>\n"
|
||||
#~ "<listener type=\"pre-update\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreUpdateEventListener\"/>\n"
|
||||
#~ "<listener type=\"pre-insert\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreInsertEventListener\"/>\n"
|
||||
#~ "<listener type=\"pre-load\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreLoadEventListener\"/>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreDeleteEventListener\"/>\n"
|
||||
#~ "<listener type=\"pre-update\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreUpdateEventListener\"/>\n"
|
||||
#~ "<listener type=\"pre-insert\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreInsertEventListener\"/>\n"
|
||||
#~ "<listener type=\"pre-load\" class=\"org.hibernate.secure."
|
||||
#~ "JACCPreLoadEventListener\"/>]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
|
||||
#~ "update,read\"/>\n"
|
||||
#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
|
||||
#~ "update,read\"/>\n"
|
||||
#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,24 +1,28 @@
|
|||
# translation of example_parentchild.po to French
|
||||
# Myriam Malga <mmalga@redhat.com>, 2007.
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007.
|
||||
# Corina Roe <croe@redhat.com>, 2009, 2010.
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: example_parentchild\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-08-17 20:22+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2010-02-10T07:25:35\n"
|
||||
"PO-Revision-Date: 2010-01-05 09:05+1000\n"
|
||||
"Last-Translator: Corina Roe <croe@redhat.com>\n"
|
||||
"Language-Team: French <i18@redhat.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:29
|
||||
#, no-c-format
|
||||
msgid "Example: Parent/Child"
|
||||
msgstr "Exemple : Père/Fils"
|
||||
msgstr "Exemple : père/fils"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:31
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"One of the first things that new users want to do with Hibernate is to model "
|
||||
"a parent/child type relationship. There are two different approaches to "
|
||||
|
@ -42,46 +46,41 @@ msgstr ""
|
|||
"literal> comme des classes entités liées par une association <literal><"
|
||||
"one-to-many></literal> du <literal>Père</literal> vers le <literal>Fils</"
|
||||
"literal> (l'autre approche est de déclarer le <literal>Fils</literal> comme "
|
||||
"un <literal><composite-element></literal>). Il est évident que le sens "
|
||||
"de l'association un vers plusieurs (dans Hibernate) est bien moins proche du "
|
||||
"sens habituel d'une relation père/fils que ne l'est celui d'un élément "
|
||||
"cmposite. Nous allons vous expliquer comment utiliser une association "
|
||||
"<emphasis>un vers plusieurs bidirectionnelle avec cascade</emphasis> afin de "
|
||||
"modéliser efficacement et élégamment une relation père/fils, ce n'est "
|
||||
"vraiment pas difficile !"
|
||||
"un <literal><composite-element></literal>). On constate que la "
|
||||
"sémantique par défaut de l'association un-à-plusieurs (dans Hibernate) est "
|
||||
"bien moins proche du sens habituel d'une relation père/fils que celle d'un "
|
||||
"mappage d'élément composite. Nous allons vous expliquer comment utiliser une "
|
||||
"association <emphasis>un-à-plusieurs bidirectionnelle avec cascade</"
|
||||
"emphasis> afin de modéliser efficacement et élégamment une relation père/"
|
||||
"fils."
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:45
|
||||
#, no-c-format
|
||||
msgid "A note about collections"
|
||||
msgstr "Une note à propos des collections"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:47
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate collections are considered to be a logical part of their owning "
|
||||
"entity and not of the contained entities. Be aware that this is a critical "
|
||||
"distinction that has the following consequences:"
|
||||
msgstr ""
|
||||
"Les collections Hibernate sont considérées comme étant une partie logique de "
|
||||
"l'entité dans laquelle elles sont contenues ; jamais des entités qu'elle "
|
||||
"contient. C'est une distinction crutiale ! Les conséquences sont les "
|
||||
"suivantes :"
|
||||
"leur entité propriétaire, jamais des entités qu'elle contient. C'est une "
|
||||
"distinction cruciale ! Les conséquences sont les suivantes : "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:54
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"When you remove/add an object from/to a collection, the version number of "
|
||||
"the collection owner is incremented."
|
||||
msgstr ""
|
||||
"Quand nous ajoutons / retirons un objet d'une collection, le numéro de "
|
||||
"version du propriétaire de la collection est incrémenté."
|
||||
"version du propriétaire de la collection est incrémenté. "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:60
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If an object that was removed from a collection is an instance of a value "
|
||||
"type (e.g. a composite element), that object will cease to be persistent and "
|
||||
|
@ -90,14 +89,13 @@ msgid ""
|
|||
"persistent."
|
||||
msgstr ""
|
||||
"Si un objet qui a été enlevé d'une collection est une instance de type "
|
||||
"valeur (ex : élément composite), cet objet cessera d'être persistant et son "
|
||||
"état sera complètement effacé de la base de données. Par ailleurs, ajouter "
|
||||
"une instance de type valeur dans une collection aura pour conséquence que "
|
||||
"son état sera immédiatement persistant."
|
||||
"valeur (par ex : élément composite), cet objet cessera d'être persistant et "
|
||||
"son état sera complètement effacé de la base de données. Par ailleurs, "
|
||||
"ajouter une instance de type valeur dans une collection entraînera que son "
|
||||
"état sera immédiatement persistant. "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:68
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Conversely, 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 behavior is "
|
||||
|
@ -105,16 +103,15 @@ msgid ""
|
|||
"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 ""
|
||||
"Si une entité est enlevée d'une collection (association un-vers-plusieurs ou "
|
||||
"plusieurs-vers-plusieurs), par défaut, elle ne sera pas effacée. Ce "
|
||||
"comportement est complètement logique - une modification de l'un des états "
|
||||
"internes d'une entité ne doit pas causer la disparition de l'entité "
|
||||
"associée ! De même, l'ajout d'une entité dans une collection n'engendre pas, "
|
||||
"par défaut, la persistance de cette entité."
|
||||
"Si une entité est enlevée d'une collection (association un-à-plusieurs ou "
|
||||
"plusieurs-à-plusieurs), elle ne sera pas effacée par défaut. Ce comportement "
|
||||
"est complètement logique - une modification de l'un des états internes d'une "
|
||||
"autre entité ne doit pas causer la disparition de l'entité associée. De "
|
||||
"même, l'ajout d'une entité dans une collection n'engendre pas, par défaut, "
|
||||
"la persistance de cette entité."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:78
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Adding an entity to a collection, by default, merely creates a link between "
|
||||
"the two entities. Removing the entity will remove the link. This is "
|
||||
|
@ -123,62 +120,36 @@ msgid ""
|
|||
"bound to the life cycle of the parent."
|
||||
msgstr ""
|
||||
"Le comportement par défaut est donc que l'ajout d'une entité dans une "
|
||||
"collection créé simplement le lien entre les deux entités, et qu'effacer une "
|
||||
"entité supprime ce lien. C'est le comportement le plus approprié dans la "
|
||||
"collection crée simplement le lien entre les deux entités, alors qu'effacer "
|
||||
"une entité supprime ce lien. C'est le comportement le plus approprié dans la "
|
||||
"plupart des cas. Ce comportement n'est cependant pas approprié lorsque la "
|
||||
"vie du fils est liée au cycle de vie du père."
|
||||
"vie du fils est liée au cycle de vie du père. "
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:88
|
||||
#, no-c-format
|
||||
msgid "Bidirectional one-to-many"
|
||||
msgstr "un-vers-plusieurs bidirectionnel"
|
||||
msgstr "Un-à-plusieurs bidirectionnel"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:90
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Suppose we start with a simple <literal><one-to-many></literal> "
|
||||
"association from <literal>Parent</literal> to <literal>Child</literal>."
|
||||
msgstr ""
|
||||
"Supposons que nous ayons une simple association <literal><one-to-many>"
|
||||
"</literal> de <literal>Parent</literal> vers <literal>Child</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:95
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"</literal> de <literal>Parent</literal> à <literal>Child</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:97
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "If we were to execute the following code:"
|
||||
msgstr "Si nous executions le code suivant"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:101
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = .....;\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.getChildren().add(c);\n"
|
||||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
msgstr "Si nous exécutions le code suivant :"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:103
|
||||
#, no-c-format
|
||||
msgid "Hibernate would issue two SQL statements:"
|
||||
msgstr "Hibernate exécuterait deux ordres SQL:"
|
||||
msgstr "Hibernate exécuterait deux ordres SQL :"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:109
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
|
||||
|
@ -187,7 +158,6 @@ msgstr ""
|
|||
"literal>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:112
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"an <literal>UPDATE</literal> to create the link from <literal>p</literal> to "
|
||||
|
@ -197,38 +167,25 @@ msgstr ""
|
|||
"<literal>c</literal>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:119
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is not only inefficient, but also violates any <literal>NOT NULL</"
|
||||
"literal> constraint on the <literal>parent_id</literal> column. You can fix "
|
||||
"the nullability constraint violation by specifying <literal>not-null=\"true"
|
||||
"\"</literal> in the collection mapping:"
|
||||
msgstr ""
|
||||
"Ceci est non seuleument inefficace, mais viole aussi toute contrainte "
|
||||
"Ceci est non seulement inefficace, mais viole aussi toute contrainte "
|
||||
"<literal>NOT NULL</literal> sur la colonne <literal>parent_id</literal>. "
|
||||
"Nous pouvons réparer la contrainte de nullité en spécifiant <literal>not-"
|
||||
"null=\"true\"</literal> dans le mapping de la collection :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:125
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\">\n"
|
||||
" <key column=\"parent_id\" not-null=\"true\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"null=\"true\"</literal> dans le mappage de la collection : "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:127
|
||||
#, no-c-format
|
||||
msgid "However, this is not the recommended solution."
|
||||
msgstr "Cependant ce n'est pas la solution recommandée."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:130
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The underlying cause of this behavior is that the link (the foreign key "
|
||||
"<literal>parent_id</literal>) from <literal>p</literal> to <literal>c</"
|
||||
|
@ -240,30 +197,20 @@ msgstr ""
|
|||
"<literal>parent_id</literal>) de <literal>p</literal> vers <literal>c</"
|
||||
"literal> n'est pas considérée comme faisant partie de l'état de l'objet "
|
||||
"<literal>Child</literal> et n'est donc pas créé par l'<literal>INSERT</"
|
||||
"literal>. La solution est donc que ce lien fasse partie du mapping de "
|
||||
"<literal>Child</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:137
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/"
|
||||
">]]>"
|
||||
msgstr ""
|
||||
"literal>. La solution est donc que ce lien fasse partie du mappage de "
|
||||
"<literal>Child</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:139
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You also need to add the <literal>parent</literal> property to the "
|
||||
"<literal>Child</literal> class."
|
||||
msgstr ""
|
||||
"(Nous avons aussi besoin d'ajouter la propriété <literal>parent</literal> "
|
||||
"dans la classe <literal>Child</literal>)."
|
||||
"Nous avons aussi besoin d'ajouter la propriété <literal>parent</literal> "
|
||||
"dans la classe <literal>Child</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:143
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Now that the <literal>Child</literal> entity is managing the state of the "
|
||||
"link, we tell the collection not to update the link. We use the "
|
||||
|
@ -271,164 +218,71 @@ msgid ""
|
|||
msgstr ""
|
||||
"Maintenant que l'état du lien est géré par l'entité <literal>Child</"
|
||||
"literal>, nous spécifions à la collection de ne pas mettre à jour le lien. "
|
||||
"Nous utilisons l'attribut <literal>inverse</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:148
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"Nous utilisons l'attribut <literal>inverse</literal> pour faire cela :"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:150
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "The following code would be used to add a new <literal>Child</literal>:"
|
||||
msgstr ""
|
||||
"Le code suivant serait utilisé pour ajouter un nouveau <literal>Child</"
|
||||
"literal>"
|
||||
"literal> :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:154
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"c.setParent(p);\n"
|
||||
"p.getChildren().add(c);\n"
|
||||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:156
|
||||
#, fuzzy, no-c-format
|
||||
msgid "Only one SQL <literal>INSERT</literal> would now be issued."
|
||||
msgstr "Maintenant, seul un <literal>INSERT</literal> SQL est nécessaire !"
|
||||
msgstr "Maintenant, seul un SQL <literal>INSERT</literal> est nécessaire."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:160
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You could also create an <literal>addChild()</literal> method of "
|
||||
"<literal>Parent</literal>."
|
||||
msgstr ""
|
||||
"Pour alléger encore un peu les choses, nous devrions créer une méthode "
|
||||
"<literal>addChild()</literal> dans <literal>Parent</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:165
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[public void addChild(Child c) {\n"
|
||||
" c.setParent(this);\n"
|
||||
" children.add(c);\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"Pour alléger encore un peu les choses, nous créerons une méthode "
|
||||
"<literal>addChild()</literal> de <literal>Parent</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:167
|
||||
#, fuzzy, no-c-format
|
||||
msgid "The code to add a <literal>Child</literal> looks like this:"
|
||||
msgstr "Le code d'ajout d'un <literal>Child</literal> serait alors"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:171
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.addChild(c);\n"
|
||||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
msgid "The code to add a <literal>Child</literal> looks like this:"
|
||||
msgstr "Le code d'ajout d'un <literal>Child</literal> serait alors :"
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:176
|
||||
#, no-c-format
|
||||
msgid "Cascading life cycle"
|
||||
msgstr "Cycle de vie en cascade"
|
||||
msgstr "Cycle de vie en cascade "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:178
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can address the frustrations of the explicit call to <literal>save()</"
|
||||
"literal> by using cascades."
|
||||
msgstr ""
|
||||
"L'appel explicite de <literal>save()</literal> est un peu fastidieux. Nous "
|
||||
"pouvons simplifier cela en utilisant les cascades."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:183
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"pouvons simplifier cela en utilisant les cascades. "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:185
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "This simplifies the code above to:"
|
||||
msgstr "Simplifie le code précédent en"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:189
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.addChild(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
msgstr "Cela simplifie le code précédent en :"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:191
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Similarly, we do not need to iterate over the children when saving or "
|
||||
"deleting a <literal>Parent</literal>. The following removes <literal>p</"
|
||||
"literal> and all its children from the database."
|
||||
msgstr ""
|
||||
"De la même manière, nous n'avons pas à itérer sur les fils lorsque nous "
|
||||
"sauvons ou effacons un <literal>Parent</literal>. Le code suivant efface "
|
||||
"<literal>p</literal> et tous ses fils de la base de données."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:196
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"session.delete(p);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"sauvons ou effaçons un <literal>Parent</literal>. Le code suivant efface "
|
||||
"<literal>p</literal> et tous ses fils de la base de données. "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:198
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "However, the following code:"
|
||||
msgstr "Par contre, ce code"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:202
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = (Child) p.getChildren().iterator().next();\n"
|
||||
"p.getChildren().remove(c);\n"
|
||||
"c.setParent(null);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
msgstr "Par contre, ce code :"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:204
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"will not remove <literal>c</literal> from the database. In this case, it "
|
||||
"will only remove the link to <literal>p</literal> and cause a <literal>NOT "
|
||||
|
@ -439,22 +293,10 @@ msgstr ""
|
|||
"seulement le lien vers <literal>p</literal> (et causera une violation de "
|
||||
"contrainte <literal>NOT NULL</literal>, dans ce cas). Vous devez "
|
||||
"explicitement utiliser <literal>delete()</literal> sur <literal>Child</"
|
||||
"literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:210
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = (Child) p.getChildren().iterator().next();\n"
|
||||
"p.getChildren().remove(c);\n"
|
||||
"session.delete(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:212
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"In our case, a <literal>Child</literal> cannot exist without its parent. So "
|
||||
"if we remove a <literal>Child</literal> from the collection, we do want it "
|
||||
|
@ -462,24 +304,12 @@ msgid ""
|
|||
"\"</literal>."
|
||||
msgstr ""
|
||||
"Dans notre cas, un <literal>Child</literal> ne peut pas vraiment exister "
|
||||
"sans son père. Si nous effacons un <literal>Child</literal> de la "
|
||||
"sans son père. Si nous effaçons un <literal>Child</literal> de la "
|
||||
"collection, nous voulons vraiment qu'il soit effacé. Pour cela, nous devons "
|
||||
"utiliser <literal>cascade=\"all-delete-orphan\"</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:218
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-orphan"
|
||||
"\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"utiliser <literal>cascade=\"all-delete-orphan\"</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:220
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Even though the collection mapping specifies <literal>inverse=\"true\"</"
|
||||
"literal>, cascades are still processed by iterating the collection elements. "
|
||||
|
@ -487,21 +317,20 @@ msgid ""
|
|||
"it to the collection. It is not enough to simply call <literal>setParent()</"
|
||||
"literal>."
|
||||
msgstr ""
|
||||
"A noter : même si le mapping de la collection spécifie <literal>inverse="
|
||||
"À noter : même si le mappage de la collection spécifie <literal>inverse="
|
||||
"\"true\"</literal>, les cascades sont toujours assurées par l'itération sur "
|
||||
"les éléments de la collection. Donc, si vous avez besoin qu'un objet soit "
|
||||
"enregistré, effacé ou mis à jour par cascade, vous devez l'ajouter dans la "
|
||||
"colleciton. Il ne suffit pas d'appeler explicitement <literal>setParent()</"
|
||||
"collection. Il ne suffit pas d'appeler explicitement <literal>setParent()</"
|
||||
"literal>."
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:230
|
||||
#, no-c-format
|
||||
msgid "Cascades and <literal>unsaved-value</literal>"
|
||||
msgstr "Cascades et <literal>unsaved-value</literal>"
|
||||
msgstr ""
|
||||
"Cascades et <literal>unsaved-value</literal> (valeurs non sauvegardées)"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:232
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
|
||||
|
@ -514,50 +343,36 @@ msgid ""
|
|||
"literal> have generated identifier properties of type <literal>Long</"
|
||||
"literal>. Hibernate will use the identifier and version/timestamp property "
|
||||
"value to determine which of the children are new. (See <xref linkend="
|
||||
"\"objectstate-saveorupdate\"/>.) <emphasis>In Hibernate3, it is no longer "
|
||||
"\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer "
|
||||
"necessary to specify an <literal>unsaved-value</literal> explicitly.</"
|
||||
"emphasis>"
|
||||
msgstr ""
|
||||
"Supposons que nous ayons chargé un <literal>Parent</literal> dans une "
|
||||
"<literal>Session</literal>, que nous l'ayons ensuite modifié et que voulions "
|
||||
"persiter ces modifications dans une nouvelle session en appelant "
|
||||
"persister ces modifications dans une nouvelle session en appelant "
|
||||
"<literal>update()</literal>. Le <literal>Parent</literal> contiendra une "
|
||||
"collection de fils et, puisque la cascade est activée, Hibernate a besoin de "
|
||||
"savoir quels fils viennent d'être instanciés et quels fils proviennent de la "
|
||||
"base de données. Supposons aussi que <literal>Parent</literal> et "
|
||||
"<literal>Child</literal> ont tous deux des identifiants du type "
|
||||
"<literal>Long</literal>. Hibernate utilisera la propriété de l'identifiant "
|
||||
"et la propriété de la version/horodatage pour déterminer quels fils sont "
|
||||
"nouveaux (vous pouvez aussi utiliser la propriété version ou timestamp, voir "
|
||||
"<xref linkend=\"manipulatingdata-updating-detached\"/>). <emphasis>Dans "
|
||||
"Hibernate3, il n'est plus nécessaire de spécifier une <literal>unsaved-"
|
||||
"value</literal> explicitement.</emphasis>"
|
||||
"savoir quels fils viennent d'être instanciés et quels fils représentent des "
|
||||
"lignes existantes dans la base de données. Supposons aussi que "
|
||||
"<literal>Parent</literal> et <literal>Child</literal> ont tous deux des "
|
||||
"identifiants du type <literal>Long</literal>. Hibernate utilisera la "
|
||||
"propriété de l'identifiant et la propriété de la version/horodatage pour "
|
||||
"déterminer quels fils sont nouveaux (vous pouvez aussi utiliser la propriété "
|
||||
"version ou timestamp, consultez <xref linkend=\"objectstate-saveorupdate\" /"
|
||||
">.) <emphasis>Dans Hibernate3, il n'est plus nécessaire de spécifier une "
|
||||
"<literal>unsaved-value</literal> explicitement.</emphasis> "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:244
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The following code will update <literal>parent</literal> and <literal>child</"
|
||||
"literal> and insert <literal>newChild</literal>:"
|
||||
msgstr ""
|
||||
"Le code suivant mettra à jour <literal>parent</literal> et <literal>child</"
|
||||
"literal> et insérera <literal>newChild</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:249
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[//parent and child were both loaded in a previous session\n"
|
||||
"parent.addChild(child);\n"
|
||||
"Child newChild = new Child();\n"
|
||||
"parent.addChild(newChild);\n"
|
||||
"session.update(parent);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"literal> et insérera <literal>newChild</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:251
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This may be suitable for the case of a generated identifier, but what about "
|
||||
"assigned identifiers and composite identifiers? This is more difficult, "
|
||||
|
@ -569,22 +384,21 @@ msgid ""
|
|||
msgstr ""
|
||||
"Ceci est très bien pour des identifiants générés, mais qu'en est-il des "
|
||||
"identifiants assignés et des identifiants composés ? C'est plus difficile, "
|
||||
"puisqu'Hibernate ne peut pas utiliser la propriété de l'identifiant pour "
|
||||
"distinguer un objet nouvellement instancié (avec un identifiant assigné par "
|
||||
"l'utilisateur) d'un objet chargé dans une session précédente. Dans ce cas, "
|
||||
"Hibernate utilisera soit la propriété de version ou d'horodatage, soit "
|
||||
"effectuera vraiment une requête au cache de second niveau, soit, dans le "
|
||||
"pire des cas, à la base de données, pour voir si la ligne existe."
|
||||
"puisque Hibernate ne peut pas utiliser la propriété de l'identifiant pour "
|
||||
"distinguer entre un objet nouvellement instancié (avec un identifiant "
|
||||
"assigné par l'utilisateur) et un objet chargé dans une session précédente. "
|
||||
"Dans ce cas, Hibernate utilisera soit la propriété de version ou "
|
||||
"d'horodatage, soit effectuera vraiment une requête au cache de second "
|
||||
"niveau, soit, dans le pire des cas, à la base de données, pour voir si la "
|
||||
"ligne existe. "
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:263
|
||||
#, no-c-format
|
||||
msgid "Conclusion"
|
||||
msgstr "Conclusion"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:265
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The sections we have just covered can be a bit confusing. However, in "
|
||||
"practice, it all works out nicely. Most Hibernate applications use the "
|
||||
|
@ -593,11 +407,10 @@ msgstr ""
|
|||
"Il y a quelques principes à maîtriser dans ce chapitre et tout cela peut "
|
||||
"paraître déroutant la première fois. Cependant, dans la pratique, tout "
|
||||
"fonctionne parfaitement. La plupart des applications Hibernate utilisent le "
|
||||
"pattern père / fils."
|
||||
"modèle père / fils. "
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:270
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"We mentioned an alternative in the first paragraph. None of the above issues "
|
||||
"exist in the case of <literal><composite-element></literal> mappings, "
|
||||
|
@ -607,9 +420,9 @@ msgid ""
|
|||
"of any entity other than the unique parent."
|
||||
msgstr ""
|
||||
"Nous avons évoqué une alternative dans le premier paragraphe. Aucun des "
|
||||
"points traités précédemment n'existe dans le cas d'un mapping <literal><"
|
||||
"points traités précédemment n'existe dans le cas de mappings <literal><"
|
||||
"composite-element></literal> qui possède exactement la sémantique d'une "
|
||||
"relation père / fils. Malheureusement, il y a deux grandes limitations pour "
|
||||
"les classes éléments composites : les éléments composites ne peuvent "
|
||||
"les classes d'éléments composites : les éléments composites ne peuvent "
|
||||
"contenir de collections, et ils ne peuvent être les fils d'entités autres "
|
||||
"que l'unique parent."
|
||||
"que l'unique parent. "
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,44 +1,46 @@
|
|||
# translation of filters.po to French
|
||||
# Myriam Malga <mmalga@redhat.com>, 2007.
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007.
|
||||
# Corina Roe <croe@redhat.com>, 2009.
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: filters\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:56+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2010-02-10T07:25:35\n"
|
||||
"PO-Revision-Date: 2009-11-11 09:26+1000\n"
|
||||
"Last-Translator: Corina Roe <croe@redhat.com>\n"
|
||||
"Language-Team: French <i18@redhat.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: filters.xml:29
|
||||
#, no-c-format
|
||||
msgid "Filtering data"
|
||||
msgstr "Filtrer les données"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:31
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate3 provides an innovative new approach to handling data with "
|
||||
"\"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, "
|
||||
"named, parameterized filter that can be enabled or disabled for a particular "
|
||||
"Hibernate session."
|
||||
msgstr ""
|
||||
"Hibernate3 fournit une nouvelle approche innovatrice pour gérer des données "
|
||||
"avec des règles de \"visibilité\". Un <emphasis>filtre Hibernate</emphasis> "
|
||||
"est un filtre global, nommé, paramétré qui peut être activé ou désactivé "
|
||||
"pour une session Hibernate particulière."
|
||||
"Hibernate3 fournit une nouvelle approche innovatrice pour manipuler des "
|
||||
"données avec des règles de \"visibilité\". Un <emphasis>filtre Hibernate</"
|
||||
"emphasis> est un filtre global, nommé, paramétré qui peut être activé ou "
|
||||
"désactivé pour une session Hibernate particulière. "
|
||||
|
||||
#. Tag: title
|
||||
#: filters.xml:38
|
||||
#, no-c-format
|
||||
msgid "Hibernate filters"
|
||||
msgstr "Filtres Hibernate"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:40
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate3 has the ability to pre-define filter criteria and attach those "
|
||||
"filters at both a class level and a collection level. A filter criteria "
|
||||
|
@ -53,14 +55,13 @@ msgstr ""
|
|||
"d'attacher ces filtres à une classe ou à une collection. Un critère de "
|
||||
"filtre est la faculté de définir une clause de restriction très similaire à "
|
||||
"l'attribut \"where\" existant disponible sur une classe et divers éléments "
|
||||
"d'une collection. Mis à part que ces conditions de filtre peuvent être "
|
||||
"d'une collection. Par ailleurs ces conditions de filtre peuvent être "
|
||||
"paramétrées. L'application peut alors prendre la décision à l'exécution si "
|
||||
"des filtres donnés devraient être activés et quels devraient être leurs "
|
||||
"des filtres donnés doivent être activés et quels doivent être leurs "
|
||||
"paramètres. Des filtres peuvent être utilisés comme des vues de base de "
|
||||
"données, mais paramétrées dans l'application."
|
||||
"données, mais paramétrées dans l'application. "
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:50
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"In order to use filters, they must first be defined and then attached to the "
|
||||
|
@ -73,57 +74,23 @@ msgstr ""
|
|||
"l'élément <literal><filter-def/></literal> dans un élément "
|
||||
"<literal><hibernate-mapping/></literal> :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:56
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<filter-def name=\"myFilter\">\n"
|
||||
" <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
|
||||
"</filter-def>]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:58
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "This filter can then be attached to a class:"
|
||||
msgstr "Puis, ce filtre peut être attaché à une classe :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:62
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"myClass\" ...>\n"
|
||||
" ...\n"
|
||||
" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
|
||||
"\"/>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
msgstr "Puis, ce filtre peut être attaché à une classe : "
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:64
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Or, to a collection:"
|
||||
msgstr "ou à une collection :"
|
||||
msgstr "Ou bien, à une collection :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:68
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<set ...>\n"
|
||||
" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
|
||||
"\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:70
|
||||
#, fuzzy, no-c-format
|
||||
msgid "Or, to both or multiples of each at the same time."
|
||||
msgstr "ou même aux deux (ou à plusieurs de chaque) en même temps."
|
||||
msgstr "Ou même encore, aux deux (ou à plusieurs de chaque) en même temps."
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:74
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The methods on <literal>Session</literal> are: <literal>enableFilter(String "
|
||||
"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
|
||||
|
@ -139,104 +106,40 @@ msgstr ""
|
|||
"literal>, et <literal>disableFilter(String filterName)</literal>. Par "
|
||||
"défaut, les filtres <emphasis>ne sont pas</emphasis> activés pour une "
|
||||
"session donnée ; ils doivent être explicitement activés en appelant la "
|
||||
"méthode <literal>Session.enableFilter()</literal>, laquelle retourne une "
|
||||
"méthode <literal>Session.enabledFilter()</literal>, laquelle retourne une "
|
||||
"instance de l'interface <literal>Filter</literal>. Utiliser le simple filtre "
|
||||
"défini au-dessus ressemblerait à :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:83
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", "
|
||||
"\"some-value\");]]>"
|
||||
msgstr ""
|
||||
"défini ci-dessus ressemblerait à : "
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:85
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Methods on the org.hibernate.Filter interface do allow the method-chaining "
|
||||
"common to much of Hibernate."
|
||||
msgstr ""
|
||||
"Notez que des méthodes sur l'interface org.hibernate.Filter autorisent le "
|
||||
"chaînage de beaucoup de méthodes communes d'Hibernate."
|
||||
"chaînage de beaucoup de méthodes communes à Hibernate. "
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:89
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The following is a full example, using temporal data with an effective "
|
||||
"record date pattern:"
|
||||
msgstr ""
|
||||
"Un exemple complet, utilisant des données temporelles avec une structure de "
|
||||
"date d'enregistrement effectif :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:93
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<filter-def name=\"effectiveDate\">\n"
|
||||
" <filter-param name=\"asOfDate\" type=\"date\"/>\n"
|
||||
"</filter-def>\n"
|
||||
"\n"
|
||||
"<class name=\"Employee\" ...>\n"
|
||||
"...\n"
|
||||
" <many-to-one name=\"department\" column=\"dept_id\" class=\"Department\"/"
|
||||
">\n"
|
||||
" <property name=\"effectiveStartDate\" type=\"date\" column=\"eff_start_dt"
|
||||
"\"/>\n"
|
||||
" <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt\"/"
|
||||
">\n"
|
||||
"...\n"
|
||||
" <!--\n"
|
||||
" Note that this assumes non-terminal records have an eff_end_dt set "
|
||||
"to\n"
|
||||
" a max db date for simplicity-sake\n"
|
||||
" -->\n"
|
||||
" <filter name=\"effectiveDate\"\n"
|
||||
" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
|
||||
"</class>\n"
|
||||
"\n"
|
||||
"<class name=\"Department\" ...>\n"
|
||||
"...\n"
|
||||
" <set name=\"employees\" lazy=\"true\">\n"
|
||||
" <key column=\"dept_id\"/>\n"
|
||||
" <one-to-many class=\"Employee\"/>\n"
|
||||
" <filter name=\"effectiveDate\"\n"
|
||||
" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
|
||||
">\n"
|
||||
" </set>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"date d'enregistrement effectif : "
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:95
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"In order to ensure that you are provided with currently effective records, "
|
||||
"enable the filter on the session prior to retrieving employee data:"
|
||||
msgstr ""
|
||||
"Puis, afin de s'assurer que vous pouvez toujours récupérer les "
|
||||
"enregistrements actuellement effectifs, activez simplement le filtre sur la "
|
||||
"session avant de récupérer des données des employés :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:100
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = ...;\n"
|
||||
"session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date"
|
||||
"());\n"
|
||||
"List results = session.createQuery(\"from Employee as e where e.salary > :"
|
||||
"targetSalary\")\n"
|
||||
" .setLong(\"targetSalary\", new Long(1000000))\n"
|
||||
" .list();\n"
|
||||
"]]>"
|
||||
msgstr ""
|
||||
"session avant de récupérer des données des employés : "
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:102
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Even though a salary constraint was mentioned explicitly on the results in "
|
||||
"the above HQL, because of the enabled filter, the query will return only "
|
||||
|
@ -244,13 +147,12 @@ msgid ""
|
|||
"dollars."
|
||||
msgstr ""
|
||||
"Dans le HQL ci-dessus, bien que nous ayons seulement mentionné une "
|
||||
"contrainte de salaire sur les resultats, à cause du filtre activé, la "
|
||||
"contrainte de salaire sur les résultats, à cause du filtre activé, la "
|
||||
"requête retournera seulement les employés actuellement actifs qui ont un "
|
||||
"salaire supérieur à un million de dollars."
|
||||
"salaire supérieur à un million de dollars. "
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:108
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you want to use filters with outer joining, either through HQL or load "
|
||||
"fetching, be careful of the direction of the condition expression. It is "
|
||||
|
@ -258,33 +160,27 @@ msgid ""
|
|||
"followed by the column name(s) after the operator."
|
||||
msgstr ""
|
||||
"A noter : si vous prévoyez d'utiliser des filtres avec des jointures "
|
||||
"externes (soit à travers HQL, soit par le chargement) faites attention à la "
|
||||
"externes (soit à travers HQL, soit par le chargement), faites attention à la "
|
||||
"direction de l'expression de condition. Il est plus sûr de la positionner "
|
||||
"pour les jointures externes à gauche ; en général, placez le paramètre "
|
||||
"d'abord, suivi du(des) nom(s) de colonne après l'opérateur."
|
||||
"d'abord, suivi du(des) nom(s) de colonne après l'opérateur. "
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:115
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"After being defined, a filter might be attached to multiple entities and/or "
|
||||
"collections each with its own condition. This can be problematic when the "
|
||||
"conditions are the same each time. Using <literal><filter-def/></"
|
||||
"literal> allows you to definine a default condition, either as an attribute "
|
||||
"or CDATA:"
|
||||
msgstr "translator-credits"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:122
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</filter-"
|
||||
"def>\n"
|
||||
"<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
|
||||
msgstr ""
|
||||
"Après avoir été défini, un filtre peut être attaché à de nombreuses entités "
|
||||
"et/ou des collections, chacune avec sa propre condition. Cela peut être "
|
||||
"fastidieux quand les conditions sont les mêmes à chaque fois. Ainsi "
|
||||
"<literal><filter-def/></literal> permet de définir une condition par "
|
||||
"défaut, soit en tant qu'attribut, soit comme CDATA. "
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:124
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This default condition will be used whenever the filter is attached to "
|
||||
|
@ -292,3 +188,145 @@ msgid ""
|
|||
"condition as part of the attachment of the filter that overrides the default "
|
||||
"condition in that particular case."
|
||||
msgstr ""
|
||||
"Cette condition par défaut sera alors utilisée à chaque fois que le filtre "
|
||||
"est attaché à quelque chose sans spécifier la condition. Notez que cela "
|
||||
"signifie que vous pouvez fournir une condition spécifique en tant que "
|
||||
"faisant partie de la pièce attachée du filtre qui surcharge la condition par "
|
||||
"défaut dans ce cas particulier. "
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
|
||||
#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
|
||||
#~ "</filter-def>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
|
||||
#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
|
||||
#~ "</filter-def>]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<class name=\"myClass\" ...>\n"
|
||||
#~ " ...\n"
|
||||
#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
|
||||
#~ "MY_FILTERED_COLUMN\"/>\n"
|
||||
#~ "</class>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<class name=\"myClass\" ...>\n"
|
||||
#~ " ...\n"
|
||||
#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
|
||||
#~ "MY_FILTERED_COLUMN\"/>\n"
|
||||
#~ "</class>]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<set ...>\n"
|
||||
#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
|
||||
#~ "MY_FILTERED_COLUMN\"/>\n"
|
||||
#~ "</set>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<set ...>\n"
|
||||
#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
|
||||
#~ "MY_FILTERED_COLUMN\"/>\n"
|
||||
#~ "</set>]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
|
||||
#~ "\", \"some-value\");]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
|
||||
#~ "\", \"some-value\");]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<filter-def name=\"effectiveDate\">\n"
|
||||
#~ " <filter-param name=\"asOfDate\" type=\"date\"/>\n"
|
||||
#~ "</filter-def>\n"
|
||||
#~ "\n"
|
||||
#~ "<class name=\"Employee\" ...>\n"
|
||||
#~ "...\n"
|
||||
#~ " <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
|
||||
#~ "\"/>\n"
|
||||
#~ " <property name=\"effectiveStartDate\" type=\"date\" column="
|
||||
#~ "\"eff_start_dt\"/>\n"
|
||||
#~ " <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
|
||||
#~ "\"/>\n"
|
||||
#~ "...\n"
|
||||
#~ " <!--\n"
|
||||
#~ " Note that this assumes non-terminal records have an eff_end_dt "
|
||||
#~ "set to\n"
|
||||
#~ " a max db date for simplicity-sake\n"
|
||||
#~ " -->\n"
|
||||
#~ " <filter name=\"effectiveDate\"\n"
|
||||
#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
|
||||
#~ ">\n"
|
||||
#~ "</class>\n"
|
||||
#~ "\n"
|
||||
#~ "<class name=\"Department\" ...>\n"
|
||||
#~ "...\n"
|
||||
#~ " <set name=\"employees\" lazy=\"true\">\n"
|
||||
#~ " <key column=\"dept_id\"/>\n"
|
||||
#~ " <one-to-many class=\"Employee\"/>\n"
|
||||
#~ " <filter name=\"effectiveDate\"\n"
|
||||
#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt"
|
||||
#~ "\"/>\n"
|
||||
#~ " </set>\n"
|
||||
#~ "</class>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<filter-def name=\"effectiveDate\">\n"
|
||||
#~ " <filter-param name=\"asOfDate\" type=\"date\"/>\n"
|
||||
#~ "</filter-def>\n"
|
||||
#~ "\n"
|
||||
#~ "<class name=\"Employee\" ...>\n"
|
||||
#~ "...\n"
|
||||
#~ " <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
|
||||
#~ "\"/>\n"
|
||||
#~ " <property name=\"effectiveStartDate\" type=\"date\" column="
|
||||
#~ "\"eff_start_dt\"/>\n"
|
||||
#~ " <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
|
||||
#~ "\"/>\n"
|
||||
#~ "...\n"
|
||||
#~ " <!--\n"
|
||||
#~ " Note that this assumes non-terminal records have an eff_end_dt "
|
||||
#~ "set to\n"
|
||||
#~ " a max db date for simplicity-sake\n"
|
||||
#~ " -->\n"
|
||||
#~ " <filter name=\"effectiveDate\"\n"
|
||||
#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
|
||||
#~ ">\n"
|
||||
#~ "</class>\n"
|
||||
#~ "\n"
|
||||
#~ "<class name=\"Department\" ...>\n"
|
||||
#~ "...\n"
|
||||
#~ " <set name=\"employees\" lazy=\"true\">\n"
|
||||
#~ " <key column=\"dept_id\"/>\n"
|
||||
#~ " <one-to-many class=\"Employee\"/>\n"
|
||||
#~ " <filter name=\"effectiveDate\"\n"
|
||||
#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt"
|
||||
#~ "\"/>\n"
|
||||
#~ " </set>\n"
|
||||
#~ "</class>]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Session session = ...;\n"
|
||||
#~ "session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new "
|
||||
#~ "Date());\n"
|
||||
#~ "List results = session.createQuery(\"from Employee as e where e.salary > :"
|
||||
#~ "targetSalary\")\n"
|
||||
#~ " .setLong(\"targetSalary\", new Long(1000000))\n"
|
||||
#~ " .list();\n"
|
||||
#~ "]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[Session session = ...;\n"
|
||||
#~ "session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new "
|
||||
#~ "Date());\n"
|
||||
#~ "List results = session.createQuery(\"from Employee as e where e.salary > :"
|
||||
#~ "targetSalary\")\n"
|
||||
#~ " .setLong(\"targetSalary\", new Long(1000000))\n"
|
||||
#~ " .list();\n"
|
||||
#~ "]]>"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
|
||||
#~ "filter-def>\n"
|
||||
#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
|
||||
#~ msgstr ""
|
||||
#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
|
||||
#~ "filter-def>\n"
|
||||
#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,32 +1,32 @@
|
|||
# Language fr-FR translations for PACKAGE package.
|
||||
# Automatically generated, 2009.
|
||||
#
|
||||
# translation of portability.po to French
|
||||
# Myriam Malga <mmalga@redhat.com>, 2007.
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007.
|
||||
# Corina Roe <croe@redhat.com>, 2009, 2010.
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: portability\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:56+0000\n"
|
||||
"PO-Revision-Date: 2009-07-14 19:56+0000\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:15\n"
|
||||
"PO-Revision-Date: 2010-01-05 09:42+1000\n"
|
||||
"Last-Translator: Corina Roe <croe@redhat.com>\n"
|
||||
"Language-Team: French <i18@redhat.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:26
|
||||
#, no-c-format
|
||||
msgid "Database Portability Considerations"
|
||||
msgstr ""
|
||||
msgstr "Considérations de portabilité des bases de données"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:29
|
||||
#, no-c-format
|
||||
msgid "Portability Basics"
|
||||
msgstr ""
|
||||
msgstr "Aspects fondamentaux de la portabilité"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:31
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"One of the selling points of Hibernate (and really Object/Relational Mapping "
|
||||
|
@ -38,15 +38,23 @@ msgid ""
|
|||
"run against any number of databases without changes to your code, and "
|
||||
"ideally without any changes to the mapping metadata."
|
||||
msgstr ""
|
||||
"La portabilité des bases de données est un des atouts qui sont mis en avant "
|
||||
"pour vendre Hibernate (et plus largement le mappage objet/relationnel dans "
|
||||
"son ensemble). Il pourrait s'agir d'un utilisateur IT interne qui migre "
|
||||
"d'une base de données de fournisseur vers une autre, ou il pourrait s'agir "
|
||||
"d'un framework ou d'une application déployable consommant Hibernate pour "
|
||||
"cibler simultanément plusieurs produits de base de données par leurs "
|
||||
"utilisateurs. Quel que soit le scénario exact, l'idée de base est que vous "
|
||||
"souhaitez que HIBERNATE vous permettre d'exécuter avec un certain nombre de "
|
||||
"bases de données sans modifications à votre code et idéalement sans "
|
||||
"modifications des métadonnées de mappage."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:42
|
||||
#, no-c-format
|
||||
msgid "Dialect"
|
||||
msgstr ""
|
||||
msgstr "Dialecte"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:44
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The first line of portability for Hibernate is the dialect, which is a "
|
||||
|
@ -58,15 +66,22 @@ msgid ""
|
|||
"your particular database is not among them, it is not terribly difficult to "
|
||||
"write your own."
|
||||
msgstr ""
|
||||
"La première ligne de la portabilité d'Hibernate est le dialecte, qui est une "
|
||||
"spécialisation du contrat <classname>org.Hibernate.dialect.dialect</"
|
||||
"classname>. Un dialecte encapsule toutes les différences selon lesquelles "
|
||||
"Hibernate doit communiquer avec une base de données particulière pour "
|
||||
"accomplir certaines tâches comme l'obtention d'une valeur de la séquence ou "
|
||||
"de structuration d'une requête SELECT. Hibernate regroupe un large éventail "
|
||||
"de dialectes pour la plupart des bases de données les plus communes. Si vous "
|
||||
"trouvez que votre base de données particulière n'en fait pas partie, il "
|
||||
"n'est pas difficile d'écrire votre propre dialecte."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:55
|
||||
#, no-c-format
|
||||
msgid "Dialect resolution"
|
||||
msgstr ""
|
||||
msgstr "Résolution de dialecte"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:57
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Originally, Hibernate would always require that users specify which dialect "
|
||||
|
@ -75,9 +90,14 @@ msgid ""
|
|||
"their users to configure the Hibernate dialect or defining their own method "
|
||||
"of setting that value."
|
||||
msgstr ""
|
||||
"À l'origine, Hibernate exigeait toujours que les utilisateurs spécifient "
|
||||
"quel dialecte utiliser. Dans le cas des utilisateurs qui cherchent à cibler "
|
||||
"simultanément plusieurs bases de données avec leur version, c'était "
|
||||
"problématique. Généralement cela amenait leurs utilisateurs à configurer le "
|
||||
"dialecte Hibernate ou à définir leur propre méthode de définition de cette "
|
||||
"valeur."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:64
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.2, Hibernate introduced the notion of automatically "
|
||||
|
@ -87,17 +107,22 @@ msgid ""
|
|||
"that this resolution was limited to databases Hibernate know about ahead of "
|
||||
"time and was in no way configurable or overrideable."
|
||||
msgstr ""
|
||||
"A partir de la version 3.2, Hibernate a introduit la détection "
|
||||
"automatiquement du dialecte à utiliser basé sur les <interfacename>Java.SQL."
|
||||
"DatabaseMetaData</interfacename> obtenues à partir d'un <interfacename>Java."
|
||||
"SQL.Connexion</interfacename> vers cette base de données. C'était beaucoup "
|
||||
"mieux, sauf que cette résolution a été limitée aux bases de données déjà "
|
||||
"connues d'Hibernate et elle n'était ni configurable, ni remplaçable."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:72
|
||||
#, no-c-format
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.3, Hibernate has a fare more powerful way to "
|
||||
"automatically determine which dialect to should be used by relying on a "
|
||||
"series of delegates which implement the <interfacename>org.hibernate.dialect."
|
||||
"resolver.DialectResolver</interfacename> which defines only a single method:"
|
||||
"<programlisting><![CDATA[public Dialect resolveDialect(DatabaseMetaData "
|
||||
"metaData) throws JDBCConnectionException]]></programlisting>. The basic "
|
||||
"<programlisting role=\"JAVA\">public Dialect resolveDialect(DatabaseMetaData "
|
||||
"metaData) throws JDBCConnectionException</programlisting>. The basic "
|
||||
"contract here is that if the resolver 'understands' the given database "
|
||||
"metadata then it returns the corresponding Dialect; if not it returns null "
|
||||
"and the process continues to the next resolver. The signature also "
|
||||
|
@ -108,9 +133,23 @@ msgid ""
|
|||
"All other exceptions result in a warning and continuing on to the next "
|
||||
"resolver."
|
||||
msgstr ""
|
||||
"A partir de la version 3.3, Hibernate a un moyen bien plus puissant de "
|
||||
"déterminer automatiquement quel dialecte devrait être utilisé en s'appuyant "
|
||||
"sur une série de délégués qui implémentent le <interfacename>org.hibernate."
|
||||
"dialect.resolver.DialectResolver</interfacename>. Le résolveur ne définit "
|
||||
"qu'une seule méthode :<programlisting>public Dialect resolveDialect"
|
||||
"(DatabaseMetaData metaData) throws JDBCConnectionException</programlisting>. "
|
||||
"Le contrat de base ici est que si le résolveur 'comprend' les métadonnées de "
|
||||
"base de données, alors il renvoie le dialecte correspondant ; si non, il "
|
||||
"renvoie la valeur null et le processus se poursuit avec le prochain "
|
||||
"résolveur. La signature identifie également l'envoi éventuel de l'exception "
|
||||
"<exceptionname>org.hibernate.exception.JDBCConnectionException</"
|
||||
"exceptionname>. Une JDBCConnectionException ici implique un problème de "
|
||||
"connexion \"non transient\" (aka non récupérable) et est utilisé pour "
|
||||
"indiquer un arrêt immédiat à des tentatives de résolution. Toutes les autres "
|
||||
"exceptions entraînent un avertissement et de passer à la résolution suivante."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:85
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The cool part about these resolvers is that users can also register their "
|
||||
|
@ -124,16 +163,26 @@ msgid ""
|
|||
"<constant>DIALECT_RESOLVERS</constant> constant on <classname>org.hibernate."
|
||||
"cfg.Environment</classname>)."
|
||||
msgstr ""
|
||||
"Le bon côté de ces outils de résolution, c'est que les utilisateurs peuvent "
|
||||
"également enregistrer leurs propres outils de résolution personnalisés, qui "
|
||||
"seront traités avant les résolveurs Hibernate intégrés. Cette option peut "
|
||||
"être utile dans un certain nombre de situations différentes : elle permet "
|
||||
"une intégration aisée pour la détection automatique des dialectes au-delà de "
|
||||
"ceux qui sont livrés avec Hibernate lui-même ; elle vous permet de spécifier "
|
||||
"d'utiliser un dialecte personnalisé lorsqu'une base de données particulière "
|
||||
"est reconnue ; etc.. Pour enregistrer un ou plusieurs outils de résolution, "
|
||||
"il vous suffit de les spécifier (séparés par des virgules, des onglets ou "
|
||||
"des espaces) à l'aide du paramètre de configuration 'hibernate."
|
||||
"dialect_resolvers' (voir la constante <constant>DIALECT_RESOLVERS</constant> "
|
||||
"sur <classname>cfg.Environment org.Hibernate.</classname>)."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:98
|
||||
#, no-c-format
|
||||
msgid "Identifier generation"
|
||||
msgstr ""
|
||||
msgstr "Générer les identifiants"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:100
|
||||
#, no-c-format
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"When considering portability between databases, another important decision "
|
||||
"is selecting the identifier generation stratagy you want to use. Originally "
|
||||
|
@ -151,38 +200,96 @@ msgid ""
|
|||
"reference entities within a persistence context it must then issue the "
|
||||
"insert immediately when the users requests the entitiy be associated with "
|
||||
"the session (like via save() e.g.) regardless of current transactional "
|
||||
"semantics. <note> <para> Hibernate was changed slightly once the implication "
|
||||
"of this was better understood so that the insert is delayed in cases where "
|
||||
"that is feasible. </para> </note> The underlying issue is that the actual "
|
||||
"semanctics of the application itself changes in these cases."
|
||||
"semantics."
|
||||
msgstr ""
|
||||
"Quand on considère la portabilité entre les bases de données, la sélection "
|
||||
"de stratégie de génération d'identifiant à utiliser est une autre décision "
|
||||
"importante. Initialement, Hibernate fournissait le générateur "
|
||||
"<emphasis>natif</emphasis> à cette fin, dans le but de choisir entre une "
|
||||
"stratégie <emphasis>séquence</emphasis>, <emphasis>identité</emphasis>, ou "
|
||||
"<emphasis>table</emphasis> suivant la capacité de la base de données sous-"
|
||||
"jacente. Toutefois, une implication insidieuse de cette approche surgit au "
|
||||
"moment de cibler certaines bases de données entre celles qui prennent en "
|
||||
"charge la génération d' <emphasis>identité</emphasis> et celles qui ne la "
|
||||
"prenne pas. La génération d'<emphasis>identité</emphasis> s'appuie sur la "
|
||||
"définition SQL d'une colonne IDENTITY (ou auto-incrémentation) pour gérer la "
|
||||
"valeur d'identificateur ; c'est ce qui est connu sous le nom de stratégie de "
|
||||
"génération car l'insersion doit effectivement avoir lieu avant que nous "
|
||||
"puissions connaître la valeur de l'identifiant. Étant donné qu'Hibernate "
|
||||
"repose sur la valeur de cet identifiant pour indentifier les entités de "
|
||||
"façon unique dans un contexte de persistance, il doit alors émettre "
|
||||
"l'insertion immédiatement, quand les utilisateurs demandent que l'entité "
|
||||
"soit associée à la session (comme par exemple, via save()) indépendamment de "
|
||||
"la sémantique transactionnelle actuelle. La question sous-jacente est que la "
|
||||
"sémantique de l'application elle-même change dans ces cas."
|
||||
|
||||
#. Tag: para
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Hibernate was changed slightly once the implication of this was better "
|
||||
"understood so that the insert is delayed in cases where that is feasible."
|
||||
msgstr ""
|
||||
"Hibernate a été amélioré de façon à ce que l'insertion puisse être retardée "
|
||||
"quand c'est possible."
|
||||
|
||||
#. Tag: note
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The underlying issue is that the actual semanctics of the application itself "
|
||||
"changes in these cases."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:125
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.2.3, Hibernate comes with a set of <ulink url="
|
||||
"\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators "
|
||||
"targetting portability in a much different way. <note> <para> There are "
|
||||
"specifically 2 bundled <emphasis>enhanced</emphasis>generators: "
|
||||
"<itemizedlist> <listitem> <para> <classname>org.hibernate.id.enhanced."
|
||||
"SequenceStyleGenerator</classname> </para> </listitem> <listitem> <para> "
|
||||
"<classname>org.hibernate.id.enhanced.TableGenerator</classname> </para> </"
|
||||
"listitem> </itemizedlist> </para> </note> The idea behind these generators "
|
||||
"is to port the actual semantics of the identifer value generation to the "
|
||||
"different databases. For example, the <classname>org.hibernate.id.enhanced."
|
||||
"SequenceStyleGenerator</classname> mimics the behavior of a sequence on "
|
||||
"databases which do not support sequences by using a table."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:154
|
||||
#, no-c-format
|
||||
msgid "Database functions"
|
||||
"targetting portability in a much different way."
|
||||
msgstr ""
|
||||
"A partir de la version 3.2.3, Hibernate est fourni avec un ensemble de "
|
||||
"générateurs d'identifiants <ulink url=\"http://in.relation.to/2082.lace"
|
||||
"\">améliorés</ulink>qui ciblent la portabilité d'une façon très différente."
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
|
||||
msgstr ""
|
||||
"Il existe 2 générateurs <emphasis>améliorés</emphasis> spécifiques qui sont "
|
||||
"livrés."
|
||||
|
||||
#. Tag: para
|
||||
#, fuzzy, no-c-format
|
||||
msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
msgstr ""
|
||||
"<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
|
||||
#. Tag: para
|
||||
#, fuzzy, no-c-format
|
||||
msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
|
||||
#. Tag: note
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The idea behind these generators is to port the actual semantics of the "
|
||||
"identifer value generation to the different databases. For example, the "
|
||||
"<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> "
|
||||
"mimics the behavior of a sequence on databases which do not support "
|
||||
"sequences by using a table."
|
||||
msgstr ""
|
||||
"L'idée qui se cache là derrière, c'est de porter la sémantique de la "
|
||||
"génération de la valeur d'identifiant vers les bases de données diverses. "
|
||||
"Ainsi, <classname>org.hibernate.id.enhanced.SequenceStyleGenerator</"
|
||||
"classname> imite le comportement d'une séquence de databases, ne supportant "
|
||||
"pas les séquences par une table."
|
||||
|
||||
#. Tag: title
|
||||
#, no-c-format
|
||||
msgid "Database functions"
|
||||
msgstr "Fonctions de base de données"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:157
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is an area in Hibernate in need of improvement. In terms of portability "
|
||||
|
@ -191,7 +298,6 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:164
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"SQL functions can be referenced in many ways by users. However, not all "
|
||||
|
@ -200,9 +306,14 @@ msgid ""
|
|||
"knows how to render that particular function, perhaps even using a totally "
|
||||
"different physical function call."
|
||||
msgstr ""
|
||||
"Les fonctions SQL peuvent être référencées de bien des façons par les "
|
||||
"utilisateurs. Cependant, toutes les bases de données ne supportent pas le "
|
||||
"même groupe de fonctions. Hibernate procure une façon de faire correspondre "
|
||||
"un nom de fonction <emphasis>logique</emphasis> à un délégué qui sait "
|
||||
"comment traduire cette fonction particulière, peut-être en utilisant un "
|
||||
"appel de fonction physique totalement différente."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:170
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Technically this function registration is handled through the <classname>org."
|
||||
|
@ -211,24 +322,37 @@ msgid ""
|
|||
"having to provide a custom dialect. This specific behavior is not fully "
|
||||
"completed as of yet."
|
||||
msgstr ""
|
||||
"Techniquement, cet enregistrement de la fonction est géré par le biais de la "
|
||||
"classe <classname>hibernate.dialect.function.SQLFunctionRegistry org.</"
|
||||
"classname> qui est destinée à permettre aux utilisateurs de fournir des "
|
||||
"définitions de fonction personnalisée sans avoir à fournir un dialecte "
|
||||
"personnalisé. Ce comportement spécifique n'est pas encore entièrement "
|
||||
"terminé."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:177
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"It is sort of implemented such that users can programatically register "
|
||||
"functions with the <classname>org.hibernate.cfg.Configuration</classname> "
|
||||
"and those functions will be recognized for HQL."
|
||||
msgstr ""
|
||||
"Il est mis en oeuvre de telle sorte que les utilisateurs peuvent enregistrer "
|
||||
"des fonctions par programmation avec <classname>org.Hibernate.cfg."
|
||||
"Configuration</classname> et ces fonctions seront reconnues pour HQL."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:187
|
||||
#, no-c-format
|
||||
msgid "Type mappings"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:189
|
||||
#, no-c-format
|
||||
msgid "This section scheduled for completion at a later date..."
|
||||
msgstr ""
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This is a new area in Hibernate and as such it is not as mature as the "
|
||||
#~ "overall Hibernate experience."
|
||||
#~ msgstr ""
|
||||
#~ "Il s'agit d'une nouveau domaine pour Hibernate, et de ce fait, n'a pas "
|
||||
#~ "encore atteint une maturité."
|
||||
|
|
|
@ -1,23 +1,27 @@
|
|||
# translation of Preface.po to French
|
||||
# Myriam Malga <mmalga@redhat.com>, 2007.
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007.
|
||||
# Corina Roe <croe@redhat.com>, 2009, 2010.
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: Preface\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:56+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:15\n"
|
||||
"PO-Revision-Date: 2010-01-05 09:43+1000\n"
|
||||
"Last-Translator: Corina Roe <croe@redhat.com>\n"
|
||||
"Language-Team: French <i18@redhat.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: preface.xml:29
|
||||
#, no-c-format
|
||||
msgid "Preface"
|
||||
msgstr "Préface"
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:31
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Working with object-oriented software and a relational database can be "
|
||||
|
@ -27,32 +31,30 @@ msgid ""
|
|||
"representation from an object model to a relational data model with a SQL-"
|
||||
"based schema."
|
||||
msgstr ""
|
||||
"Travailler dans les deux univers que sont l'orienté objet et la base de "
|
||||
"données relationnelle peut être lourd et consommateur en temps dans le monde "
|
||||
"de l'entreprise d'aujourd'hui. Hibernate est un outil de mapping objet/"
|
||||
"relationnel pour le monde Java. Le terme mapping objet/relationnel (ORM) "
|
||||
"décrit la technique consistant à faire le lien entre la représentation objet "
|
||||
"des données et sa représentation relationnelle basée sur un schéma SQL."
|
||||
"Travailler avec des logiciels orientés-objet et une base de données "
|
||||
"relationnelle peut sembler parfois lourd et coûteux en temps dans les "
|
||||
"environnements entreprise de nos jours. Hibernate est un outil de mappage "
|
||||
"objet/relationnel pour les environnements Java. Le terme de mappage objet/"
|
||||
"relationnel (ORM de l'anglais Objet Relational Mapping) fait référence à la "
|
||||
"technique de mappage d'une représentation de données à partir d'un modèle "
|
||||
"d'objet vers un modèle de données relationnelles dans un schéma basé-SQL."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:39
|
||||
#, fuzzy, no-c-format
|
||||
#, 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. It can also significantly reduce development "
|
||||
"time otherwise spent with manual data handling in SQL and JDBC."
|
||||
msgstr ""
|
||||
"Non seulement, Hibernate s'occupe du transfert des classes Java dans les "
|
||||
"tables de la base de données (et des types de données Java dans les types de "
|
||||
"données SQL), mais il permet de requêter les données et propose des moyens "
|
||||
"de les récupérer. Il peut donc réduire de manière significative le temps de "
|
||||
"développement qui aurait été autrement perdu dans une manipulation manuelle "
|
||||
"des données via SQL et JDBC."
|
||||
"Hibernate s'occupe du mappage des classes Java vers les tables de bases de "
|
||||
"données (et des types de données Java vers les types de données SQL), mais "
|
||||
"fournit également des facilités de recherche et de retrait de données. "
|
||||
"Hibernate peut réduire énormément le temps de développement, normalement "
|
||||
"passé à traiter des données manuellement dans SQL ou JDBC."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:46
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate's goal is to relieve the developer from 95 percent of common data "
|
||||
"persistence related programming tasks. Hibernate may not be the best "
|
||||
|
@ -63,51 +65,48 @@ msgid ""
|
|||
"specific SQL code and will help with the common task of result set "
|
||||
"translation from a tabular representation to a graph of objects."
|
||||
msgstr ""
|
||||
"Le but d'Hibernate est de libérer le développeur de 95 pourcent des tâches "
|
||||
"de programmation liées à la persistance des données communes. Hibernate "
|
||||
"n'est probablement pas la meilleure solution pour les applications centrées "
|
||||
"sur les données qui n'utilisent que les procédures stockées pour implémenter "
|
||||
"la logique métier dans la base de données, il est le plus utile dans les "
|
||||
"modèles métier orientés objets dont la logique métier est implémentée dans "
|
||||
"la couche Java dite intermédiaire. Cependant, Hibernate vous aidera à "
|
||||
"supprimer ou à encapsuler le code SQL spécifique à votre base de données et "
|
||||
"vous aidera sur la tâche commune qu'est la transformation des données d'une "
|
||||
"représentation tabulaire à une représentation sous forme de graphe d'objets."
|
||||
"Le but d'Hibernate est de libérer le développeur de 95 pour cent des tâches "
|
||||
"de programmation liées à la persistance de données communes. Hibernate n'est "
|
||||
"peut-être pas la meilleure solution pour les applications centrées-données "
|
||||
"qui utilisent uniquement les procédures-stored pour implémenter la logique "
|
||||
"métier dans la base de données. Cela est surtout utile avec les modèles de "
|
||||
"domaines orientés-objet et la logique métier dans l'étape intermédiaire "
|
||||
"basée Java. Malgré tout, Hibernate peut vous aider à supprimer ou à "
|
||||
"encapsuler le code SQL propre à un distributeur et vous aidera à régler la "
|
||||
"tâche commune qui consiste à transposer un ensemble de résultats à partir "
|
||||
"d'un tableau de représentation vers un graphe d'objets. "
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:56
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you are new to Hibernate and Object/Relational Mapping or even Java, "
|
||||
"please follow these steps:"
|
||||
msgstr ""
|
||||
"Si vous êtes nouveau dans Hibernate et le mapping Objet/Relationnel voire "
|
||||
"même en Java, suivez ces quelques étapes :"
|
||||
"Si vous n'êtes pas familiarisé avec Hibernate et le mappage Objet/"
|
||||
"Relationnel ou même Java, veuillez suivre les étapes suivantes :"
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:63
|
||||
#, no-c-format
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Read <xref linkend=\"tutorial\"/> for a tutorial with step-by-step "
|
||||
"Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step "
|
||||
"instructions. The source code for the tutorial is included in the "
|
||||
"distribution in the <literal>doc/reference/tutorial/</literal> directory."
|
||||
msgstr ""
|
||||
"Lisez <xref linkend=\"tutorial\"/> pour un didacticiel plus long avec plus "
|
||||
"d'instructions étape par étape."
|
||||
"Lisez <xref linkend=\"tutorial\" /> pour bénéficier d'un tutoriel avec des "
|
||||
"instructions étape par étape. Le code source du tutoriel est inclus dans la "
|
||||
"distribution du répertoire <literal>doc/reference/tutorial/</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:71
|
||||
#, no-c-format
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Read <xref linkend=\"architecture\"/> to understand the environments where "
|
||||
"Read <xref linkend=\"architecture\" /> to understand the environments where "
|
||||
"Hibernate can be used."
|
||||
msgstr ""
|
||||
"Lisez <xref linkend=\"architecture\"/> pour comprendre les environnements "
|
||||
"dans lesquels Hibernate peut être utilisé."
|
||||
"Veuillez lire <xref linkend=\"architecture\" /> pour comprendre dans quels "
|
||||
"environnements Hibernate peuvent-être utilisés."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:77
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"View the <literal>eg/</literal> directory in the Hibernate distribution. It "
|
||||
"contains a simple standalone application. Copy your JDBC driver to the "
|
||||
|
@ -116,66 +115,57 @@ msgid ""
|
|||
"command prompt in the distribution directory, type <literal>ant eg</literal> "
|
||||
"(using Ant), or under Windows, type <literal>build eg</literal>."
|
||||
msgstr ""
|
||||
"Regardez le répertoire <literal>eg</literal> de la distribution Hibernate, "
|
||||
"il contient une application simple et autonome. Copiez votre pilote JDBC "
|
||||
"dans le répertoire <literal>lib/</literal> et éditez <literal>src/hibernate."
|
||||
"properties</literal>, en positionnant correctement les valeurs pour votre "
|
||||
"base de données. A partir d'une invite de commande dans le répertoire de la "
|
||||
"distribution, tapez <literal>ant eg</literal> (cela utilise Ant), ou sous "
|
||||
"Windows tapez <literal>build eg</literal>."
|
||||
"Veuillez consulter le répertoire <literal>eg/</literal> dans la distribution "
|
||||
"Hibernate, qui contient une application autonome simple. Copier votre pilote "
|
||||
"JDBC dans le répertoire <literal>lib/</literal> et éditez <literal>etc/"
|
||||
"hibernate.properties</literal>, en spécifiant les valeurs qu'il faut dans "
|
||||
"votre base de données. A partir d'une invite de commande du répertoire de "
|
||||
"distribution, veuillez saisir <literal>ant eg</literal> (en utilisant Ant), "
|
||||
"et sous Windows, tapez <literal>build eg</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:88
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Use this reference documentation as your primary source of information. "
|
||||
"Consider reading <biblioref linkend=\"biblio-JPwH\"></biblioref> if you need "
|
||||
"more help with application design, or if you prefer a step-by-step tutorial. "
|
||||
"Also visit <ulink url=\"http://caveatemptor.hibernate.org\"></ulink> and "
|
||||
"download the example application from <biblioref linkend=\"biblio-JPwH\"></"
|
||||
"biblioref>."
|
||||
"Also visit <ulink url=\"http://caveatemptor.hibernate.org\" /> and download "
|
||||
"the example application from <biblioref linkend=\"biblio-JPwH\"></biblioref>."
|
||||
msgstr ""
|
||||
"Faîtes de cette documentation de référence votre principale source "
|
||||
"d'information. Pensez à lire <emphasis>Java Persistence with Hibernate</"
|
||||
"emphasis> (http://www.manning.com/bauer2) si vous avez besoin de plus d'aide "
|
||||
"avec le design d'applications ou si vous préférez un tutoriel pas à pas. "
|
||||
"Visitez aussi http://caveatemptor.hibernate.org et téléchargez l'application "
|
||||
"exemple pour Java Persistence with Hibernate."
|
||||
"Utiliser cette documentation de référence en tant que source primaire "
|
||||
"d'information. Vous pourrez lire <emphasis>Hibernate in Action</emphasis> "
|
||||
"(http://www.manning.com/bauer) si vous avez besoin d'aide supplémentaire au "
|
||||
"niveau de la conception des applications ou si vous préférez un tutoriel "
|
||||
"étape par étape. Aussi, veuillez consulter http://caveatemptor.hibernate.org "
|
||||
"et décharger l'exemple d'application pour Hibernate en action."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:98
|
||||
#, no-c-format
|
||||
msgid "FAQs are answered on the Hibernate website."
|
||||
msgstr ""
|
||||
"Les questions les plus fréquemment posées (FAQs) trouvent leur réponse sur "
|
||||
"le site web Hibernate."
|
||||
msgstr "Les questions FAQ sont traitées sur le site Hibernate."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:103
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Links to third party demos, examples, and tutorials are maintained on the "
|
||||
"Hibernate website."
|
||||
msgstr ""
|
||||
"Des démos, exemples et tutoriaux de tierces personnes sont référencés sur le "
|
||||
"site web Hibernate."
|
||||
"Des démos de tierces parties, des exemples et des tutoriels sont accessibles "
|
||||
"à partir du site Hibernate."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:109
|
||||
#, 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 ""
|
||||
"La zone communautaire (Community Area) du site web Hibernate est une bonne "
|
||||
"source d'information sur les design patterns et sur différentes solutions "
|
||||
"d'intégration d'Hibernate (Tomcat, JBoss, Spring Framework, Struts, EJB, "
|
||||
"etc)."
|
||||
"La section Community Area (Zône communautaire) du site Hibernate constitue "
|
||||
"une ressource intéressante pour les modèles conceptuels et autres solutions "
|
||||
"diverses d'intégration (Tomcat, JBoss AS, Struts, EJB, etc.)."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:117
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you have questions, use the user forum linked on the Hibernate website. "
|
||||
"We also provide a JIRA issue tracking system for bug reports and feature "
|
||||
|
@ -183,14 +173,13 @@ msgid ""
|
|||
"developer mailing list. If you are interested in translating this "
|
||||
"documentation into your language, contact us on the developer mailing list."
|
||||
msgstr ""
|
||||
"Si vous avez des questions, utilisez le forum utilisateurs du site web "
|
||||
"Hibernate. Nous utilisons également l'outil de gestion des incidents JIRA "
|
||||
"pour tout ce qui est rapports de bogue et demandes d'évolution. Si vous êtes "
|
||||
"intéressé par le développement d'Hibernate, joignez-vous à la liste de "
|
||||
"diffusion de développement."
|
||||
"Si vous avez des questions, participez au forum utilisateur sur le site "
|
||||
"Hibernate. Nous proposons également des systèmes de traçage JIRA pour les "
|
||||
"rapports de bogues et les demandes sur les fonctionalités. Si vous êtes "
|
||||
"intéressé à participer au développement d'Hibernate, veuillez rejoindre la "
|
||||
"liste de distribution électronique des développeurs. "
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:125
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Commercial development support, production support, and training for "
|
||||
|
@ -199,8 +188,8 @@ msgid ""
|
|||
"critical component of the JBoss Enterprise Middleware System (JEMS) suite of "
|
||||
"products."
|
||||
msgstr ""
|
||||
"Le développement commercial, le support de production et les formations à "
|
||||
"Hibernate sont proposés par JBoss Inc (voir http://www.hibernate.org/"
|
||||
"SupportTraining/). Hibernate est un projet Open Source professionnel et un "
|
||||
"composant critique de la suite de produits JBoss Enterprise Middleware "
|
||||
"System (JEMS)."
|
||||
"Le support pour le développement commercial, le support production, et la "
|
||||
"formation Hibernate sont disponibles à travers JBoss Inc. (voir http://www."
|
||||
"hibernate.org/SupportTraining/). Hibernate est un projet professionnel en "
|
||||
"source ouverte et un composant critique de la suite de produits JBoss "
|
||||
"Enterprise Middleware System (JEMS). "
|
||||
|
|
|
@ -1,36 +1,38 @@
|
|||
# translation of query_criteria.po to French
|
||||
# Myriam Malga <mmalga@redhat.com>, 2007.
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007.
|
||||
# Corina Roe <croe@redhat.com>, 2009, 2010.
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: query_criteria\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:56+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:15\n"
|
||||
"PO-Revision-Date: 2010-01-05 09:43+1000\n"
|
||||
"Last-Translator: Corina Roe <croe@redhat.com>\n"
|
||||
"Language-Team: French <i18@redhat.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: query_criteria.xml:29
|
||||
#, no-c-format
|
||||
msgid "Criteria Queries"
|
||||
msgstr "Requêtes par critères"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:31
|
||||
#, no-c-format
|
||||
msgid "Hibernate features an intuitive, extensible criteria query API."
|
||||
msgstr ""
|
||||
"Hibernate offre une API d'interrogation par critères intuitive et extensible."
|
||||
|
||||
#. Tag: title
|
||||
#: query_criteria.xml:36
|
||||
#, no-c-format
|
||||
msgid "Creating a <literal>Criteria</literal> instance"
|
||||
msgstr "Créer une instance de <literal>Criteria</literal>"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:38
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The interface <literal>org.hibernate.Criteria</literal> represents a query "
|
||||
|
@ -38,26 +40,15 @@ msgid ""
|
|||
"factory for <literal>Criteria</literal> instances."
|
||||
msgstr ""
|
||||
"L'interface <literal>net.sf.hibernate.Criteria</literal> représente une "
|
||||
"requête sur une classe persistente donnée. La <literal>Session</literal> "
|
||||
"requête sur une classe persistante donnée. La <literal>Session</literal> "
|
||||
"fournit les instances de <literal>Criteria</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:44
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Criteria crit = sess.createCriteria(Cat.class);\n"
|
||||
"crit.setMaxResults(50);\n"
|
||||
"List cats = crit.list();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: query_criteria.xml:49
|
||||
#, no-c-format
|
||||
msgid "Narrowing the result set"
|
||||
msgstr "Restriction du résultat"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:51
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"An individual query criterion is an instance of the interface <literal>org."
|
||||
|
@ -65,187 +56,78 @@ msgid ""
|
|||
"criterion.Restrictions</literal> defines factory methods for obtaining "
|
||||
"certain built-in <literal>Criterion</literal> types."
|
||||
msgstr ""
|
||||
"Un criterion (critère de recherche) est une instance de l'interface "
|
||||
"<literal>org.hibernate.criterion.Criterion</literal>. La classe <literal>org."
|
||||
"hibernate.criterion.Restrictions</literal> définit des méthodes pour obtenir "
|
||||
"des types de <literal>Criterion</literal> pré-définis."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:59
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
|
||||
" .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
|
||||
" .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
"Un critère de recherche (criterion) individuel est une instance de "
|
||||
"l'interface <literal>org.hibernate.criterion.Criterion</literal>. La classe "
|
||||
"<literal>org.hibernate.criterion.Restrictions</literal> définit des méthodes "
|
||||
"de fabrique pour obtenir des types de <literal>Criterion</literal> intégrés."
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:61
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Restrictions can be grouped logically."
|
||||
msgstr "Les restrictions peuvent être goupées de manière logique."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:65
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
|
||||
" .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
|
||||
" .add( Restrictions.or(\n"
|
||||
" Restrictions.eq( \"age\", new Integer(0) ),\n"
|
||||
" Restrictions.isNull(\"age\")\n"
|
||||
" ) )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:67
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
|
||||
" .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", \"Pk"
|
||||
"\" } ) )\n"
|
||||
" .add( Restrictions.disjunction()\n"
|
||||
" .add( Restrictions.isNull(\"age\") )\n"
|
||||
" .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
|
||||
" .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
|
||||
" .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
|
||||
" ) )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
msgstr "Les restrictions peuvent être groupées de manière logique. "
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:69
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"There are a range of built-in criterion types (<literal>Restrictions</"
|
||||
"literal> subclasses). One of the most useful allows you to specify SQL "
|
||||
"directly."
|
||||
msgstr ""
|
||||
"Il y a plusieurs types de criterion pré-définis (sous classes de "
|
||||
"<literal>Restriction</literal>), mais l'une d'entre elle particulièrement "
|
||||
"utile vous permet de spécifier directement du SQL."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:74
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
|
||||
" .add( Restrictions.sqlRestriction(\"lower({alias}.name) like lower(?)\", "
|
||||
"\"Fritz%\", Hibernate.STRING) )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
"Il y a un grand choix de types de critères intégrés (sous classes de "
|
||||
"<literal>Restriction</literal>), dont un est particulièrement utile "
|
||||
"puisqu'il vous permet de spécifier directement SQL."
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:76
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>{alias}</literal> placeholder with be replaced by the row alias "
|
||||
"of the queried entity."
|
||||
msgstr ""
|
||||
"La zone <literal>{alias}</literal> sera remplacée par l'alias de colonne de "
|
||||
"l'entité que l'on souhaite intérroger."
|
||||
"l'entité que l'on souhaite interroger."
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:81
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can also obtain a criterion from a <literal>Property</literal> instance. "
|
||||
"You can create a <literal>Property</literal> by calling <literal>Property."
|
||||
"forName()</literal>:"
|
||||
msgstr ""
|
||||
"Une autre approche pour obtenir un criterion est de le récupérer d'une "
|
||||
"Une autre approche pour obtenir un critère est de le récupérer d'une "
|
||||
"instance de <literal>Property</literal>. Vous pouvez créer une "
|
||||
"<literal>Property</literal> en appelant <literal>Property.forName()</"
|
||||
"literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:87
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[\n"
|
||||
"Property age = Property.forName(\"age\");\n"
|
||||
"List cats = sess.createCriteria(Cat.class)\n"
|
||||
" .add( Restrictions.disjunction()\n"
|
||||
" .add( age.isNull() )\n"
|
||||
" .add( age.eq( new Integer(0) ) )\n"
|
||||
" .add( age.eq( new Integer(1) ) )\n"
|
||||
" .add( age.eq( new Integer(2) ) )\n"
|
||||
" ) )\n"
|
||||
" .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi\", "
|
||||
"\"Pk\" } ) )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
"literal>. "
|
||||
|
||||
#. Tag: title
|
||||
#: query_criteria.xml:92
|
||||
#, no-c-format
|
||||
msgid "Ordering the results"
|
||||
msgstr "Trier les résultats"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:94
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can order the results using <literal>org.hibernate.criterion.Order</"
|
||||
"literal>."
|
||||
msgstr ""
|
||||
"Vous pouvez trier les résultats en utilisant <literal>org.hibernate."
|
||||
"criterion.Order</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:98
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
|
||||
" .add( Restrictions.like(\"name\", \"F%\")\n"
|
||||
" .addOrder( Order.asc(\"name\") )\n"
|
||||
" .addOrder( Order.desc(\"age\") )\n"
|
||||
" .setMaxResults(50)\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:100
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
|
||||
" .add( Property.forName(\"name\").like(\"F%\") )\n"
|
||||
" .addOrder( Property.forName(\"name\").asc() )\n"
|
||||
" .addOrder( Property.forName(\"age\").desc() )\n"
|
||||
" .setMaxResults(50)\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
"criterion.Order</literal>. "
|
||||
|
||||
#. Tag: title
|
||||
#: query_criteria.xml:105
|
||||
#, no-c-format
|
||||
msgid "Associations"
|
||||
msgstr "Associations"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:107
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"By navigating associations using <literal>createCriteria()</literal> you can "
|
||||
"specify constraints upon related entities:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:112
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
|
||||
" .add( Restrictions.like(\"name\", \"F%\") )\n"
|
||||
" .createCriteria(\"kittens\")\n"
|
||||
" .add( Restrictions.like(\"name\", \"F%\") )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
"En naviguant les associations qui utilisent <literal>createCriteria()</"
|
||||
"literal>, vous pouvez spécifier des contraintes associées à des entités :"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:114
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The second <literal>createCriteria()</literal> returns a new instance of "
|
||||
"<literal>Criteria</literal> that refers to the elements of the "
|
||||
|
@ -253,28 +135,15 @@ msgid ""
|
|||
msgstr ""
|
||||
"Notez que la seconde <literal>createCriteria()</literal> retourne une "
|
||||
"nouvelle instance de <literal>Criteria</literal>, qui se rapporte aux "
|
||||
"éléments de la collection <literal>kittens</literal>."
|
||||
"éléments de la collection <literal>kittens</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:120
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"There is also an alternate form that is useful in certain circumstances:"
|
||||
msgstr "La forme alternative suivante est utile dans certains cas."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:124
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
|
||||
" .createAlias(\"kittens\", \"kt\")\n"
|
||||
" .createAlias(\"mate\", \"mt\")\n"
|
||||
" .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
"There is also an alternate form that is useful in certain circumstances:"
|
||||
msgstr "La forme alternative suivante est utile dans certains cas :"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:126
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"(<literal>createAlias()</literal> does not create a new instance of "
|
||||
|
@ -284,8 +153,7 @@ msgstr ""
|
|||
"<literal>Criteria</literal>.)"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:131
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The kittens collections held by the <literal>Cat</literal> instances "
|
||||
"returned by the previous two queries are <emphasis>not</emphasis> pre-"
|
||||
|
@ -295,97 +163,84 @@ msgstr ""
|
|||
"Notez que les collections kittens contenues dans les instances de "
|
||||
"<literal>Cat</literal> retournées par les deux précédentes requêtes ne sont "
|
||||
"<emphasis>pas</emphasis> pré-filtrées par les critères ! Si vous souhaitez "
|
||||
"récupérer uniquement les kittens qui correspondent à la criteria, vous devez "
|
||||
"utiliser <literal>ResultTransformer</literal>."
|
||||
"récupérer uniquement les kittens correspondant aux critères, vous devez "
|
||||
"utiliser <literal>ResultTransformer</literal>. "
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:138
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid "Additionally you may manipulate the result set using a left outer join:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
|
||||
" .createCriteria(\"kittens\", \"kt\")\n"
|
||||
" .add( Restrictions.eq(\"name\", \"F%\") )\n"
|
||||
" .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)\n"
|
||||
" .list();\n"
|
||||
"Iterator iter = cats.iterator();\n"
|
||||
"while ( iter.hasNext() ) {\n"
|
||||
" Map map = (Map) iter.next();\n"
|
||||
" Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
|
||||
" Cat kitten = (Cat) map.get(\"kt\");\n"
|
||||
"}]]>"
|
||||
"This will return all of the <literal>Cat</literal>s with a mate whose name "
|
||||
"starts with \"good\" ordered by their mate's age, and all cats who do not "
|
||||
"have a mate. This is useful when there is a need to order or limit in the "
|
||||
"database prior to returning complex/large result sets, and removes many "
|
||||
"instances where multiple queries would have to be performed and the results "
|
||||
"unioned by java in memory."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Without this feature, first all of the cats without a mate would need to be "
|
||||
"loaded in one query."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A second query would need to retreive the cats with mates who's name started "
|
||||
"with \"good\" sorted by the mates age."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid "Thirdly, in memory; the lists would need to be joined manually."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: query_criteria.xml:143
|
||||
#, no-c-format
|
||||
msgid "Dynamic association fetching"
|
||||
msgstr "Peuplement d'associations de manière dynamique"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:145
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can specify association fetching semantics at runtime using "
|
||||
"<literal>setFetchMode()</literal>."
|
||||
msgstr ""
|
||||
"Vous pouvez spéficier au moment de l'exécution le peuplement d'une "
|
||||
"association en utilisant <literal>setFetchMode()</literal> (c'est-à-dire le "
|
||||
"chargement de celle-ci). Cela permet de surcharger les valeurs \"lazy\" et "
|
||||
"\"outer-join\" du mapping."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:150
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
|
||||
" .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
|
||||
" .setFetchMode(\"mate\", FetchMode.EAGER)\n"
|
||||
" .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
"Vous pouvez spécifier, au moment de l'exécution, le peuplement d'une "
|
||||
"association en utilisant <literal>setFetchMode()</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:152
|
||||
#, no-c-format
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"This query will fetch both <literal>mate</literal> and <literal>kittens</"
|
||||
"literal> by outer join. See <xref linkend=\"performance-fetching\"/> for "
|
||||
"literal> by outer join. See <xref linkend=\"performance-fetching\" /> for "
|
||||
"more information."
|
||||
msgstr ""
|
||||
"Cette requête recherchera <literal>mate</literal> et <literal>kittens</"
|
||||
"literal> via les jointures externes. Voir <xref linkend=\"performance-"
|
||||
"fetching\"/> pour plus d'informations."
|
||||
"literal> via les jointures externes. Consultez <xref linkend=\"performance-"
|
||||
"fetching\" /> pour plus d'informations."
|
||||
|
||||
#. Tag: title
|
||||
#: query_criteria.xml:160
|
||||
#, no-c-format
|
||||
msgid "Example queries"
|
||||
msgstr "Requêtes par l'exemple"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:162
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The class <literal>org.hibernate.criterion.Example</literal> allows you to "
|
||||
"construct a query criterion from a given instance."
|
||||
msgstr ""
|
||||
"La classe <literal>org.hibernate.criterion.Example</literal> vous permet de "
|
||||
"construire un critère suivant une instance d'objet donnée."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:167
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Cat cat = new Cat();\n"
|
||||
"cat.setSex('F');\n"
|
||||
"cat.setColor(Color.BLACK);\n"
|
||||
"List results = session.createCriteria(Cat.class)\n"
|
||||
" .add( Example.create(cat) )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
"construire un critère de requête à partir d'une instance d'objet donnée."
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:169
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Version properties, identifiers and associations are ignored. By default, "
|
||||
|
@ -395,56 +250,26 @@ msgstr ""
|
|||
"Par défaut, les valeurs null sont exclues."
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:174
|
||||
#, no-c-format
|
||||
msgid "You can adjust how the <literal>Example</literal> is applied."
|
||||
msgstr ""
|
||||
"Vous pouvez ajuster la stratégie d'utilisation de valeurs de "
|
||||
"l'<literal>Exemple</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:178
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Example example = Example.create(cat)\n"
|
||||
" .excludeZeroes() //exclude zero valued properties\n"
|
||||
" .excludeProperty(\"color\") //exclude the property named \"color\"\n"
|
||||
" .ignoreCase() //perform case insensitive string "
|
||||
"comparisons\n"
|
||||
" .enableLike(); //use like for string comparisons\n"
|
||||
"List results = session.createCriteria(Cat.class)\n"
|
||||
" .add(example)\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:180
|
||||
#, no-c-format
|
||||
msgid "You can even use examples to place criteria upon associated objects."
|
||||
msgstr ""
|
||||
"Vous pouvez utiliser les \"exemples\" pour des critères sur les objets "
|
||||
"Vous pouvez utiliser les \"exemples\" pour des critères sur des objets "
|
||||
"associés."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:184
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List results = session.createCriteria(Cat.class)\n"
|
||||
" .add( Example.create(cat) )\n"
|
||||
" .createCriteria(\"mate\")\n"
|
||||
" .add( Example.create( cat.getMate() ) )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: query_criteria.xml:189
|
||||
#, no-c-format
|
||||
msgid "Projections, aggregation and grouping"
|
||||
msgstr "Projections, agrégation et regroupement"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:190
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The class <literal>org.hibernate.criterion.Projections</literal> is a "
|
||||
"factory for <literal>Projection</literal> instances. You can apply a "
|
||||
|
@ -452,34 +277,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"La classe <literal>org.hibernate.criterion.Projections</literal> est une "
|
||||
"fabrique d'instances de <literal>Projection</literal>. Nous appliquons une "
|
||||
"projection sur une requête en appelant <literal>setProjection()</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:196
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List results = session.createCriteria(Cat.class)\n"
|
||||
" .setProjection( Projections.rowCount() )\n"
|
||||
" .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:198
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List results = session.createCriteria(Cat.class)\n"
|
||||
" .setProjection( Projections.projectionList()\n"
|
||||
" .add( Projections.rowCount() )\n"
|
||||
" .add( Projections.avg(\"weight\") )\n"
|
||||
" .add( Projections.max(\"weight\") )\n"
|
||||
" .add( Projections.groupProperty(\"color\") )\n"
|
||||
" )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
"projection sur une requête en appelant <literal>setProjection()</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:200
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"There is no explicit \"group by\" necessary in a criteria query. Certain "
|
||||
|
@ -488,44 +288,21 @@ msgid ""
|
|||
msgstr ""
|
||||
"Il n'y a pas besoin de \"group by\" explicite dans une requête par critère. "
|
||||
"Certains types de projection sont définis pour être des "
|
||||
"<emphasis>projections de regroupement</emphasis>, lesquels apparaissent "
|
||||
"aussi dans la clause <literal>group by</literal> SQL."
|
||||
"<emphasis>projections de regroupement</emphasis>, qui apparaissent aussi "
|
||||
"dans la clause SQL <literal>group by</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:206
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"An alias can be assigned to a projection so that the projected value can be "
|
||||
"referred to in restrictions or orderings. Here are two different ways to do "
|
||||
"this:"
|
||||
msgstr ""
|
||||
"Un alias peut optionnellement être assigné à une projection, ainsi la valeur "
|
||||
"projetée peut être référencée dans des restrictions ou des tris. Voici deux "
|
||||
"façons différentes de faire ça :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:212
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List results = session.createCriteria(Cat.class)\n"
|
||||
" .setProjection( Projections.alias( Projections.groupProperty(\"color\"), "
|
||||
"\"colr\" ) )\n"
|
||||
" .addOrder( Order.asc(\"colr\") )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:214
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List results = session.createCriteria(Cat.class)\n"
|
||||
" .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
|
||||
" .addOrder( Order.asc(\"colr\") )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
"projetée peut être référencée dans des restrictions ou des tris. À cet "
|
||||
"effet, voici deux procédés différents : "
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:216
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>alias()</literal> and <literal>as()</literal> methods simply "
|
||||
|
@ -533,44 +310,13 @@ msgid ""
|
|||
"<literal>Projection</literal>. As a shortcut, you can assign an alias when "
|
||||
"you add the projection to a projection list:"
|
||||
msgstr ""
|
||||
"Les méthodes <literal>alias()</literal> et <literal>as()</literal> enveloppe "
|
||||
"simplement une instance de projection dans une autre instance (aliasée) de "
|
||||
"<literal>Projection</literal>. Comme un raccourci, vous pouvez assignez un "
|
||||
"alias lorsque vous ajoutez la projection à la liste de projections :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:223
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List results = session.createCriteria(Cat.class)\n"
|
||||
" .setProjection( Projections.projectionList()\n"
|
||||
" .add( Projections.rowCount(), \"catCountByColor\" )\n"
|
||||
" .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
|
||||
" .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
|
||||
" .add( Projections.groupProperty(\"color\"), \"color\" )\n"
|
||||
" )\n"
|
||||
" .addOrder( Order.desc(\"catCountByColor\") )\n"
|
||||
" .addOrder( Order.desc(\"avgWeight\") )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:225
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List results = session.createCriteria(Domestic.class, \"cat\")\n"
|
||||
" .createAlias(\"kittens\", \"kit\")\n"
|
||||
" .setProjection( Projections.projectionList()\n"
|
||||
" .add( Projections.property(\"cat.name\"), \"catName\" )\n"
|
||||
" .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
|
||||
" )\n"
|
||||
" .addOrder( Order.asc(\"catName\") )\n"
|
||||
" .addOrder( Order.asc(\"kitName\") )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
"Les méthodes <literal>alias()</literal> et <literal>as()</literal> "
|
||||
"enveloppent simplement une instance de projection dans une autre instance "
|
||||
"(aliasée) de <literal>Projection</literal>. Pour un raccourci, vous pouvez "
|
||||
"assigner un alias lorsque vous ajoutez la projection à une liste de "
|
||||
"projections :"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:227
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can also use <literal>Property.forName()</literal> to express "
|
||||
|
@ -579,41 +325,13 @@ msgstr ""
|
|||
"Vous pouvez aussi utiliser <literal>Property.forName()</literal> pour "
|
||||
"formuler des projections :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:231
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List results = session.createCriteria(Cat.class)\n"
|
||||
" .setProjection( Property.forName(\"name\") )\n"
|
||||
" .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:233
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[List results = session.createCriteria(Cat.class)\n"
|
||||
" .setProjection( Projections.projectionList()\n"
|
||||
" .add( Projections.rowCount().as(\"catCountByColor\") )\n"
|
||||
" .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
|
||||
" .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
|
||||
" .add( Property.forName(\"color\").group().as(\"color\" )\n"
|
||||
" )\n"
|
||||
" .addOrder( Order.desc(\"catCountByColor\") )\n"
|
||||
" .addOrder( Order.desc(\"avgWeight\") )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: query_criteria.xml:238
|
||||
#, no-c-format
|
||||
msgid "Detached queries and subqueries"
|
||||
msgstr "Requêtes et sous-requêtes détachées"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:239
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>DetachedCriteria</literal> class allows you to create a query "
|
||||
"outside the scope of a session and then execute it using an arbitrary "
|
||||
|
@ -621,86 +339,32 @@ msgid ""
|
|||
msgstr ""
|
||||
"La classe <literal>DetachedCriteria</literal> vous laisse créer une requête "
|
||||
"en dehors de la portée de la session, et puis l'exécuter plus tard en "
|
||||
"utilisant n'importe quelle <literal>Session</literal> arbitraire."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:244
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
|
||||
" .add( Property.forName(\"sex\").eq('F') );\n"
|
||||
" \n"
|
||||
"Session session = ....;\n"
|
||||
"Transaction txn = session.beginTransaction();\n"
|
||||
"List results = query.getExecutableCriteria(session).setMaxResults(100).list"
|
||||
"();\n"
|
||||
"txn.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"utilisant une <literal>Session</literal> arbitraire. "
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:246
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A <literal>DetachedCriteria</literal> can also be used to express a "
|
||||
"subquery. Criterion instances involving subqueries can be obtained via "
|
||||
"<literal>Subqueries</literal> or <literal>Property</literal>."
|
||||
msgstr ""
|
||||
"Une <literal>DetachedCriteria</literal> peut aussi être utilisée pour "
|
||||
"exprimer une sous-requête. Des instances de criterion impliquant des sous-"
|
||||
"Les <literal>DetachedCriteria</literal> peuvent aussi être utilisés pour "
|
||||
"exprimer une sous-requête. Des instances de critère impliquant des sous-"
|
||||
"requêtes peuvent être obtenues via <literal>Subqueries</literal> ou "
|
||||
"<literal>Property</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:252
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)\n"
|
||||
" .setProjection( Property.forName(\"weight\").avg() );\n"
|
||||
"session.createCriteria(Cat.class)\n"
|
||||
" .add( Property.forName(\"weight\").gt(avgWeight) )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:254
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
|
||||
" .setProjection( Property.forName(\"weight\") );\n"
|
||||
"session.createCriteria(Cat.class)\n"
|
||||
" .add( Subqueries.geAll(\"weight\", weights) )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
"<literal>Property</literal>. "
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:256
|
||||
#, fuzzy, no-c-format
|
||||
msgid "Correlated subqueries are also possible:"
|
||||
msgstr "Même des requêtes corrélées sont possibles :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:260
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat."
|
||||
"class, \"cat2\")\n"
|
||||
" .setProjection( Property.forName(\"weight\").avg() )\n"
|
||||
" .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
|
||||
"session.createCriteria(Cat.class, \"cat\")\n"
|
||||
" .add( Property.forName(\"weight\").gt(avgWeightForSex) )\n"
|
||||
" .list();]]>"
|
||||
msgstr ""
|
||||
msgid "Correlated subqueries are also possible:"
|
||||
msgstr "Des sous-requêtes corrélées sont également possibles :"
|
||||
|
||||
#. Tag: title
|
||||
#: query_criteria.xml:269
|
||||
#, no-c-format
|
||||
msgid "Queries by natural identifier"
|
||||
msgstr "Requêtes par identifiant naturel"
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:271
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For most queries, including criteria queries, the query cache is not "
|
||||
"efficient because query cache invalidation occurs too frequently. However, "
|
||||
|
@ -711,79 +375,38 @@ msgid ""
|
|||
msgstr ""
|
||||
"Pour la plupart des requêtes, incluant les requêtes par critère, le cache de "
|
||||
"requêtes n'est pas très efficace, parce que l'invalidation du cache de "
|
||||
"requêtes arrive trop souvent. Cependant, il y a une sorte spéciale de "
|
||||
"requête où nous pouvons optimiser l'algorithme d'invalidation du cache : les "
|
||||
"recherches sur une clef naturelle constante. Dans certaines applications, "
|
||||
"cette sorte de requête se produit fréquemment. L'API de critère fournit une "
|
||||
"provision spéciale pour ce cas d'utilisation."
|
||||
"requêtes arrive trop souvent. Cependant, il y existe une requête spéciale où "
|
||||
"l'on peut optimiser l'algorithme d'invalidation du cache : les recherches "
|
||||
"par une clef naturelle constante. Dans certaines applications, ce genre de "
|
||||
"requête se produit fréquemment. L'API des critères fournit une disposition "
|
||||
"spéciale pour ce cas d'utilisation. "
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:279
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"First, map the natural key of your entity using <literal><natural-id></"
|
||||
"literal> and enable use of the second-level cache."
|
||||
msgstr ""
|
||||
"D'abord vous devriez mapper la clef naturelle de votre entité en utilisant "
|
||||
"D'abord, vous devrez mapper la clé naturelle de votre entité en utilisant "
|
||||
"<literal><natural-id></literal>, et activer l'utilisation du cache de "
|
||||
"second niveau."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:284
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"User\">\n"
|
||||
" <cache usage=\"read-write\"/>\n"
|
||||
" <id name=\"id\">\n"
|
||||
" <generator class=\"increment\"/>\n"
|
||||
" </id>\n"
|
||||
" <natural-id>\n"
|
||||
" <property name=\"name\"/>\n"
|
||||
" <property name=\"org\"/>\n"
|
||||
" </natural-id>\n"
|
||||
" <property name=\"password\"/>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:286
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This functionality is not intended for use with entities with "
|
||||
"<emphasis>mutable</emphasis> natural keys."
|
||||
msgstr ""
|
||||
"Notez que cette fonctionnalité n'est pas prévue pour l'utilisation avec des "
|
||||
"entités avec des clefs naturelles <emphasis>mutables</emphasis>."
|
||||
"Cette fonctionnalité n'est pas prévue pour l'utilisation avec des entités "
|
||||
"avec des clés naturelles <emphasis>mutables</emphasis>."
|
||||
|
||||
#. Tag: para
|
||||
#: query_criteria.xml:291
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Once you have enabled the Hibernate query cache, the <literal>Restrictions."
|
||||
"naturalId()</literal> allows you to make use of the more efficient cache "
|
||||
"algorithm."
|
||||
msgstr ""
|
||||
"Maintenant <literal>Restrictions.naturalId()</literal> nous permet de rendre "
|
||||
"Une fois que vous aurez activé le cache de requête d'Hibernate, "
|
||||
"<literal>Restrictions.naturalId()</literal> vous permettra de rendre "
|
||||
"l'utilisation de l'algorithme de cache plus efficace."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: query_criteria.xml:297
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[session.createCriteria(User.class)\n"
|
||||
" .add( Restrictions.naturalId()\n"
|
||||
" .set(\"name\", \"gavin\")\n"
|
||||
" .set(\"org\", \"hb\") \n"
|
||||
" ).setCacheable(true)\n"
|
||||
" .uniqueResult();]]>"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid ""
|
||||
#~ "You may easily specify constraints upon related entities by navigating "
|
||||
#~ "associations using <literal>createCriteria()</literal>."
|
||||
#~ msgstr ""
|
||||
#~ "Vous pouvez facilement spécifier des contraintes sur des entités liées, "
|
||||
#~ "par des associations en utilisant <literal>createCriteria()</literal>."
|
||||
|
||||
#~ msgid "Next, enable the Hibernate query cache."
|
||||
#~ msgstr "Ensuite, activez le cache de requête d'Hibernate."
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,40 +1,42 @@
|
|||
# translation of xml.po to French
|
||||
# Myriam Malga <mmalga@redhat.com>, 2007.
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007.
|
||||
# Corina Roe <croe@redhat.com>, 2009, 2010.
|
||||
# translation of Collection_Mapping.po to
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: xml\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:56+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2010-02-10T07:25:35\n"
|
||||
"PO-Revision-Date: 2010-01-05 10:08+1000\n"
|
||||
"Last-Translator: Corina Roe <croe@redhat.com>\n"
|
||||
"Language-Team: French <i18@redhat.com>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:29
|
||||
#, no-c-format
|
||||
msgid "XML Mapping"
|
||||
msgstr "Mapping XML"
|
||||
msgstr "Mappage XML"
|
||||
|
||||
#. Tag: emphasis
|
||||
#: xml.xml:31
|
||||
#. Tag: para
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"XML Mapping is an experimental feature in Hibernate 3.0 and is currently "
|
||||
"under active development."
|
||||
"<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is "
|
||||
"currently under active development. </emphasis>"
|
||||
msgstr ""
|
||||
"Notez que cette fonctionnalité est expérimentale dans Hibernate 3.0 et est "
|
||||
"en développement extrêmement actif."
|
||||
"<emphasis>Notez que cette fonctionnalité est expérimentale dans Hibernate "
|
||||
"3.0 et est en développement extrêmement actif. </emphasis>"
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:37
|
||||
#, no-c-format
|
||||
msgid "Working with XML data"
|
||||
msgstr "Travailler avec des données XML"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:39
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate allows you to work with persistent XML data in much the same way "
|
||||
"you work with persistent POJOs. A parsed XML tree can be thought of as "
|
||||
|
@ -42,12 +44,11 @@ msgid ""
|
|||
"of POJOs."
|
||||
msgstr ""
|
||||
"Hibernate vous laisse travailler avec des données XML persistantes de la "
|
||||
"même manière que vous travaillez avec des POJOs persistants. Un arbre XML "
|
||||
"même manière que vous travaillez avec des POJO persistants. Un arbre XML "
|
||||
"peut être vu comme une autre manière de représenter les données "
|
||||
"relationnelles au niveau objet, à la place des POJOs."
|
||||
"relationnelles au niveau objet, à la place des POJO. "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:46
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate supports dom4j as API for manipulating XML trees. You can write "
|
||||
|
@ -59,181 +60,113 @@ msgid ""
|
|||
"yet supported)."
|
||||
msgstr ""
|
||||
"Hibernate supporte dom4j en tant qu'API pour la manipulation des arbres XML. "
|
||||
"Vous pouvez écrire des requêtes qui récupèrent des arbres dom4j à partie de "
|
||||
"Vous pouvez écrire des requêtes qui récupèrent des arbres dom4j à partir de "
|
||||
"la base de données, et avoir toutes les modifications que vous faites sur "
|
||||
"l'arbre automatiquement synchronisées dans la base de données. Vous pouvez "
|
||||
"même prendre un document XML, l'analyser en utilisant dom4j, et l'écrire "
|
||||
"dans la base de données via les opérations basiques d'Hibernate : "
|
||||
"dans la base de données via les opérations basiques de Hibernate : "
|
||||
"<literal>persist(), saveOrUpdate(), merge(), delete(), replicate()</literal> "
|
||||
"(merge() n'est pas encore supporté)."
|
||||
"(merge n'est pas encore supporté)."
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:56
|
||||
#, 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 ""
|
||||
"Cette fonctionnalité a plusieurs applications dont l'import/export de "
|
||||
"données, l'externalisation d'entités via JMS ou SOAP et les rapports XSLT."
|
||||
"données, l'externalisation de données d'entités via JMS ou SOAP et les "
|
||||
"rapports XSLT."
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:61
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A single mapping can 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 can be used to map just the XML."
|
||||
msgstr ""
|
||||
"Un simple mapping peut être utilisé pour simultanément mapper les propriétés "
|
||||
"d'une classe et les noeuds d'un document XML vers la base de données, ou, si "
|
||||
"il n'y a pas de classe à mapper, il peut être utilisé juste pour mapper le "
|
||||
"XML."
|
||||
"Un simple mappage peut être utilisé pour simultanément mapper les propriétés "
|
||||
"d'une classe et les noeuds d'un document XML vers la base de données, ou, "
|
||||
"s'il n'y a pas de classe à mapper, il peut être utilisé juste pour mapper le "
|
||||
"XML. "
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:68
|
||||
#, no-c-format
|
||||
msgid "Specifying XML and class mapping together"
|
||||
msgstr "Spécifier le mapping XML et le mapping d'une classe ensemble"
|
||||
msgstr "Spécifier le mappage XML et le mappage d'une classe ensemble"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:70
|
||||
#, no-c-format
|
||||
msgid "Here is an example of mapping a POJO and XML simultaneously:"
|
||||
msgstr "Voici un exemple de mapping d'un POJO et du XML simultanément :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:74
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"Account\" \n"
|
||||
" table=\"ACCOUNTS\" \n"
|
||||
" node=\"account\">\n"
|
||||
" \n"
|
||||
" <id name=\"accountId\" \n"
|
||||
" column=\"ACCOUNT_ID\" \n"
|
||||
" node=\"@id\"/>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"customer\" \n"
|
||||
" column=\"CUSTOMER_ID\" \n"
|
||||
" node=\"customer/@id\" \n"
|
||||
" embed-xml=\"false\"/>\n"
|
||||
" \n"
|
||||
" <property name=\"balance\" \n"
|
||||
" column=\"BALANCE\" \n"
|
||||
" node=\"balance\"/>\n"
|
||||
" \n"
|
||||
" ...\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
msgstr "Voici un exemple de mappage d'un POJO et du XML simultanément :"
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:78
|
||||
#, no-c-format
|
||||
msgid "Specifying only an XML mapping"
|
||||
msgstr "Spécifier seulement un mapping XML"
|
||||
msgstr "Spécifier seulement un mappage XML"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:80
|
||||
#, no-c-format
|
||||
msgid "Here is an example where there is no POJO class:"
|
||||
msgstr "Voici un exemple dans lequel il n'y a pas de class POJO :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:84
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<class entity-name=\"Account\" \n"
|
||||
" table=\"ACCOUNTS\" \n"
|
||||
" node=\"account\">\n"
|
||||
" \n"
|
||||
" <id name=\"id\" \n"
|
||||
" column=\"ACCOUNT_ID\" \n"
|
||||
" node=\"@id\" \n"
|
||||
" type=\"string\"/>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"customerId\" \n"
|
||||
" column=\"CUSTOMER_ID\" \n"
|
||||
" node=\"customer/@id\" \n"
|
||||
" embed-xml=\"false\" \n"
|
||||
" entity-name=\"Customer\"/>\n"
|
||||
" \n"
|
||||
" <property name=\"balance\" \n"
|
||||
" column=\"BALANCE\" \n"
|
||||
" node=\"balance\" \n"
|
||||
" type=\"big_decimal\"/>\n"
|
||||
" \n"
|
||||
" ...\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
msgstr "Voici un exemple dans lequel il n'y a pas de classe POJO :"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:86
|
||||
#, fuzzy, no-c-format
|
||||
#, 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 or java <literal>Map</literal>s. The property "
|
||||
"names are purely logical constructs that can be referred to in HQL queries."
|
||||
msgstr ""
|
||||
"Ce mapping vous permet d'accéder aux données comme un arbre dom4j, ou comme "
|
||||
"un graphe de paire nom de propriété/valeur (<literal>Map</literal>s java). "
|
||||
"Ce mappage vous permet d'accéder aux données comme un arbre dom4j, ou comme "
|
||||
"un graphe de paire nom/valeur de propriété (<literal>Map</literal> s java). "
|
||||
"Les noms des propriétés sont des constructions purement logiques qui peuvent "
|
||||
"être référées des dans requêtes HQL."
|
||||
"être référées dans des requêtes HQL. "
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:97
|
||||
#, no-c-format
|
||||
msgid "XML mapping metadata"
|
||||
msgstr "Métadonnées du mapping XML"
|
||||
msgstr "Métadonnées du mappage XML"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:99
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"A range of Hibernate mapping elements accept the <literal>node</literal> "
|
||||
"attribute. This lets you specify the name of an XML attribute or element "
|
||||
"that holds the property or entity data. The format of the <literal>node</"
|
||||
"literal> attribute must be one of the following:"
|
||||
msgstr ""
|
||||
"Plusieurs éléments du mapping Hibernate acceptent l'attribut <literal>node</"
|
||||
"Plusieurs éléments du mappage Hibernate acceptent l'attribut <literal>node</"
|
||||
"literal>. Ceci vous permet de spécifier le nom d'un attribut XML ou d'un "
|
||||
"élément qui contient la propriété ou les données de l'entité. Le format de "
|
||||
"l'attribut <literal>node</literal> doit être un des suivants :"
|
||||
"l'attribut <literal>node</literal> doit être un des suivants : "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:108
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "<literal>\"element-name\"</literal>: map to the named XML element"
|
||||
msgstr "<literal>\"element-name\"</literal> - mappe vers l'élément XML nommé"
|
||||
msgstr "<literal>\"element-name\"</literal> - mappe vers l'élément XML nommé "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:111
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
|
||||
msgstr ""
|
||||
"<literal>\"@attribute-name\"</literal> - mappe vers l'attribut XML nommé"
|
||||
"<literal>\"@attribute-name\"</literal> - mappe vers l'attribut XML nommé "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:114
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "<literal>\".\"</literal>: map to the parent element"
|
||||
msgstr "<literal>\".\"</literal> - mappe vers le parent de l'élément"
|
||||
msgstr "<literal>\".\"</literal> - mappe vers le parent de l'élément "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:117
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<literal>\"element-name/@attribute-name\"</literal>: map to the named "
|
||||
"attribute of the named element"
|
||||
msgstr ""
|
||||
"<literal>\"element-name/@attribute-name\"</literal> - mappe vers l'élément "
|
||||
"nommé de l'attribut nommé"
|
||||
"nommé de l'attribut nommé "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:124
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For collections and single valued associations, there is an additional "
|
||||
"<literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</"
|
||||
|
@ -250,201 +183,61 @@ msgstr ""
|
|||
"l'arbre XML pour l'entité qui possède l'association. Sinon, si "
|
||||
"<literal>embed-xml=\"false\"</literal>, alors seule la valeur de "
|
||||
"l'identifiant référencé apparaîtra dans le XML pour de simples associations "
|
||||
"de points, et les collections n'appraîtront simplement pas."
|
||||
"de points, et les collections n'apparaîtront pas. "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:134
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Do not leave <literal>embed-xml=\"true\"</literal> for too many "
|
||||
"associations, since XML does not deal well with circularity."
|
||||
msgstr ""
|
||||
"Vous devriez faire attention à ne pas laisser <literal>embed-xml=\"true\"</"
|
||||
"literal> pour trop d'associations, puisque XML ne traite pas bien les liens "
|
||||
"circurlaires."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:139
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"Customer\" \n"
|
||||
" table=\"CUSTOMER\" \n"
|
||||
" node=\"customer\">\n"
|
||||
" \n"
|
||||
" <id name=\"id\" \n"
|
||||
" column=\"CUST_ID\" \n"
|
||||
" node=\"@id\"/>\n"
|
||||
" \n"
|
||||
" <map name=\"accounts\" \n"
|
||||
" node=\".\" \n"
|
||||
" embed-xml=\"true\">\n"
|
||||
" <key column=\"CUSTOMER_ID\" \n"
|
||||
" not-null=\"true\"/>\n"
|
||||
" <map-key column=\"SHORT_DESC\" \n"
|
||||
" node=\"@short-desc\" \n"
|
||||
" type=\"string\"/>\n"
|
||||
" <one-to-many entity-name=\"Account\"\n"
|
||||
" embed-xml=\"false\" \n"
|
||||
" node=\"account\"/>\n"
|
||||
" </map>\n"
|
||||
" \n"
|
||||
" <component name=\"name\" \n"
|
||||
" node=\"name\">\n"
|
||||
" <property name=\"firstName\" \n"
|
||||
" node=\"first-name\"/>\n"
|
||||
" <property name=\"initial\" \n"
|
||||
" node=\"initial\"/>\n"
|
||||
" <property name=\"lastName\" \n"
|
||||
" node=\"last-name\"/>\n"
|
||||
" </component>\n"
|
||||
" \n"
|
||||
" ...\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"Faire attention à ne pas laisser <literal>embed-xml=\"true\"</literal> pour "
|
||||
"trop d'associations, puisque XML ne traite pas bien les liens circulaires. "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:141
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"In this case, the collection of account ids is embedded, but not the actual "
|
||||
"account data. The following HQL query:"
|
||||
msgstr ""
|
||||
"dans ce cas, nous avons décidé d'embarquer la collection d'identifiants de "
|
||||
"Dans ce cas, nous avons décidé d'embarquer la collection d'identifiants de "
|
||||
"compte, mais pas les données actuelles du compte. La requête HQL suivante :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:146
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :"
|
||||
"lastName]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:148
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "would return datasets such as this:"
|
||||
msgstr "devrait retourner l'ensemble de données suivant :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:152
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<customer id=\"123456789\">\n"
|
||||
" <account short-desc=\"Savings\">987632567</account>\n"
|
||||
" <account short-desc=\"Credit Card\">985612323</account>\n"
|
||||
" <name>\n"
|
||||
" <first-name>Gavin</first-name>\n"
|
||||
" <initial>A</initial>\n"
|
||||
" <last-name>King</last-name>\n"
|
||||
" </name>\n"
|
||||
" ...\n"
|
||||
"</customer>]]>"
|
||||
msgstr ""
|
||||
msgstr "devrait retourner l'ensemble de données suivant : "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:154
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-"
|
||||
"many></literal> mapping, the data might look more like this:"
|
||||
msgstr ""
|
||||
"Si vous positionnez <literal>embed-xml=\"true\"</literal> sur le mapping "
|
||||
"<literal><one-to-many></literal>, les données pourraient ressembler "
|
||||
"plus à ça :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:159
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[<customer id=\"123456789\">\n"
|
||||
" <account id=\"987632567\" short-desc=\"Savings\">\n"
|
||||
" <customer id=\"123456789\"/>\n"
|
||||
" <balance>100.29</balance>\n"
|
||||
" </account>\n"
|
||||
" <account id=\"985612323\" short-desc=\"Credit Card\">\n"
|
||||
" <customer id=\"123456789\"/>\n"
|
||||
" <balance>-2370.34</balance>\n"
|
||||
" </account>\n"
|
||||
" <name>\n"
|
||||
" <first-name>Gavin</first-name>\n"
|
||||
" <initial>A</initial>\n"
|
||||
" <last-name>King</last-name>\n"
|
||||
" </name>\n"
|
||||
" ...\n"
|
||||
"</customer>]]>"
|
||||
msgstr ""
|
||||
"Si vous positionnez <literal>embed-xml=\"true\"</literal> sur le mappage "
|
||||
"<literal><one-to-many></literal>, les données ressembleraient à ce qui "
|
||||
"suit :"
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:165
|
||||
#, no-c-format
|
||||
msgid "Manipulating XML data"
|
||||
msgstr "Manipuler des données XML"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:167
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can also re-read and update XML documents in the application. You can do "
|
||||
"this by obtaining a dom4j session:"
|
||||
msgstr ""
|
||||
"Relisons et mettons à jour des documents XML dans l'application. Nous "
|
||||
"faisons ça en obtenant une session dom4j :"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:172
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Document doc = ....;\n"
|
||||
" \n"
|
||||
"Session session = factory.openSession();\n"
|
||||
"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"List results = dom4jSession\n"
|
||||
" .createQuery(\"from Customer c left join fetch c.accounts where c."
|
||||
"lastName like :lastName\")\n"
|
||||
" .list();\n"
|
||||
"for ( int i=0; i<results.size(); i++ ) {\n"
|
||||
" //add the customer data to the XML document\n"
|
||||
" Element customer = (Element) results.get(i);\n"
|
||||
" doc.add(customer);\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:174
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = factory.openSession();\n"
|
||||
"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
|
||||
"for ( int i=0; i<results.size(); i++ ) {\n"
|
||||
" Element customer = (Element) results.get(i);\n"
|
||||
" //change the customer name in the XML and database\n"
|
||||
" Element name = customer.element(\"name\");\n"
|
||||
" name.element(\"first-name\").setText(firstName);\n"
|
||||
" name.element(\"initial\").setText(initial);\n"
|
||||
" name.element(\"last-name\").setText(lastName);\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"effectuons cela en obtenant une session dom4j : "
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:176
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"When implementing XML-based data import/export, it is useful to combine this "
|
||||
"feature with Hibernate's <literal>replicate()</literal> operation."
|
||||
msgstr ""
|
||||
"Il est extrêmement utile de combiner cette fonctionnalité avec l'opération "
|
||||
"<literal>replicate()</literal> d'Hibernate pour implémenter des imports/"
|
||||
"exports de données XML."
|
||||
"<literal>replicate()</literal> de Hibernate pour implémenter des imports/"
|
||||
"exports de données XML. "
|
||||
|
|
|
@ -2,35 +2,33 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:56+0000\n"
|
||||
"POT-Creation-Date: 2010-02-04T04:51:23\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: legal_notice.xml:28
|
||||
#, no-c-format
|
||||
msgid "Legal Notice"
|
||||
msgstr "Legal Notice"
|
||||
|
||||
#. Tag: address
|
||||
#: legal_notice.xml:30
|
||||
#, no-c-format
|
||||
#. Tag: para
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"<street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</"
|
||||
"state><postcode>27606-2072</postcode><country>USA</country> <phone>Phone: +1 "
|
||||
"919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 "
|
||||
"3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, "
|
||||
"<state>NC</state><postcode>27709</postcode><country>USA</country>"
|
||||
"<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, "
|
||||
"<state>NC</state><postcode>27606-2072</postcode><country>USA</country> "
|
||||
"<phone>Phone: +1 919 754 3700</phone> <phone>Phone: 888 733 4281</phone> "
|
||||
"<fax>Fax: +1 919 754 3701</fax> <pob>PO Box 13588</pob><city>Research "
|
||||
"Triangle Park</city>, <state>NC</state><postcode>27709</"
|
||||
"postcode><country>USA</country> </address>"
|
||||
msgstr ""
|
||||
"<street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</"
|
||||
"<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</"
|
||||
"state><postcode>27606-2072</postcode><country>USA</country> <phone>Phone: +1 "
|
||||
"919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 "
|
||||
"3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, "
|
||||
"<state>NC</state><postcode>27709</postcode><country>USA</country>"
|
||||
"<state>NC</state><postcode>27709</postcode><country>USA</country> </address>"
|
||||
|
||||
#. Tag: para
|
||||
#: legal_notice.xml:39
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. "
|
||||
|
@ -46,7 +44,6 @@ msgstr ""
|
|||
"Public License</ulink>, as published by the Free Software Foundation."
|
||||
|
||||
#. Tag: para
|
||||
#: legal_notice.xml:45
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red "
|
||||
|
@ -56,7 +53,6 @@ msgstr ""
|
|||
"Hat, Inc. in the United States and other countries."
|
||||
|
||||
#. Tag: para
|
||||
#: legal_notice.xml:48
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"All other trademarks referenced herein are the property of their respective "
|
||||
|
@ -66,13 +62,11 @@ msgstr ""
|
|||
"owners."
|
||||
|
||||
#. Tag: para
|
||||
#: legal_notice.xml:51
|
||||
#, no-c-format
|
||||
msgid "The GPG fingerprint of the security@redhat.com key is:"
|
||||
msgstr "The GPG fingerprint of the security@redhat.com key is:"
|
||||
|
||||
#. Tag: para
|
||||
#: legal_notice.xml:54
|
||||
#, no-c-format
|
||||
msgid "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
|
||||
msgstr "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
|
||||
|
|
|
@ -1,32 +1,30 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:14\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Language-Team: LANGUAGE <kde-i18n-doc@kde.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: application/x-xml2pot; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Tag: title
|
||||
#: Hibernate_Reference.xml:35
|
||||
#, no-c-format
|
||||
msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
|
||||
msgstr "HIBERNATE - Relational Persistence for Idiomatic Java"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: subtitle
|
||||
#: Hibernate_Reference.xml:36
|
||||
#, no-c-format
|
||||
msgid "Hibernate Reference Documentation"
|
||||
msgstr "Hibernate Reference Documentation"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: holder
|
||||
#: Hibernate_Reference.xml:51
|
||||
#. Tag: releaseinfo
|
||||
#, no-c-format
|
||||
msgid "©rightHolder;"
|
||||
msgstr "©rightHolder;"
|
||||
|
||||
#~ msgid "ROLES_OF_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
#~ msgid "CREDIT_FOR_TRANSLATORS"
|
||||
#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
msgid "&versionNumber;"
|
||||
msgstr ""
|
||||
|
|
|
@ -5,7 +5,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"POT-Creation-Date: 2010-02-04T04:51:21\n"
|
||||
"PO-Revision-Date: 2009-07-14 19:55+0000\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
|
@ -13,209 +13,137 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:27
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Gavin</firstname> <surname>King</surname>"
|
||||
msgid "Gavin"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:31
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
|
||||
msgid "Christian"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:35
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
|
||||
"surname>"
|
||||
msgid "Max"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:40
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<author><firstname>Emmanuel</firstname> <surname>Bernard</surname></author>"
|
||||
msgid "Emmanuel"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: author_group.xml:44
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Steve</firstname> <surname>Ebersole</surname>"
|
||||
msgid "Steve"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:49
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>James</firstname> <surname>Cobb</surname>"
|
||||
msgid "James"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: shortaffil
|
||||
#: author_group.xml:53 author_group.xml:60
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "Graphic Design"
|
||||
msgid "Cheyenne"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:56
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Cheyenne</firstname> <surname>Weaver</surname>"
|
||||
msgid "Vincent"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:69
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<othername><![CDATA[Bernardo Antonio Buffa Colomé]]></othername> "
|
||||
"<email>kreimer@bbs.frc.utn.edu.ar</email>"
|
||||
msgid "Sebastien"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:79
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Vincent</firstname> <surname>Ricard</surname>"
|
||||
msgid "Michael"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:83
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Sebastien</firstname> <surname>Cesbron</surname>"
|
||||
msgid "Baptiste"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:87
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Michael</firstname> <surname>Courcy</surname>"
|
||||
msgid "Anthony"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:91
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Vincent</firstname> <surname>Giguère</surname>"
|
||||
msgid "Alvaro"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:95
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Baptiste</firstname> <surname>Mathus</surname>"
|
||||
msgid "Anderson"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:99
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<othercredit><firstname>Emmanuel</firstname> <surname>Bernard</surname></"
|
||||
"othercredit>"
|
||||
msgid "Daniel Vieira"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:103
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Anthony</firstname> <surname>Patricio</surname>"
|
||||
msgid "Francisco"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:113
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Alvaro</firstname> <surname>Netto</surname> "
|
||||
"<email>alvaronetto@cetip.com.br</email>"
|
||||
msgid "Gamarra"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:118
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Anderson</firstname> <surname>Braulio</surname> "
|
||||
"<email>andersonbraulio@gmail.com</email>"
|
||||
msgid "Luiz Carlos"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:123
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Daniel Vieira</firstname> <surname>Costa</surname> "
|
||||
"<email>danielvc@gmail.com</email>"
|
||||
msgid "Marcel"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:128
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Francisco</firstname> <surname>gamarra</surname> <email>francisco."
|
||||
"gamarra@gmail.com</email>"
|
||||
msgid "Paulo"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:133
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Gamarra</firstname> <email>mauricio.gamarra@gmail.com</email>"
|
||||
msgid "Pablo L."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:137
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Luiz Carlos</firstname> <surname>Rodrigues</surname> "
|
||||
"<email>luizcarlos_rodrigues@yahoo.com.br</email>"
|
||||
msgid "Renato"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:142
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Marcel</firstname> <surname>Castelo</surname> <email>marcel."
|
||||
"castelo@gmail.com</email>"
|
||||
msgid "Rogério"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:147
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Paulo</firstname> <surname>César</surname> <email>paulocol@gmail."
|
||||
"com</email>"
|
||||
msgid "Wanderson"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:152
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Pablo L.</firstname> <surname>de Miranda</surname> "
|
||||
"<email>pablolmiranda@gmail.com</email>"
|
||||
msgid "Cao"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:157
|
||||
#. Tag: orgname
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Renato</firstname> <surname>Deggau</surname> <email>rdeggau@gmail."
|
||||
"com</email>"
|
||||
msgid "RedSaga"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:162
|
||||
#. Tag: contrib
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Rogério</firstname> <surname>Araújo</surname> "
|
||||
"<email>rgildoaraujo@yahoo.com.br</email>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:167
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Wanderson</firstname> <surname>Siqueira</surname> "
|
||||
"<email>wandersonxs@gmail.com</email>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: othercredit
|
||||
#: author_group.xml:178
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<firstname>Cao</firstname> <surname>Xiaogang</surname> <affiliation> "
|
||||
"<orgname>RedSaga</orgname> </affiliation> <contrib>Translation Lead</"
|
||||
"contrib> <email>caoxg@yahoo.com</email>"
|
||||
msgid "Translation Lead"
|
||||
msgstr ""
|
||||
|
|
|
@ -1,36 +1,35 @@
|
|||
# translation of Collection_Mapping.po to
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007, 2010.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: Collection_Mapping\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2010-02-10T07:25:34\n"
|
||||
"PO-Revision-Date: 2010-01-13 10:25+1000\n"
|
||||
"Last-Translator: Xi HUANG <xhuang@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:30
|
||||
#, no-c-format
|
||||
msgid "Architecture"
|
||||
msgstr "アーキテクチャ"
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:33
|
||||
#, no-c-format
|
||||
msgid "Overview"
|
||||
msgstr "概観"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:35
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The diagram below provides a high-level view of the Hibernate architecture:"
|
||||
msgstr "Hibernateアーキテクチャの(非常に)高いレベルからのビュー:"
|
||||
msgstr "Hibernate アーキテクチャの(非常に)高いレベルからのビュー:"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:48
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"We do not have the scope in this document to provide a more detailed view of "
|
||||
|
@ -38,61 +37,56 @@ msgid ""
|
|||
"several different approaches. We will, however, show the two extremes: "
|
||||
"\"minimal\" architecture and \"comprehensive\" architecture."
|
||||
msgstr ""
|
||||
"ここで実行時アーキテクチャのより詳細なビューをお見せしましょう。 あいにく、"
|
||||
"Hibernateは柔軟であり、いろいろなアプローチをサポートしています。 ここでは、2"
|
||||
"つの極端な例をお見せします。 「軽い」アーキテクチャでは、アプリケーションが自"
|
||||
"前のJDBCコネクションを用意し、 アプリケーション自身がトランザクションを管理し"
|
||||
"ます。 この方法は、Hibernate APIの最小限のサブセットを使います:"
|
||||
"ここで実行時アーキテクチャのより詳細なビューをお見せしましょう。あいにく、 "
|
||||
"Hibernate は柔軟であり、いろいろなアプローチをサポートしています。ここでは、2"
|
||||
"つの極端な例をお見せします。「軽い」アーキテクチャでは、アプリケーションが自"
|
||||
"前の JDBC コネクションを用意し、アプリケーション自身がトランザクションを管理"
|
||||
"します。この方法は、 Hibernate API の最小限のサブセットを使います:"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:54
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This next diagram illustrates how Hibernate utilizes database and "
|
||||
"configuration data to provide persistence services, and persistent objects, "
|
||||
"to the application."
|
||||
msgstr ""
|
||||
"この図はHibernateが、アプリケーションに対して永続化サービス (と永続オブジェ"
|
||||
"クト)を提供するために、データベースと設定データを使うことを 示しています。"
|
||||
"この図は Hibernate が、アプリケーションに対して永続化サービス (と永続オブ"
|
||||
"ジェクト)を提供するために、データベースと設定データを使うことを示していま"
|
||||
"す。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:59
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"The \"minimal\" 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の最小限のサブセットを使います:"
|
||||
"ここで実行時アーキテクチャのより詳細なビューをお見せしましょう。あいにく、 "
|
||||
"Hibernate は柔軟であり、いろいろなアプローチをサポートしています。ここでは、2"
|
||||
"つの極端な例をお見せします。「軽い」アーキテクチャでは、アプリケーションが自"
|
||||
"前の JDBC コネクションを用意し、アプリケーション自身がトランザクションを管理"
|
||||
"します。この方法は、 Hibernate API の最小限のサブセットを使います:"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:74
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"The \"comprehensive\" architecture abstracts the application away from the "
|
||||
"underlying JDBC/JTA APIs and allows Hibernate to manage the details."
|
||||
msgstr ""
|
||||
"「重い」アーキテクチャは、アプリケーションから、その下に位置するJDBCやJTAの"
|
||||
"APIを 取り払って抽象化し、その詳細の面倒をHibernateに見させます。"
|
||||
"「軽い」アーキテクチャは、アプリケーションから、その下に位置する JDBC や JTA "
|
||||
"の API を取り払って抽象化し、その詳細の面倒を Hibernate に見させます。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:88
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Here are some definitions of the objects depicted in the diagrams:"
|
||||
msgstr "以下は、上の図に含まれるオブジェクトの定義です: <placeholder-1/>"
|
||||
msgstr "以下は、図に含まれるオブジェクトの定義です:"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:93
|
||||
#, no-c-format
|
||||
msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
|
||||
msgstr "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:95
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"A threadsafe, immutable cache of compiled mappings for a single database. A "
|
||||
|
@ -101,20 +95,18 @@ msgid ""
|
|||
"hold an optional (second-level) cache of data that is reusable between "
|
||||
"transactions at a process, or cluster, level."
|
||||
msgstr ""
|
||||
"1つのデータベースに対するコンパイルされたマッピングの スレッドセーフな(更新"
|
||||
"不能の)キャッシュ。 <literal>Session</literal> のファクトリであり、 "
|
||||
"<literal>ConnectionProvider</literal> のクライアント。 オプションとして、プロ"
|
||||
"セスまたはクラスタレベルにおいて、 トランザクション間で再利用可能なデータの"
|
||||
"1つのデータベースに対するコンパイルされたマッピングのスレッドセーフな(更新不"
|
||||
"能の)キャッシュ。 <literal>Session</literal> のファクトリであり、 "
|
||||
"<literal>ConnectionProvider</literal> のクライアント。オプションとして、プロ"
|
||||
"セスまたはクラスタレベルにおいて、トランザクション間で再利用可能なデータの"
|
||||
"(二次)キャッシュを持ちます。"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:105
|
||||
#, no-c-format
|
||||
msgid "Session (<literal>org.hibernate.Session</literal>)"
|
||||
msgstr "Session (<literal>org.hibernate.Session</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:107
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"A single-threaded, short-lived object representing a conversation between "
|
||||
|
@ -123,21 +115,19 @@ msgid ""
|
|||
"holds a mandatory first-level cache of persistent objects that are used when "
|
||||
"navigating the object graph or looking up objects by identifier."
|
||||
msgstr ""
|
||||
"アプリケーションと永続ストアとの対話を表す、 シングルスレッドで短命のオブジェ"
|
||||
"クト。 JDBCコネクションをラップします。 <literal>Transaction</literal> のファ"
|
||||
"クトリです。 永続オブジェクトの必須の(一次)キャッシュを保持します。 この"
|
||||
"キャッシュはオブジェクトグラフをナビゲーションする時や、 識別子でオブジェクト"
|
||||
"アプリケーションと永続ストアとの対話を表す、シングルスレッドで短命のオブジェ"
|
||||
"クト。 JDBC コネクションをラップします。 <literal>Transaction</literal> の"
|
||||
"ファクトリです。永続オブジェクトの必須の(一次)キャッシュを保持します。この"
|
||||
"キャッシュはオブジェクトグラフをナビゲーションする時や、識別子でオブジェクト"
|
||||
"を検索する時に使われます。"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:117
|
||||
#, no-c-format
|
||||
msgid "Persistent objects and collections"
|
||||
msgstr "Persistent objects と Collections"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:119
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Short-lived, single threaded objects containing persistent state and "
|
||||
"business function. These can be ordinary JavaBeans/POJOs. They are "
|
||||
|
@ -146,43 +136,38 @@ msgid ""
|
|||
"in any application layer (for example, directly as data transfer objects to "
|
||||
"and from presentation)."
|
||||
msgstr ""
|
||||
"永続化状態とビジネスメソッドを持つ、短命でシングルスレッドのオブジェクト。 こ"
|
||||
"れは通常のJavaBeans/POJOのこともありますが、特徴的なことは、 その時点での(た"
|
||||
"だ1つの) <literal>Session</literal> と関連していることです。 "
|
||||
"<literal>Session</literal> がクローズされるとすぐに、 それらは切り離されて他"
|
||||
"のアプリケーション層から自由に使うことができます。 (例えばデータ・トランス"
|
||||
"ファ・オブジェクトとして、 プレゼンテーション層から、またはプレゼンテーション"
|
||||
"層へ直接使用できます。)"
|
||||
"永続化状態とビジネス機能を持つ、短命でシングルスレッドのオブジェクト。これは"
|
||||
"通常の JavaBeans/POJO のこともありますが、特徴的なことは、その時点での(ただ1"
|
||||
"つの) <literal>Session</literal> と関連していることです。 <literal>Session</"
|
||||
"literal> がクローズされるとすぐに、それらは切り離されて他のアプリケーション層"
|
||||
"から自由に使うことができます(例えばデータトランスファオブジェクトとして、プ"
|
||||
"レゼンテーション層から、またはプレゼンテーション層へ直接使用できます)。"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:129
|
||||
#, no-c-format
|
||||
msgid "Transient and detached objects and collections"
|
||||
msgstr "Transient と detached な objects と Collections"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:131
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Instances of persistent classes that are not currently associated with a "
|
||||
"<literal>Session</literal>. They may have been instantiated by the "
|
||||
"application and not yet persisted, or they may have been instantiated by a "
|
||||
"closed <literal>Session</literal>."
|
||||
msgstr ""
|
||||
"現時点では <literal>Session</literal> と関連していない、 永続クラスのインスタ"
|
||||
"ンス。 すでにアプリケーション側でインスタンス化されていて、まだ永続化されてい"
|
||||
"ないか、 クローズされた <literal>Session</literal> でインスタンス化されたかの"
|
||||
"現時点では <literal>Session</literal> と関連していない、永続クラスのインスタ"
|
||||
"ンス。すでにアプリケーション側でインスタンス化されていて、まだ永続化されてい"
|
||||
"ないか、クローズされた <literal>Session</literal> でインスタンス化されたかの"
|
||||
"どちらかです。"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:140
|
||||
#, no-c-format
|
||||
msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
|
||||
msgstr "Transaction (<literal>org.hibernate.Transaction</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:142
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"(Optional) A single-threaded, short-lived object used by the application to "
|
||||
"specify atomic units of work. It abstracts the application from the "
|
||||
|
@ -191,16 +176,15 @@ msgid ""
|
|||
"transaction demarcation, either using the underlying API or "
|
||||
"<literal>Transaction</literal>, is never optional."
|
||||
msgstr ""
|
||||
"(オプション)原子性を持つ作業単位(Unit of Work)を指定するために、アプリケー"
|
||||
"ションが使用する、 シングルスレッドで短命なオブジェクト。 下に位置するJDBC、"
|
||||
"JTA、CORBAトランザクションからアプリケーションを抽象化します。 "
|
||||
"<literal>Session</literal> は、時には いくつかの <literal>Transaction</"
|
||||
"literal> をまたがるかもしれません。 しかし、下の層のAPIを使うにせよ、 "
|
||||
"<literal>Transaction</literal> を使うにせよ、 トランザクション境界を設定する"
|
||||
"ことは、決してオプションではありません!。"
|
||||
"(オプション) 原子性を持つ作業単位 (Unit of Work) を指定するために、アプリケー"
|
||||
"ションが使用する、シングルスレッドで短命なオブジェクト。下に位置する JDBC 、 "
|
||||
"JTA 、 CORBA トランザクションからアプリケーションを抽象化します。 "
|
||||
"<literal>Session</literal> は、時にはいくつかの <literal>Transaction</"
|
||||
"literal> をまたがるかもしれません。しかし、下の層の API を使うにせよ、 "
|
||||
"<literal>Transaction</literal> を使うにせよ、トランザクション境界を設定するこ"
|
||||
"とは、決してオプションではありません。"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:153
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
|
||||
|
@ -210,21 +194,19 @@ msgstr ""
|
|||
"literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:155
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"(Optional) A factory for, and pool of, JDBC connections. It abstracts the "
|
||||
"application from underlying <literal>Datasource</literal> or "
|
||||
"<literal>DriverManager</literal>. It is not exposed to application, but it "
|
||||
"can be extended and/or implemented by the developer."
|
||||
msgstr ""
|
||||
"(オプション)JDBCコネクション(とそのプール)のファクトリ。 下の層に位置する "
|
||||
"(オプション) JDBC コネクション(とそのプール)のファクトリ。下の層に位置する "
|
||||
"<literal>Datasource</literal> や <literal>DriverManager</literal> からアプリ"
|
||||
"ケーションを抽象化します。 アプリケーションには公開されませんが、開発者が継承"
|
||||
"ケーションを抽象化します。アプリケーションには公開されませんが、開発者が継承"
|
||||
"または実装することは可能です。"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:163
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
|
||||
|
@ -232,90 +214,80 @@ msgstr ""
|
|||
"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:165
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"(Optional) A factory for <literal>Transaction</literal> instances. It is not "
|
||||
"exposed to the application, but it can be extended and/or implemented by the "
|
||||
"developer."
|
||||
msgstr ""
|
||||
"(オプション) <literal>Transaction</literal> インスタンスのファクトリ。 アプリ"
|
||||
"(オプション) <literal>Transaction</literal> インスタンスのファクトリ。アプリ"
|
||||
"ケーションには公開されませんが、開発者が継承または実装することは可能です。"
|
||||
|
||||
#. Tag: emphasis
|
||||
#: architecture.xml:172
|
||||
#, no-c-format
|
||||
msgid "Extension Interfaces"
|
||||
msgstr "Extension Interfaces"
|
||||
#. Tag: term
|
||||
#, fuzzy, no-c-format
|
||||
msgid "<emphasis>Extension Interfaces</emphasis>"
|
||||
msgstr "<emphasis>Extension Interfaces</emphasis>"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:174
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate offers a range of optional extension interfaces you can implement "
|
||||
"to customize the behavior of your persistence layer. See the API "
|
||||
"documentation for details."
|
||||
msgstr ""
|
||||
"Hibernateは、永続層の振る舞いをカスタマイズするために、 多くのオプション拡張"
|
||||
"インタフェースを用意しています。 詳細はAPIドキュメントを参照してください。"
|
||||
"Hibernate は、永続層の振る舞いをカスタマイズするために、多くのオプション拡張"
|
||||
"インタフェースを用意しています。詳細は API ドキュメントを参照してください。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:183
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Given a \"minimal\" architecture, the application bypasses the "
|
||||
"<literal>Transaction</literal>/<literal>TransactionFactory</literal> and/or "
|
||||
"<literal>ConnectionProvider</literal> APIs to communicate with JTA or JDBC "
|
||||
"directly."
|
||||
msgstr ""
|
||||
"「軽い」アーキテクチャでは、アプリケーションは直接JTAやJDBCと対話するため"
|
||||
"「軽い」アーキテクチャでは、アプリケーションは直接 JTA や JDBC と対話するため"
|
||||
"に、 <literal>Transaction</literal> や <literal>TransactionFactory</literal> "
|
||||
"や <literal>ConnectionProvider</literal> をバイパスします。"
|
||||
"や <literal>ConnectionProvider</literal> の API をバイパスします。"
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:191
|
||||
#, no-c-format
|
||||
msgid "Instance states"
|
||||
msgstr "インスタンスの状態"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:192
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"An instance of a persistent class can be in one of three different states. "
|
||||
"These states are defined in relation to a <emphasis>persistence context</"
|
||||
"emphasis>. The Hibernate <literal>Session</literal> object is the "
|
||||
"persistence context. The three different states are as follows:"
|
||||
msgstr ""
|
||||
"永続クラスのインスタンスは、次の3つの異なる状態のどれかになります。 それ"
|
||||
"は、 <emphasis>永続コンテキスト</emphasis> によって決まります。 Hibernateの "
|
||||
"<literal>Session</literal> オブジェクトが、永続コンテキストになります。"
|
||||
"永続クラスのインスタンスは、次の3つの異なる状態のどれかになります。それは、 "
|
||||
"<emphasis>永続コンテキスト</emphasis> によって決まります。 Hibernate の "
|
||||
"<literal>Session</literal> オブジェクトが、永続コンテキストになります:"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:200
|
||||
#, no-c-format
|
||||
msgid "transient"
|
||||
msgstr "transient"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:202
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"The instance is not associated with any persistence context. It has no "
|
||||
"persistent identity or primary key value."
|
||||
msgstr ""
|
||||
"この状態のインスタンスは、現在もそして過去においても、 永続コンテキストに関連"
|
||||
"づいていません。また、永続ID(主キーの値)を 持っていません。"
|
||||
"この状態のインスタンスは、現在もそして過去においても、永続コンテキストに関連"
|
||||
"づいていません。また、永続 ID (主キーの値)を 持っていません。"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:210
|
||||
#, no-c-format
|
||||
msgid "persistent"
|
||||
msgstr "persistent"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:212
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The instance is currently associated with a persistence context. It has a "
|
||||
"persistent identity (primary key value) and can have a corresponding row in "
|
||||
|
@ -323,21 +295,19 @@ msgid ""
|
|||
"<emphasis>guarantees</emphasis> that persistent identity is equivalent to "
|
||||
"Java identity in relation to the in-memory location of the object."
|
||||
msgstr ""
|
||||
"この状態のインスタンスは、その時点で永続コンテキストに関連づいています。 ま"
|
||||
"た、永続ID(主キーの値)を持ち、 たいていはデータベースに対応する行を持ってい"
|
||||
"るでしょう。 個々の永続コンテキストのなかでは、永続IDが JavaのID(オブジェク"
|
||||
"トのメモリ上の位置)と同じであることを Hibernateが <emphasis>保証</emphasis> "
|
||||
"します。"
|
||||
"この状態のインスタンスは、その時点で永続コンテキストに関連づいています。ま"
|
||||
"た、永続 ID (主キーの値)を持ち、たいていはデータベースに対応する行を持って"
|
||||
"いるでしょう。特定の永続コンテキストのなかでは、永続 ID が Java の ID (オブ"
|
||||
"ジェクトのメモリ上の位置)と同じであることを Hibernate が <emphasis>保証</"
|
||||
"emphasis> します。"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:224
|
||||
#, no-c-format
|
||||
msgid "detached"
|
||||
msgstr "detached"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:226
|
||||
#, fuzzy, no-c-format
|
||||
#, 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 "
|
||||
|
@ -345,46 +315,43 @@ msgid ""
|
|||
"For detached instances, Hibernate does not guarantee the relationship "
|
||||
"between persistent identity and Java identity."
|
||||
msgstr ""
|
||||
"この状態のインスタンスは、かつて永続コンテキストに関連づけられたが、 そのコン"
|
||||
"テキストがクローズされたか、あるいは、 他のプロセスにそのインスタンスがシリア"
|
||||
"ライズされたかです。 このインスタンスは、永続IDを持ち、たいていはデータベース"
|
||||
"に 対応する行を持っているでしょう。分離インスタンスに対しては、 永続IDとJava"
|
||||
"のIDとの関連は、Hibernateが保証しません。"
|
||||
"この状態のインスタンスは、かつて永続コンテキストに関連づけられたが、そのコン"
|
||||
"テキストがクローズされたか、あるいは、他のプロセスにそのインスタンスがシリア"
|
||||
"ライズされたかです。このインスタンスは、永続 ID を持ち、たいていはデータベー"
|
||||
"スに対応する行を持っているでしょう。分離インスタンスに対しては、永続 ID と "
|
||||
"Java の ID との関連は、 Hibernate が保証しません。"
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:241
|
||||
#, no-c-format
|
||||
msgid "JMX Integration"
|
||||
msgstr "JMXとの統合"
|
||||
msgstr "JMX との統合"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:243
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"JMX is the J2EE standard for the management of Java components. Hibernate "
|
||||
"can be managed via a JMX standard service. AN MBean implementation is "
|
||||
"provided in the distribution: <literal>org.hibernate.jmx.HibernateService</"
|
||||
"literal>."
|
||||
msgstr ""
|
||||
"JMXはJavaコンポーネント管理のJ2EE標準です。 JMX標準サービスを通して、"
|
||||
"Hibernateは管理されます。 ディストリビューションの中に <literal>org."
|
||||
"hibernate.jmx.HibernateService</literal> という MBean実装を用意しています。"
|
||||
"JMX は Java コンポーネント管理の J2EE 標準です。 JMX 標準サービスを通して、 "
|
||||
"Hibernate は管理されます。ディストリビューションの中に <literal>org."
|
||||
"hibernate.jmx.HibernateService</literal> という MBean 実装を用意しています。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:249
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For an example of how to deploy Hibernate as a JMX service on the JBoss "
|
||||
"Application Server, please see the JBoss User Guide. JBoss AS also provides "
|
||||
"these benefits if you deploy using JMX:"
|
||||
msgstr ""
|
||||
"JBoss アプリケーションサーバー上にHibernateをJMXサービスとしてデプロイする方"
|
||||
"法の例としては、 JBoss ユーザガイドを参照してください。 JBoss アプリケーショ"
|
||||
"ンサーバーにおいて、 JMXを使ってデプロイすると、次のメリットが得られます。"
|
||||
"JBoss アプリケーションサーバー上に Hibernate を JMX サービスとしてデプロイす"
|
||||
"る方法の例としては、 JBoss ユーザーガイドを参照してください。 JBoss アプリ"
|
||||
"ケーションサーバーにおいて、 JMX を使ってデプロイすると、次のメリットが得られ"
|
||||
"ます:"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:257
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<emphasis>Session Management</emphasis>: the Hibernate <literal>Session</"
|
||||
"literal>'s life cycle can be automatically bound to the scope of a JTA "
|
||||
|
@ -396,19 +363,18 @@ msgid ""
|
|||
"the <literal>HibernateContext</literal> to access a <literal>Session</"
|
||||
"literal>."
|
||||
msgstr ""
|
||||
"<emphasis>セッション管理:</emphasis> Hibernateの <literal>Session</literal> "
|
||||
"のライフサイクルは、 自動的にJTAトランザクションのスコープに結びつけられま"
|
||||
"<emphasis>セッション管理:</emphasis> Hibernate の <literal>Session</literal> "
|
||||
"のライフサイクルは、自動的に JTA トランザクションのスコープに結びつけられま"
|
||||
"す。これは、もはや手動で <literal>Session</literal> をオープンしたり、クロー"
|
||||
"ズしたりする必要がないことを意味します。 これは、JBoss EJB インターセプタの仕"
|
||||
"事になります。 また、コードのどこでトランザクション境界を設定するかについ"
|
||||
"て、 もはや悩む必要がありません(もちろん移植可能な永続層を書かかなくていいの"
|
||||
"ならば、 オプションのHibernateの <literal>Transaction</literal> を使用してく"
|
||||
"ださい。) <literal>Session</literal> にアクセスするためには、 "
|
||||
"<literal>HibernateContext</literal> を コールしてください。"
|
||||
"ズしたりする必要がないことを意味します。これは、 JBoss EJB インターセプタの仕"
|
||||
"事になります。また、コードのどこでトランザクション境界を設定するかについて、"
|
||||
"もはや悩む必要がありません(もちろん移植可能な永続層を書かかなくていいのなら"
|
||||
"ば、オプションの Hibernate の <literal>Transaction</literal> を使用してくださ"
|
||||
"い。) <literal>Session</literal> にアクセスするためには、 "
|
||||
"<literal>HibernateContext</literal> をコールしてください。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:269
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<emphasis>HAR deployment</emphasis>: the Hibernate JMX service is deployed "
|
||||
"using a JBoss service deployment descriptor in an EAR and/or SAR file, as it "
|
||||
|
@ -418,61 +384,55 @@ msgid ""
|
|||
"deployment, JBoss will automatically detect all mapping files in your HAR "
|
||||
"file."
|
||||
msgstr ""
|
||||
"<emphasis>HAR デプロイ:</emphasis> 通常、(EAR または SAR ファイルにある)"
|
||||
"JBoss サービス デプロイメントディスクリプタを使って、Hibernate JMX サービスを"
|
||||
"デプロイします。 それは、Hibernateの <literal>SessionFactory</literal> の全て"
|
||||
"の一般的な設定オプションを サポートします。しかし依然としてデプロイメントディ"
|
||||
"スクリプタのなかにすべてのマッピングファイルの 名前を挙げる必要があります。 "
|
||||
"もし、オプションのHARデプロイメントを使うことを決めたなら、 JBossは自動的に"
|
||||
"HARファイルのなかの全てのマッピングファイルを検出します。"
|
||||
"<emphasis>HAR デプロイ:</emphasis> 通常、( EAR または SAR ファイルにある) "
|
||||
"JBoss サービスデプロイメントディスクリプタを使って、 Hibernate JMX サービスを"
|
||||
"デプロイします。それは、 Hibernate の <literal>SessionFactory</literal> の全"
|
||||
"ての一般的な設定オプションをサポートします。しかし依然としてデプロイメント"
|
||||
"ディスクリプタのなかにすべてのマッピングファイルの名前を挙げる必要がありま"
|
||||
"す。もし、オプションの HAR デプロイメントを使うことを決めたなら、 JBoss は自"
|
||||
"動的に HAR ファイルのなかの全てのマッピングファイルを検出します。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:280
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Consult the JBoss AS user guide for more information about these options."
|
||||
msgstr ""
|
||||
"これらのオプションについての詳細な情報は、JBossアプリケーションサーバユーザガ"
|
||||
"イドを 参考にしてください。"
|
||||
"これらのオプションについての詳細な情報は、 JBoss アプリケーションサーバーユー"
|
||||
"ザーガイドを参考にしてください。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:284
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Another feature available as a JMX service is runtime Hibernate statistics. "
|
||||
"See <xref linkend=\"configuration-optional-statistics\"/> for more "
|
||||
"See <xref linkend=\"configuration-optional-statistics\" /> for more "
|
||||
"information."
|
||||
msgstr ""
|
||||
"JMXサービスとして利用可能な他の機能に、Hibernate実行時統計情報があります。 "
|
||||
"JMX サービスとして利用可能な他の機能に、 Hibernate 実行時統計情報があります。"
|
||||
"<xref linkend=\"configuration-optional-statistics\"/> を見てください。"
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:291
|
||||
#, no-c-format
|
||||
msgid "JCA Support"
|
||||
msgstr "JCA サポート"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:292
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate can also be configured as a JCA connector. Please see the website "
|
||||
"for more information. Please note, however, that at this stage Hibernate JCA "
|
||||
"support is under development."
|
||||
msgstr ""
|
||||
"Hibernate は JCA コネクタとしても設定できます。詳細については、Webサイトを見"
|
||||
"てください。 Hibernate JCA サポートは、今のところ実験段階として考えられている"
|
||||
"ことに注意してください。"
|
||||
"Hibernate は JCA コネクタとしても設定できます。詳細については、 Web サイトを"
|
||||
"見てください。 Hibernate JCA サポートは、今のところ実験段階として考えられてい"
|
||||
"ることに注意してください。"
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:299
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Contextual sessions"
|
||||
msgstr "コンテキスト上のセッション"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:300
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Most applications using Hibernate need some form of \"contextual\" session, "
|
||||
"where a given session is in effect throughout the scope of a given context. "
|
||||
|
@ -484,19 +444,18 @@ msgid ""
|
|||
"utilized third-party frameworks, such as Spring or Pico, which provided "
|
||||
"proxy/interception-based contextual sessions."
|
||||
msgstr ""
|
||||
"Hibernate を使ったアプリケーションは、ほとんど、なんらかの形で\"コンテキスト"
|
||||
"上の\"セッションが必要になります。 「コンテキスト上のセッション」は、特定のコ"
|
||||
"ンテキストのスコープのなかで有効なセッションのことです。 しかし、通常アプリ"
|
||||
"ケーションごとにコンテキストを構成するものの定義は異なります。 しかも、異なる"
|
||||
"複数のコンテキストは、現時点に対して異なるスコープを定義します。 バージョン"
|
||||
"3.0より前の Hibernate では、自作の <literal>ThreadLocal</literal> ベースの"
|
||||
"「コンテキスト上のセッション」を 利用するか、 <literal>HibernateUtil</"
|
||||
"literal> のようなヘルパークラスを利用するか、 proxy/interception ベースの「コ"
|
||||
"ンテキスト上のセッション」を提供する (Spring や Pico のような)サードパー"
|
||||
"ティのフレームワークを利用するかのいずれかでした。"
|
||||
"Hibernate を使ったアプリケーションは、ほとんど、なんらかの形で「コンテキスト"
|
||||
"上の」セッションが必要になります。「コンテキスト上のセッション」は、特定のコ"
|
||||
"ンテキストのスコープのなかで有効なセッションのことです。しかし、通常アプリ"
|
||||
"ケーションごとにコンテキストを構成するものの定義は異なります。しかも、異なる"
|
||||
"複数のコンテキストは、現時点に対して異なるスコープを定義します。バージョン3.0"
|
||||
"より前の Hibernate では、自作の <literal>ThreadLocal</literal> ベースの「コン"
|
||||
"テキスト上のセッション」を利用するか、 <literal>HibernateUtil</literal> のよ"
|
||||
"うなヘルパークラスを利用するか、 proxy/interception ベースの「コンテキスト上"
|
||||
"のセッション」を提供する (Spring や Pico のような)サードパーティのフレーム"
|
||||
"ワークを利用するかのいずれかでした。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:309
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.0.1, Hibernate added the <literal>SessionFactory."
|
||||
|
@ -509,20 +468,19 @@ msgid ""
|
|||
"deployed into a <literal>J2EE</literal> container. Based on that, the "
|
||||
"<literal>JTA</literal>-based contextual sessions are all you need to use."
|
||||
msgstr ""
|
||||
"バージョン 3.0.1 から、Hibernate には <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> が 加わりました。 これは、 <literal>JTA</"
|
||||
"バージョン 3.0.1 から、 Hibernate には <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> メソッドが加わりました。これは、 <literal>JTA</"
|
||||
"literal> トランザクションの使用を前提にしています。 <literal>JTA</literal> ト"
|
||||
"ランザクションは、現在のセッションのスコープとコンテキストの両方を定義しま"
|
||||
"す。 Hibernate チームは、次のことを主張します。 巨大なスタンドアロンの "
|
||||
"す。 Hibernate チームは、次のことを主張します。巨大なスタンドアロンの "
|
||||
"<literal>JTA TransactionManager</literal> 実装が成熟したら、 <literal>J2EE</"
|
||||
"literal> コンテナ上にデプロイされるかどうかにかかわらず、 ほとんどの(すべて"
|
||||
"とは言わないが)アプリケーションが、 <literal>JTA</literal> トランザクション"
|
||||
"管理を使用すべきであると。 この考えに基づくと、 <literal>JTA</literal> ベース"
|
||||
"の「コンテキスト上のセッション」を 使うしかないでしょう。"
|
||||
"literal> コンテナ上にデプロイされるかどうかにかかわらず、ほとんどの(すべてと"
|
||||
"は言わないが)アプリケーションが、 <literal>JTA</literal> トランザクション管"
|
||||
"理を使用すべきであると。この考えに基づくと、 <literal>JTA</literal> ベースの"
|
||||
"「コンテキスト上のセッション」を使うしかないでしょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:319
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"However, as of version 3.1, the processing behind <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> is now pluggable. To that end, a new extension "
|
||||
|
@ -532,14 +490,13 @@ msgid ""
|
|||
"pluggability of the scope and context of defining current sessions."
|
||||
msgstr ""
|
||||
"しかし、バージョン 3.1 からは、 <literal>SessionFactory.getCurrentSession()</"
|
||||
"literal> の後の処理が、 プラガブルになりました。 これを受けて、現在のセッショ"
|
||||
"ンを定義するスコープとコンテキストのプラガビリティを可能にするために、 新しい"
|
||||
"拡張インタフェース ( <literal>org.hibernate.context.CurrentSessionContext</"
|
||||
"literal> ) と 新しい構成パラメータ ( <literal>hibernate."
|
||||
"literal> の後の処理が、プラガブルになりました。これを受けて、現在のセッション"
|
||||
"を定義するスコープとコンテキストのプラガビリティを可能にするために、新しい拡"
|
||||
"張インタフェース ( <literal>org.hibernate.context.CurrentSessionContext</"
|
||||
"literal> ) と新しい構成パラメータ ( <literal>hibernate."
|
||||
"current_session_context_class</literal> ) が追加されました。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:326
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"See the Javadocs for the <literal>org.hibernate.context."
|
||||
|
@ -550,15 +507,14 @@ msgid ""
|
|||
"implementations of this interface:"
|
||||
msgstr ""
|
||||
"<literal>org.hibernate.context.CurrentSessionContext</literal> インタフェース"
|
||||
"の規約についての 詳細な内容は Javadoc を参照してください。 それには、 "
|
||||
"<literal>currentSession()</literal> という1つのメソッドが定義されており、 そ"
|
||||
"の実装は、現在の「コンテキスト上のセッション」を追跡することに責任を持ちま"
|
||||
"す。 そのまま使えるように、Hibernateはこのインタフェースの実装を2つ提供してい"
|
||||
"ます。"
|
||||
"の規約についての詳細な内容は Javadoc を参照してください。それには、 "
|
||||
"<literal>currentSession()</literal> という1つのメソッドが定義されており、その"
|
||||
"実装は、現在の「コンテキスト上のセッション」を追跡することに責任を持ちます。"
|
||||
"そのまま使えるように、 Hibernate はこのインタフェースの実装を2つ提供していま"
|
||||
"す。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:336
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<literal>org.hibernate.context.JTASessionContext</literal>: current sessions "
|
||||
"are tracked and scoped by a <literal>JTA</literal> transaction. The "
|
||||
|
@ -566,24 +522,22 @@ msgid ""
|
|||
"the Javadocs for details."
|
||||
msgstr ""
|
||||
"<literal>org.hibernate.context.JTASessionContext</literal> - <literal>JTA</"
|
||||
"literal> トランザクションによって、現在のセッションが追跡され、 スコープを決"
|
||||
"められます。この処理は、古いJTAだけのアプローチとまったく同じです。 詳細は"
|
||||
"Javadocを参照してください。"
|
||||
"literal> トランザクションによって、現在のセッションが追跡され、スコープを決め"
|
||||
"られます。この処理は、古い JTA だけのアプローチとまったく同じです。詳細は "
|
||||
"Javadoc を参照してください。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:344
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<literal>org.hibernate.context.ThreadLocalSessionContext</literal>:current "
|
||||
"sessions are tracked by thread of execution. See the Javadocs for details."
|
||||
msgstr ""
|
||||
"<literal>org.hibernate.context.ThreadLocalSessionContext</literal> - スレッド"
|
||||
"の実行によって、現在のセッションが追跡されます。 詳細はJavadocを参照してくだ"
|
||||
"の実行によって、現在のセッションが追跡されます。詳細は Javadoc を参照してくだ"
|
||||
"さい。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:350
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<literal>org.hibernate.context.ManagedSessionContext</literal>: current "
|
||||
"sessions are tracked by thread of execution. However, you are responsible to "
|
||||
|
@ -591,13 +545,12 @@ msgid ""
|
|||
"this class: it does not open, flush, or close a <literal>Session</literal>."
|
||||
msgstr ""
|
||||
"<literal>org.hibernate.context.ManagedSessionContext</literal> - スレッドの実"
|
||||
"行によって、現在のセッションが追跡されます。 しかし、このクラスのstaticメソッ"
|
||||
"ドで <literal>Session</literal> インスタンスを バインド/アンバインドする責任"
|
||||
"はあなたにあります。 これは決して <literal>Session</literal> をオープン、フ"
|
||||
"行によって、現在のセッションが追跡されます。しかし、このクラスの static メ"
|
||||
"ソッドで <literal>Session</literal> インスタンスをバインド/アンバインドする責"
|
||||
"任はあなたにあります。これは決して <literal>Session</literal> をオープン、フ"
|
||||
"ラッシュ、クローズしません。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:359
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"The first two implementations provide a \"one session - one database "
|
||||
|
@ -610,25 +563,24 @@ msgid ""
|
|||
"utilize the JTA interfaces to demarcate transactions. If you execute in an "
|
||||
"EJB container that supports CMT, transaction boundaries are defined "
|
||||
"declaratively and you do not need any transaction or session demarcation "
|
||||
"operations in your code. Refer to <xref linkend=\"transactions\"/> for more "
|
||||
"operations in your code. Refer to <xref linkend=\"transactions\" /> for more "
|
||||
"information and code examples."
|
||||
msgstr ""
|
||||
"始めの2つの実装は、\"1セッション - 1データベーストランザクション\" プログラミ"
|
||||
"ングモデルを提供します。 これは <emphasis>リクエストごとのセッション"
|
||||
"はじめの2つの実装は、「1セッション - 1データベーストランザクション」プログラ"
|
||||
"ミングモデルを提供します。これは <emphasis>リクエストごとのセッション"
|
||||
"(session-per-request)</emphasis> としても知られており、使われています。 "
|
||||
"Hibernate セッションの開始と終了は、データベーストランザクションの期間で決ま"
|
||||
"ります。 JTAを使わない普通のJSEで、プログラム上のトランザクション境界設定を行"
|
||||
"うなら、 コードから基礎のトランザクションシステムを隠蔽するために、 "
|
||||
"Hibernate <literal>Transaction</literal> APIを使うとよいでしょう。 JTAを使う"
|
||||
"なら、トランザクションの境界設定には、JTAインターフェイスを使ってください。 "
|
||||
"CMTをサポートするEJBコンテナで実行するつもりなら、トランザクション境界は宣言"
|
||||
"的に定義できるため、 コード上でトランザクションやセッションの境界を設定する必"
|
||||
"要はありません。 さらに詳細な情報やコードの例は、 <xref linkend="
|
||||
"ります。 JTA を使わない普通の JSE で、プログラム上のトランザクション境界設定"
|
||||
"を行うなら、コードから基礎のトランザクションシステムを隠蔽するために、 "
|
||||
"Hibernate <literal>Transaction</literal> API を使うとよいでしょう。 JTA を使"
|
||||
"うなら、トランザクションの境界設定には、 JTA インターフェースを使ってくださ"
|
||||
"い。 CMT をサポートする EJB コンテナで実行するつもりなら、トランザクション境"
|
||||
"界は宣言的に定義できるため、コード上でトランザクションやセッションの境界を設"
|
||||
"定する必要はありません。さらに詳細な情報やコードの例は、 <xref linkend="
|
||||
"\"transactions\"/> を参照してください。"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:371
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>hibernate.current_session_context_class</literal> configuration "
|
||||
"parameter defines which <literal>org.hibernate.context."
|
||||
|
@ -643,10 +595,9 @@ msgid ""
|
|||
msgstr ""
|
||||
"<literal>hibernate.current_session_context_class</literal> 設定パラメータ"
|
||||
"は、 <literal>org.hibernate.context.CurrentSessionContext</literal> のどの実"
|
||||
"装を使うかを指定します。 下位互換性のため、このパラメータが設定されず "
|
||||
"装を使うかを指定します。下位互換性のため、このパラメータが設定されず "
|
||||
"<literal>org.hibernate.transaction.TransactionManagerLookup</literal> が設定"
|
||||
"されていた場合、 Hibernateは <literal>org.hibernate.context."
|
||||
"JTASessionContext</literal> を使うことに注意してください。 通常このパラメータ"
|
||||
"の値には、3つの実装の中から使用する実装クラスの名前を直接指定します。 しか"
|
||||
"し、\"jta\", \"thread\", \"managed\"というそれぞれの省略名も用意されていま"
|
||||
"す。"
|
||||
"されていた場合、 Hibernate は <literal>org.hibernate.context."
|
||||
"JTASessionContext</literal> を使うことに注意してください。通常このパラメータ"
|
||||
"の値には、3つの実装の中から使用する実装クラスの名前を直接指定します。しかし、"
|
||||
"\"jta\"、 \"thread\"、 \"managed\"というそれぞれの省略名も用意されています。"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,48 +1,34 @@
|
|||
# translation of Collection_Mapping.po to
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007, 2010.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: Collection_Mapping\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:15\n"
|
||||
"PO-Revision-Date: 2010-01-13 15:16+1000\n"
|
||||
"Last-Translator: Xi HUANG <xhuang@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:29
|
||||
#, no-c-format
|
||||
msgid "Batch processing"
|
||||
msgstr "バッチ処理"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:31
|
||||
#, fuzzy, no-c-format
|
||||
#, 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行を挿入する愚直な方法は、このようなも"
|
||||
"Hibernate を使ってデータベースに100,000行を挿入する愚直な方法は、このようなも"
|
||||
"のです:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:36
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"for ( int i=0; i<100000; i++ ) {\n"
|
||||
" Customer customer = new Customer(.....);\n"
|
||||
" session.save(customer);\n"
|
||||
"}\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:38
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This would fall over with an <literal>OutOfMemoryException</literal> "
|
||||
"somewhere around the 50,000th row. That is because Hibernate caches all the "
|
||||
|
@ -50,158 +36,90 @@ msgid ""
|
|||
"cache. In this chapter we will show you how to avoid this problem."
|
||||
msgstr ""
|
||||
"これは50,000番目の行のあたりで <literal>OutOfMemoryException</literal> で失敗"
|
||||
"するでしょう。 Hibernateがセッションレベルキャッシュで、 新しく挿入されたすべ"
|
||||
"するでしょう。 Hibernate がセッションレベルキャッシュで、新しく挿入されたすべ"
|
||||
"ての <literal>Customer</literal> インスタンスをキャッシュするからです。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:45
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"If you are undertaking batch processing you will need to enable the use of "
|
||||
"JDBC batching. This is absolutely essential if you want to achieve optimal "
|
||||
"performance. Set the JDBC batch size to a reasonable number (10-50, for "
|
||||
"example):"
|
||||
msgstr ""
|
||||
"この章では、この問題を回避する方法を紹介します。 しかしバッチ処理をするなら、"
|
||||
"JDBCバッチが使用可能であることが非常に重要です。 そうでなければ手頃なパフォー"
|
||||
"マンスが得られません。 JDBCバッチサイズを手頃な数値(例えば、10から50)に設定"
|
||||
"してください:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:52
|
||||
#, no-c-format
|
||||
msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
|
||||
msgstr ""
|
||||
"この章では、この問題を回避する方法を紹介します。しかしバッチ処理をするなら、 "
|
||||
"JDBC バッチが使用可能であることが非常に重要です。そうでなければ手頃なパフォー"
|
||||
"マンスが得られません。 JDBC バッチサイズを手頃な数値(例えば、10から50)に設"
|
||||
"定してください:"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:54
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate disables insert batching at the JDBC level transparently if you "
|
||||
"use an <literal>identity</literal> identifier generator."
|
||||
msgstr ""
|
||||
"Note that Hibernate disables insert batching at the JDBC level transparently "
|
||||
"if you use an <literal>identiy</literal> identifier generator."
|
||||
"<literal>identiy</literal> 識別子生成を使う場合は、Hibernate は JDBC レベルで"
|
||||
"インサートバッチングを無効にすることに注意してください。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:59
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"You can also do this kind of work in a process where interaction with the "
|
||||
"second-level cache is completely disabled:"
|
||||
msgstr ""
|
||||
"また二次キャッシュが全く効かないプロセスで、 このような作業をしたいと思うかも"
|
||||
"また二次キャッシュが全く効かないプロセスで、このような作業をしたいと思うかも"
|
||||
"しれません:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:64
|
||||
#, no-c-format
|
||||
msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:66
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"However, this is not absolutely necessary, since we can explicitly set the "
|
||||
"<literal>CacheMode</literal> to disable interaction with the second-level "
|
||||
"cache."
|
||||
msgstr ""
|
||||
"しかし、これは絶対に必要というわけではありません。 なぜなら明示的に "
|
||||
"<literal>CacheMode</literal> を設定して、 二次キャッシュとの相互作用を無効に"
|
||||
"することができるからです。"
|
||||
"しかし、これは絶対に必要というわけではありません。なぜなら明示的に "
|
||||
"<literal>CacheMode</literal> を設定して、二次キャッシュとの相互作用を無効にす"
|
||||
"ることができるからです。"
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:72
|
||||
#, no-c-format
|
||||
msgid "Batch inserts"
|
||||
msgstr "バッチ挿入"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:74
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"When making new objects persistent <literal>flush()</literal> and then "
|
||||
"<literal>clear()</literal> the session regularly in order to control the "
|
||||
"size of the first-level cache."
|
||||
msgstr ""
|
||||
"新しいオブジェクトを永続化するとき、一次キャッシュのサイズを制限するため、 "
|
||||
"新しいオブジェクトを永続化するとき、一次キャッシュのサイズを制限するため、"
|
||||
"セッションを <literal>flush()</literal> して <literal>clear()</literal> しな"
|
||||
"ければなりません。"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:80
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"for ( int i=0; i<100000; i++ ) {\n"
|
||||
" Customer customer = new Customer(.....);\n"
|
||||
" session.save(customer);\n"
|
||||
" if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
|
||||
" //flush a batch of inserts and release memory:\n"
|
||||
" session.flush();\n"
|
||||
" session.clear();\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:85
|
||||
#, no-c-format
|
||||
msgid "Batch updates"
|
||||
msgstr "バッチ更新"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:87
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For retrieving and updating data, the same ideas apply. In addition, you "
|
||||
"need to use <literal>scroll()</literal> to take advantage of server-side "
|
||||
"cursors for queries that return many rows of data."
|
||||
msgstr ""
|
||||
"データを復元したり更新したりするには同じアイディアを適用します。 それに加え"
|
||||
"て、データの行を多く返すクエリに対して有効な サーバーサイドのカーソルの利点を"
|
||||
"データを復元したり更新したりするには同じアイディアを適用します。それに加え"
|
||||
"て、データの行を多く返すクエリに対して有効なサーバーサイドのカーソルの利点を"
|
||||
"生かしたければ <literal>scroll()</literal> を使う必要があります。"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:93
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
" .setCacheMode(CacheMode.IGNORE)\n"
|
||||
" .scroll(ScrollMode.FORWARD_ONLY);\n"
|
||||
"int count=0;\n"
|
||||
"while ( customers.next() ) {\n"
|
||||
" Customer customer = (Customer) customers.get(0);\n"
|
||||
" customer.updateStuff(...);\n"
|
||||
" if ( ++count % 20 == 0 ) {\n"
|
||||
" //flush a batch of updates and release memory:\n"
|
||||
" session.flush();\n"
|
||||
" session.clear();\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:98
|
||||
#, no-c-format
|
||||
msgid "The StatelessSession interface"
|
||||
msgstr "StatelessSessionインターフェイス"
|
||||
msgstr "StatelessSession インターフェース"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:99
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Alternatively, Hibernate provides a command-oriented API that can be used "
|
||||
"for streaming data to and from the database in the form of detached objects. "
|
||||
|
@ -217,54 +135,33 @@ msgid ""
|
|||
"effects. A stateless session is a lower-level abstraction that is much "
|
||||
"closer to the underlying JDBC."
|
||||
msgstr ""
|
||||
"また別の方法として、Hibernateはコマンド指向のAPIを用意しています。 これは分離"
|
||||
"オブジェクトの形で、 データベースとのデータストリームのやり取りに使うことがで"
|
||||
"きます。 <literal>StatelessSession</literal> は関連する永続コンテキストを持た"
|
||||
"ず、 高レベルのライフサイクルセマンティクスの多くを提供しません。 特にステー"
|
||||
"トレスセッションは、一時キャッシュを実装せず、 またどのような二次キャッシュや"
|
||||
"クエリキャッシュとも相互作用しません。 トランザクショナルなwrite-behindや自動"
|
||||
"ダーティチェックも実装しません。 ステートレスセッションを使って行われる操作"
|
||||
"が、 関連するインスタンスへカスケードされることは決してありません。 コレク"
|
||||
"ションは、ステートレスセッションからは無視されます。 ステートレスセッションを"
|
||||
"通して行われる操作は、 Hibernateのイベントモデルやインターセプタの影響を受け"
|
||||
"ません。 一時キャッシュを持たないため、 ステートレスセッションは別名を持つ"
|
||||
"データに上手く対処できません。 ステートレスセッションは低レベルの抽象化であ"
|
||||
"り、JDBCに非常によく似ています。"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:114
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[StatelessSession session = sessionFactory.openStatelessSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
" .scroll(ScrollMode.FORWARD_ONLY);\n"
|
||||
"while ( customers.next() ) {\n"
|
||||
" Customer customer = (Customer) customers.get(0);\n"
|
||||
" customer.updateStuff(...);\n"
|
||||
" session.update(customer);\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"また別の方法として、 Hibernate はコマンド指向の API を用意しています。これは"
|
||||
"分離オブジェクトの形で、データベースとのデータストリームのやり取りに使うこと"
|
||||
"ができます。 <literal>StatelessSession</literal> は関連する永続コンテキストを"
|
||||
"持たず、高レベルのライフサイクルセマンティクスの多くを提供しません。特にス"
|
||||
"テートレスセッションは、一次キャッシュを実装せず、またどのような二次キャッ"
|
||||
"シュやクエリキャッシュとも相互作用しません。トランザクショナルな write-"
|
||||
"behind や自動ダーティチェックも実装しません。ステートレスセッションを使って行"
|
||||
"われる操作が、関連するインスタンスへカスケードされることは決してありません。"
|
||||
"コレクションは、ステートレスセッションからは無視されます。ステートレスセッ"
|
||||
"ションを通して行われる操作は、 Hibernate のイベントモデルやインターセプタの影"
|
||||
"響を受けません。一次キャッシュを持たないため、ステートレスセッションは別名を"
|
||||
"持つデータに上手く対処できません。ステートレスセッションは低レベルの抽象化で"
|
||||
"あり、 JDBC に非常によく似ています。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:116
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"In this code example, the <literal>Customer</literal> instances returned by "
|
||||
"the query are immediately detached. They are never associated with any "
|
||||
"persistence context."
|
||||
msgstr ""
|
||||
"このコード例では、クエリが返す <literal>Customer</literal> インスタンスは即座"
|
||||
"に(セッションから)分離されることに注意してください。 これは、どのような永続"
|
||||
"コンテキストとも決して関連しません。"
|
||||
"に (セッションから) 分離されることに注意してください。これは、どのような永"
|
||||
"続コンテキストとも決して関連しません。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:122
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>insert(), update()</literal> and <literal>delete()</literal> "
|
||||
"operations defined by the <literal>StatelessSession</literal> interface are "
|
||||
|
@ -274,21 +171,20 @@ msgid ""
|
|||
"<literal>save(), saveOrUpdate()</literal> and <literal>delete()</literal> "
|
||||
"operations defined by the <literal>Session</literal> interface."
|
||||
msgstr ""
|
||||
"<literal>StatelessSession</literal> インターフェイスで定義されている "
|
||||
"<literal>insert(), update(), delete()</literal> は、 低レベルの直接的なデータ"
|
||||
"ベース操作と考えられます。 結果として、SQLの <literal>INSERT, UPDATE, "
|
||||
"DELETE</literal> がそれぞれ即座に実行されます。 このように、これらは "
|
||||
"<literal>Session</literal> インターフェイスで定義されている <literal>save(), "
|
||||
"saveOrUpdate(), delete()</literal> とは非常に異なる意味を持ちます。"
|
||||
"<literal>StatelessSession</literal> インターフェースで定義されている "
|
||||
"<literal>insert(), update()</literal> と <literal>delete()</literal> の操作"
|
||||
"は、低レベルの直接的なデータベース操作と考えられます。結果として、 SQL の "
|
||||
"<literal>INSERT, UPDATE</literal> または <literal>DELETE</literal> がそれぞれ"
|
||||
"即座に実行されます。このように、これらは <literal>Session</literal> インター"
|
||||
"フェースで定義されている <literal>save(), saveOrUpdate()</literal> と "
|
||||
"<literal>delete()</literal> とは非常に異なる意味を持ちます。"
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:135
|
||||
#, no-c-format
|
||||
msgid "DML-style operations"
|
||||
msgstr "DMLスタイルの操作"
|
||||
msgstr "DML スタイルの操作"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:137
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"As already discussed, automatic and transparent object/relational mapping is "
|
||||
|
@ -302,17 +198,17 @@ msgid ""
|
|||
"\">HQL</link>)."
|
||||
msgstr ""
|
||||
"すでに議論したように、自動的かつ透過的なオブジェクト/リレーショナルマッピング"
|
||||
"は、 オブジェクトの状態の管理であると考えられます。 これはメモリ内のオブジェ"
|
||||
"クトの状態を利用できるということです。 そのため(SQLの <literal>データ操作言"
|
||||
"語</literal> (DML) 文: <literal>INSERT</literal>, <literal>UPDATE</"
|
||||
"literal>, <literal>DELETE</literal> を使って)データベース内のデータを直接操"
|
||||
"作しても、 メモリ内の状態には影響を与えません。 しかしHibernateは、バルクSQL"
|
||||
"スタイルのDML文実行に対応するメソッドを用意しています。 これはHibernateクエリ"
|
||||
"言語(<xref linkend=\"queryhql\">HQL</xref>) を通して実行されます。"
|
||||
"は、オブジェクトの状態の管理であると考えられます。これはメモリ内のオブジェク"
|
||||
"トの状態を利用できるということです。そのため (SQLの <literal>データ操作言語"
|
||||
"</literal> (DML) 文: <literal>INSERT</literal>、 <literal>UPDATE</"
|
||||
"literal>、 <literal>DELETE</literal> を使って)データベース内のデータを直接操"
|
||||
"作しても、メモリ内の状態には影響を与えません。しかし Hibernate は、バルク "
|
||||
"SQL スタイルの DML 文実行に対応するメソッドを用意しています。これは "
|
||||
"Hibernate クエリ言語 (<xref linkend=\"queryhql\"/> HQL) を通して実行されま"
|
||||
"す。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:146
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</"
|
||||
"literal> statements is: <literal>( UPDATE | DELETE ) FROM? EntityName (WHERE "
|
||||
|
@ -320,87 +216,61 @@ msgid ""
|
|||
msgstr ""
|
||||
"<literal>UPDATE</literal> と <literal>DELETE</literal> 文の疑似構文は: "
|
||||
"<literal>( UPDATE | DELETE ) FROM? エンティティ名 (WHERE 条件節)?</literal> "
|
||||
"です。 注意すべき点がいくつかあります:"
|
||||
"です。注意すべき点がいくつかあります:"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:151
|
||||
#, no-c-format
|
||||
msgid "Some points to note:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:157
|
||||
#, no-c-format
|
||||
msgid "In the from-clause, the FROM keyword is optional"
|
||||
msgstr "from節において、FROMキーワードはオプションです。"
|
||||
msgstr "from 節において、 FROM キーワードはオプションです。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:162
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"There can only be a single entity named in the from-clause. It can, however, "
|
||||
"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節では単一のエンティティ名だけが可能で、 任意で別名を付けることができま"
|
||||
"す。 エンティティ名に別名が与えられると、どのようなプロパティ参照も、 その別"
|
||||
"名を使って修飾しなければなりません。 もしエンティティ名に別名が与えられなけれ"
|
||||
"ば、 どのようなプロパティ参照も修飾してはなりません。"
|
||||
"from 節では単一のエンティティ名だけが可能で、任意で別名を付けることができま"
|
||||
"す。エンティティ名に別名が与えられると、どのようなプロパティ参照も、その別名"
|
||||
"を使って修飾しなければなりません。もしエンティティ名に別名が与えられなけれ"
|
||||
"ば、どのようなプロパティ参照も修飾してはなりません。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:170
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"No <link linkend=\"queryhql-joins-forms\">joins</link>, either implicit or "
|
||||
"explicit, can be specified in a bulk HQL query. Sub-queries can be used in "
|
||||
"the where-clause, where the subqueries themselves may contain joins."
|
||||
msgstr ""
|
||||
"(暗黙的であれ明示的であれ)<xref linkend=\"queryhql-joins-forms\">結合</"
|
||||
"xref> をバルクHQLクエリ内で指定することはできません。 サブクエリはwhere節で使"
|
||||
"うことができます サブクエリそのものは、結合を含められます。"
|
||||
"(暗黙的であれ明示的であれ) <xref linkend=\"queryhql-joins-forms\"/> 結合を"
|
||||
"バルク HQL クエリ内で指定することはできません。サブクエリは where 節で使うこ"
|
||||
"とができます。サブクエリそのものは、結合を含められます。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:177
|
||||
#, no-c-format
|
||||
msgid "The where-clause is also optional."
|
||||
msgstr "where節はオプションです。"
|
||||
msgstr "where 節はオプションです。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:183
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"As an example, to execute an HQL <literal>UPDATE</literal>, use the "
|
||||
"<literal>Query.executeUpdate()</literal> method. The method is named for "
|
||||
"those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</"
|
||||
"literal>:"
|
||||
msgstr ""
|
||||
"例として、HQLの <literal>UPDATE</literal> を実行するには、 <literal>Query."
|
||||
"executeUpdate()</literal> メソッドを使ってください。 (このメソッドはおなじみ"
|
||||
"のJDBC <literal>PreparedStatement.executeUpdate()</literal> から名付けられま"
|
||||
"した): d"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:189
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"String hqlUpdate = \"update Customer c set c.name = :newName where c.name = :"
|
||||
"oldName\";\n"
|
||||
"// or String hqlUpdate = \"update Customer set name = :newName where name = :"
|
||||
"oldName\";\n"
|
||||
"int updatedEntities = s.createQuery( hqlUpdate )\n"
|
||||
" .setString( \"newName\", newName )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"例として、 HQL の <literal>UPDATE</literal> を実行するには、 <literal>Query."
|
||||
"executeUpdate()</literal> メソッドを使ってください。(このメソッドはおなじみ"
|
||||
"の JDBC <literal>PreparedStatement.executeUpdate()</literal> から名付けられま"
|
||||
"した):"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:191
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> "
|
||||
|
@ -413,72 +283,37 @@ msgid ""
|
|||
"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
|
||||
"keyword."
|
||||
msgstr ""
|
||||
"HQLの <literal>UPDATE</literal> 文は、デフォルトでは、作用するエンティティの "
|
||||
"<xref linkend=\"mapping-declaration-version\">version</xref> や <xref "
|
||||
"linkend=\"mapping-declaration-timestamp\">timestamp</xref> プロパティの値には"
|
||||
"影響しません。 これはEJB3の仕様にも受け継がれています。 しかし "
|
||||
"HQL の <literal>UPDATE</literal> 文は、デフォルトでは、作用するエンティティ"
|
||||
"の <xref linkend=\"mapping-declaration-version\"/> バージョンや <xref "
|
||||
"linkend=\"mapping-declaration-timestamp\"/> タイムスタンプのプロパティの値に"
|
||||
"は影響しません。これは EJB3 の仕様にも受け継がれています。しかし "
|
||||
"<literal>versioned update</literal> を使って、 <literal>version</literal> や "
|
||||
"<literal>timestamp</literal> プロパティの値を強制的にリセットさせることができ"
|
||||
"ます。 これは <literal>UPDATE</literal> キーワードの後に <literal>VERSIONED</"
|
||||
"ます。これは <literal>UPDATE</literal> キーワードの後に <literal>VERSIONED</"
|
||||
"literal> キーワードを追加することで行えます。"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:201
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"String hqlVersionedUpdate = \"update versioned Customer set name = :newName "
|
||||
"where name = :oldName\";\n"
|
||||
"int updatedEntities = s.createQuery( hqlUpdate )\n"
|
||||
" .setString( \"newName\", newName )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:203
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Custom version types, <literal>org.hibernate.usertype.UserVersionType</"
|
||||
"literal>, are not allowed in conjunction with a <literal>update versioned</"
|
||||
"literal> statement."
|
||||
msgstr ""
|
||||
"カスタムバージョン型(<literal>org.hibernate.usertype.UserVersionType</"
|
||||
"literal>) は <literal>update versioned</literal> 文と一緒に使えないことに注"
|
||||
"意してください。"
|
||||
"literal>)は <literal>update versioned</literal> 文と一緒に使えないことに注意"
|
||||
"してください。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:208
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"To execute an HQL <literal>DELETE</literal>, use the same <literal>Query."
|
||||
"executeUpdate()</literal> method:"
|
||||
msgstr ""
|
||||
"HQLの <literal>DELETE</literal> を実行するには、 同じ <literal>Query."
|
||||
"HQL の <literal>DELETE</literal> を実行するには、同じ <literal>Query."
|
||||
"executeUpdate()</literal> メソッドを使ってください:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:213
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
|
||||
"// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
|
||||
"int deletedEntities = s.createQuery( hqlDelete )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:215
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The <literal>int</literal> value returned by the <literal>Query.executeUpdate"
|
||||
"()</literal> method indicates the number of entities effected by the "
|
||||
|
@ -492,16 +327,15 @@ msgid ""
|
|||
"joined-subclass tables further down the inheritance hierarchy."
|
||||
msgstr ""
|
||||
"<literal>Query.executeUpdate()</literal> メソッドが返す <literal>int</"
|
||||
"literal> の値は、この操作が影響を及ぼしたエンティティの数です。 これが影響す"
|
||||
"るデータベース内の行数と、相互に関係するかどうかを考えてみてください。 HQLバ"
|
||||
"ルク操作は、結果として、実際のSQL文が複数実行されることになります。 例えば"
|
||||
"joined-subclassです。 返される数は、その文によって影響された実際のエンティ"
|
||||
"ティの数を示します。 joined-subclassの例に戻ると、サブクラスの一つに対する削"
|
||||
"除は、 そのサブクラスがマッピングされたテーブルだけではなく、 「ルート」テー"
|
||||
"ブルと継承階層をさらに下ったjoined-subclassのテーブルの削除になります。"
|
||||
"literal> の値は、この操作が影響を及ぼしたエンティティの数です。これが影響する"
|
||||
"データベース内の行数と、相互に関係するかどうかを考えてみてください。 HQL バル"
|
||||
"ク操作は、結果として、実際の SQL 文が複数実行されることになります。例えば "
|
||||
"joined-subclass です。返される数は、その文によって影響された実際のエンティ"
|
||||
"ティの数を示します。 joined-subclass の例に戻ると、サブクラスの一つに対する削"
|
||||
"除は、そのサブクラスがマッピングされたテーブルだけではなく、「ルート」テーブ"
|
||||
"ルと継承階層をさらに下った joined-subclass のテーブルの削除になります。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:226
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The pseudo-syntax for <literal>INSERT</literal> statements is: "
|
||||
|
@ -509,11 +343,9 @@ msgid ""
|
|||
"Some points to note:"
|
||||
msgstr ""
|
||||
"<literal>INSERT</literal> 文の疑似構文は: <literal>INSERT INTO エンティティ"
|
||||
"名 プロパティリスト select文</literal> です。 注意すべき点がいくつかありま"
|
||||
"す:"
|
||||
"名プロパティリスト select 文</literal> です。注意すべき点がいくつかあります:"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:234
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Only the INSERT INTO ... SELECT ... form is supported; not the INSERT "
|
||||
|
@ -523,8 +355,7 @@ msgstr ""
|
|||
"INTO ... VALUES ... の形式はサポートされていません。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:237
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The properties_list is analogous to the <literal>column specification</"
|
||||
"literal> in the SQL <literal>INSERT</literal> statement. For entities "
|
||||
|
@ -533,16 +364,15 @@ msgid ""
|
|||
"are not allowed and subclass properties do not make sense. In other words, "
|
||||
"<literal>INSERT</literal> statements are inherently non-polymorphic."
|
||||
msgstr ""
|
||||
"プロパティリストは、SQLの <literal>INSERT</literal> 文における <literal>カラ"
|
||||
"ムの仕様</literal> に類似しています。 継承のマッピングに含まれるエンティティ"
|
||||
"に対して、 クラスレベルで直接定義されたプロパティだけが、プロパティリストに使"
|
||||
"えます。 スーパークラスのプロパティは認められず、サブクラスのプロパティは効果"
|
||||
"がありません。 言い換えると <literal>INSERT</literal> 文は、本質的にポリモー"
|
||||
"プロパティリストは、 SQL の <literal>INSERT</literal> 文における <literal>カ"
|
||||
"ラムの仕様</literal> に類似しています。継承のマッピングに含まれるエンティティ"
|
||||
"に対して、クラスレベルで直接定義されたプロパティだけが、プロパティリストに使"
|
||||
"えます。スーパークラスのプロパティは認められず、サブクラスのプロパティは効果"
|
||||
"がありません。言い換えると <literal>INSERT</literal> 文は、本質的にポリモー"
|
||||
"フィックではありません。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:247
|
||||
#, fuzzy, no-c-format
|
||||
#, 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 "
|
||||
|
@ -555,19 +385,18 @@ msgid ""
|
|||
"TimestampType</literal>, even though the database might not make a "
|
||||
"distinction or might be able to handle the conversion."
|
||||
msgstr ""
|
||||
"select文の返り値の型がinsert文が期待する型とマッチしていれば、 そのselect文は"
|
||||
"妥当なHQL selectクエリとなりえます。 現在このチェックをデータベースへ任せるの"
|
||||
"ではなく、クエリのコンパイル時にチェックします。 このことは、"
|
||||
"<emphasis>equal</emphasis>とは違い、 Hibernateの <literal>Type</literal> 間"
|
||||
"の <emphasis>equivalent</emphasis> に関する 問題を引き起こすことに注意してく"
|
||||
"ださい。 これは <literal>org.hibernate.type.DataType</literal> として定義され"
|
||||
"たプロパティと、 <literal>org.hibernate.type.TimestampType</literal> として定"
|
||||
"義されたプロパティの間のミスマッチの問題を引き起こします。 データベースがそれ"
|
||||
"らを区別できなくても、変換することができても、この問題は発生します。"
|
||||
"select 文の返り値の型が insert 文が期待する型とマッチしていれば、その select "
|
||||
"文は妥当な HQL select クエリとなりえます。現在このチェックをデータベースへ任"
|
||||
"せるのではなく、クエリのコンパイル時にチェックします。このことは、 "
|
||||
"<emphasis>equal</emphasis> とは違い、 Hibernate の <literal>Type</literal> 間"
|
||||
"の <emphasis>equivalent</emphasis> に関する問題を引き起こすことに注意してくだ"
|
||||
"さい。これは <literal>org.hibernate.type.DateType</literal> として定義された"
|
||||
"プロパティと、 <literal>org.hibernate.type.TimestampType</literal> として定義"
|
||||
"されたプロパティの間のミスマッチの問題を引き起こします。データベースがそれら"
|
||||
"を区別できなくても、変換することができても、この問題は発生します。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:259
|
||||
#, fuzzy, no-c-format
|
||||
#, 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 "
|
||||
|
@ -583,21 +412,21 @@ msgid ""
|
|||
"TableHiLoGenerator</literal>, which cannot be used because it does not "
|
||||
"expose a selectable way to get its values."
|
||||
msgstr ""
|
||||
"idプロパティに対して、insert文には二つの選択肢があります。 プロパティリストで"
|
||||
"明示的にidプロパティを指定するか (この場合、対応するselect式から値が取られま"
|
||||
"す)、 プロパティリストから除外するか (この場合、生成される値が使われます)"
|
||||
"のいずれかです。 後者の選択肢は、データベース内を操作するidジェネレータを使う"
|
||||
"ときのみ、利用可能です。 この選択肢を採る場合、「インメモリ」型のジェネレータ"
|
||||
"を使うと、構文解析時に例外が発生します。 この議論では、インデータベース型ジェ"
|
||||
"ネレータは <literal>org.hibernate.id.SequenceGenerator</literal> (とそのサブ"
|
||||
"クラス)と、<literal>org.hibernate.id.PostInsertIdentifierGenerator</"
|
||||
"literal> の実装であると考えています。 ここで最も注意すべき例外は、"
|
||||
"<literal>org.hibernate.id.TableHiLoGenerator</literal> です。 値を取得する選"
|
||||
"択可能な方法がないため、このジェネレータを使うことはできません。"
|
||||
"id プロパティに対して、 insert 文には二つの選択肢があります。プロパティリスト"
|
||||
"で明示的に id プロパティを指定するか (この場合、対応する select 式から値が取"
|
||||
"られます)、プロパティリストからそれを除外するかのいずれかです (この場合、生"
|
||||
"成される値が使われます)。 後者の選択肢は、データベース内を操作する id ジェネ"
|
||||
"レータを使うときのみ、利用可能です。この選択肢を採る場合、「インメモリ」型の"
|
||||
"ジェネレータを使うと、構文解析時に例外が発生します。この議論では、インデータ"
|
||||
"ベース型ジェネレータは <literal>org.hibernate.id.SequenceGenerator</literal> "
|
||||
"(とそのサブクラス) と、 <literal>org.hibernate.id."
|
||||
"PostInsertIdentifierGenerator</literal> の実装であると考えています。ここで最"
|
||||
"も注意すべき例外は、 <literal>org.hibernate.id.TableHiLoGenerator</literal> "
|
||||
"です。値を取得する選択可能な方法がないため、このジェネレータを使うことはでき"
|
||||
"ません。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:274
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"For properties mapped as either <literal>version</literal> or "
|
||||
"<literal>timestamp</literal>, the insert statement gives you two options. "
|
||||
|
@ -607,31 +436,251 @@ msgid ""
|
|||
"defined by the <literal>org.hibernate.type.VersionType</literal> is used."
|
||||
msgstr ""
|
||||
"<literal>version</literal> や <literal>timestamp</literal> としてマッピングさ"
|
||||
"れるプロパティに対して、 insert文には二つの選択肢があります。 プロパティリス"
|
||||
"トで明示的にプロパティを指定するか (この場合、対応するselect式から値が取られ"
|
||||
"ます)、 プロパティリストから除外するか (この場合、<literal>org.hibernate."
|
||||
"れるプロパティに対して、 insert 文には二つの選択肢があります。プロパティリス"
|
||||
"トで明示的にプロパティを指定するか(この場合、対応する select 式から値が取ら"
|
||||
"れます)、プロパティリストから除外するか(この場合、 <literal>org.hibernate."
|
||||
"type.VersionType</literal> で定義された <literal>シード値</literal> が使われ"
|
||||
"ます)のいずれかです。"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:284
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The following is an example of an HQL <literal>INSERT</literal> statement "
|
||||
"execution:"
|
||||
msgstr "HQLの <literal>INSERT</literal> 文の実行例です:"
|
||||
msgstr "HQL の <literal>INSERT</literal> 文の実行例です:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:288
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"String hqlInsert = \"insert into DelinquentAccount (id, name) select c.id, c."
|
||||
"name from Customer c where ...\";\n"
|
||||
"int createdEntities = s.createQuery( hqlInsert )\n"
|
||||
" .executeUpdate();\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ "for ( int i=0; i<100000; i++ ) {\n"
|
||||
#~ " Customer customer = new Customer(.....);\n"
|
||||
#~ " session.save(customer);\n"
|
||||
#~ "}\n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();]]>"
|
||||
#~ msgstr ""
|
||||
#~ "Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ "for ( int i=0; i<100000; i++ ) {\n"
|
||||
#~ " Customer customer = new Customer(.....);\n"
|
||||
#~ " session.save(customer);\n"
|
||||
#~ "}\n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
|
||||
#~ msgstr "hibernate.jdbc.batch_size 20"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
|
||||
#~ msgstr "hibernate.cache.use_second_level_cache false"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ " \n"
|
||||
#~ "for ( int i=0; i<100000; i++ ) {\n"
|
||||
#~ " Customer customer = new Customer(.....);\n"
|
||||
#~ " session.save(customer);\n"
|
||||
#~ " if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
|
||||
#~ " //flush a batch of inserts and release memory:\n"
|
||||
#~ " session.flush();\n"
|
||||
#~ " session.clear();\n"
|
||||
#~ " }\n"
|
||||
#~ "}\n"
|
||||
#~ " \n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();]]>"
|
||||
#~ msgstr ""
|
||||
#~ "Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ " \n"
|
||||
#~ "for ( int i=0; i<100000; i++ ) {\n"
|
||||
#~ " Customer customer = new Customer(.....);\n"
|
||||
#~ " session.save(customer);\n"
|
||||
#~ " if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
|
||||
#~ " //flush a batch of inserts and release memory:\n"
|
||||
#~ " session.flush();\n"
|
||||
#~ " session.clear();\n"
|
||||
#~ " }\n"
|
||||
#~ "}\n"
|
||||
#~ " \n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ " \n"
|
||||
#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
#~ " .setCacheMode(CacheMode.IGNORE)\n"
|
||||
#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
|
||||
#~ "int count=0;\n"
|
||||
#~ "while ( customers.next() ) {\n"
|
||||
#~ " Customer customer = (Customer) customers.get(0);\n"
|
||||
#~ " customer.updateStuff(...);\n"
|
||||
#~ " if ( ++count % 20 == 0 ) {\n"
|
||||
#~ " //flush a batch of updates and release memory:\n"
|
||||
#~ " session.flush();\n"
|
||||
#~ " session.clear();\n"
|
||||
#~ " }\n"
|
||||
#~ "}\n"
|
||||
#~ " \n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();]]>"
|
||||
#~ msgstr ""
|
||||
#~ "Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ " \n"
|
||||
#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
#~ " .setCacheMode(CacheMode.IGNORE)\n"
|
||||
#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
|
||||
#~ "int count=0;\n"
|
||||
#~ "while ( customers.next() ) {\n"
|
||||
#~ " Customer customer = (Customer) customers.get(0);\n"
|
||||
#~ " customer.updateStuff(...);\n"
|
||||
#~ " if ( ++count % 20 == 0 ) {\n"
|
||||
#~ " //flush a batch of updates and release memory:\n"
|
||||
#~ " session.flush();\n"
|
||||
#~ " session.clear();\n"
|
||||
#~ " }\n"
|
||||
#~ "}\n"
|
||||
#~ " \n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[StatelessSession session = sessionFactory.openStatelessSession"
|
||||
#~ "();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ " \n"
|
||||
#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
|
||||
#~ "while ( customers.next() ) {\n"
|
||||
#~ " Customer customer = (Customer) customers.get(0);\n"
|
||||
#~ " customer.updateStuff(...);\n"
|
||||
#~ " session.update(customer);\n"
|
||||
#~ "}\n"
|
||||
#~ " \n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();]]>"
|
||||
#~ msgstr ""
|
||||
#~ "StatelessSession session = sessionFactory.openStatelessSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ " \n"
|
||||
#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
|
||||
#~ "while ( customers.next() ) {\n"
|
||||
#~ " Customer customer = (Customer) customers.get(0);\n"
|
||||
#~ " customer.updateStuff(...);\n"
|
||||
#~ " session.update(customer);\n"
|
||||
#~ "}\n"
|
||||
#~ " \n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ "\n"
|
||||
#~ "String hqlUpdate = \"update Customer c set c.name = :newName where c.name "
|
||||
#~ "= :oldName\";\n"
|
||||
#~ "// or String hqlUpdate = \"update Customer set name = :newName where name "
|
||||
#~ "= :oldName\";\n"
|
||||
#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
|
||||
#~ " .setString( \"newName\", newName )\n"
|
||||
#~ " .setString( \"oldName\", oldName )\n"
|
||||
#~ " .executeUpdate();\n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();]]>"
|
||||
#~ msgstr ""
|
||||
#~ "Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ "\n"
|
||||
#~ "String hqlUpdate = \"update Customer c set c.name = :newName where c.name "
|
||||
#~ "= :oldName\";\n"
|
||||
#~ "// or String hqlUpdate = \"update Customer set name = :newName where name "
|
||||
#~ "= :oldName\";\n"
|
||||
#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
|
||||
#~ " .setString( \"newName\", newName )\n"
|
||||
#~ " .setString( \"oldName\", oldName )\n"
|
||||
#~ " .executeUpdate();\n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ "String hqlVersionedUpdate = \"update versioned Customer set name = :"
|
||||
#~ "newName where name = :oldName\";\n"
|
||||
#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
|
||||
#~ " .setString( \"newName\", newName )\n"
|
||||
#~ " .setString( \"oldName\", oldName )\n"
|
||||
#~ " .executeUpdate();\n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();]]>"
|
||||
#~ msgstr ""
|
||||
#~ "Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ "String hqlVersionedUpdate = \"update versioned Customer set name = :"
|
||||
#~ "newName where name = :oldName\";\n"
|
||||
#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
|
||||
#~ " .setString( \"newName\", newName )\n"
|
||||
#~ " .setString( \"oldName\", oldName )\n"
|
||||
#~ " .executeUpdate();\n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ "\n"
|
||||
#~ "String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
|
||||
#~ "// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
|
||||
#~ "int deletedEntities = s.createQuery( hqlDelete )\n"
|
||||
#~ " .setString( \"oldName\", oldName )\n"
|
||||
#~ " .executeUpdate();\n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();]]>"
|
||||
#~ msgstr ""
|
||||
#~ "Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ "\n"
|
||||
#~ "String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
|
||||
#~ "// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
|
||||
#~ "int deletedEntities = s.createQuery( hqlDelete )\n"
|
||||
#~ " .setString( \"oldName\", oldName )\n"
|
||||
#~ " .executeUpdate();\n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ "\n"
|
||||
#~ "String hqlInsert = \"insert into DelinquentAccount (id, name) select c."
|
||||
#~ "id, c.name from Customer c where ...\";\n"
|
||||
#~ "int createdEntities = s.createQuery( hqlInsert )\n"
|
||||
#~ " .executeUpdate();\n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();]]>"
|
||||
#~ msgstr ""
|
||||
#~ "Session session = sessionFactory.openSession();\n"
|
||||
#~ "Transaction tx = session.beginTransaction();\n"
|
||||
#~ "\n"
|
||||
#~ "String hqlInsert = \"insert into DelinquentAccount (id, name) select c."
|
||||
#~ "id, c.name from Customer \n"
|
||||
#~ " c where ...\";\n"
|
||||
#~ "int createdEntities = s.createQuery( hqlInsert )\n"
|
||||
#~ " .executeUpdate();\n"
|
||||
#~ "tx.commit();\n"
|
||||
#~ "session.close();"
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
# translation of Collection_Mapping.po to
|
||||
# Xi HUANG <xhuang@redhat.com>, 2007, 2010.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Project-Id-Version: Collection_Mapping\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:15\n"
|
||||
"PO-Revision-Date: 2010-01-20 16:59+1000\n"
|
||||
"Last-Translator: Xi HUANG <xhuang@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: best_practices.xml:29
|
||||
#, no-c-format
|
||||
msgid "Best Practices"
|
||||
msgstr "ベストプラクティス"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:33
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Write fine-grained classes and map them using <literal><component></"
|
||||
"literal>:"
|
||||
|
@ -27,7 +28,6 @@ msgstr ""
|
|||
"ましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:35
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Use an <literal>Address</literal> class to encapsulate <literal>street</"
|
||||
|
@ -35,37 +35,33 @@ msgid ""
|
|||
"<literal>postcode</literal>. This encourages code reuse and simplifies "
|
||||
"refactoring."
|
||||
msgstr ""
|
||||
"<literal>street</literal>(通り), <literal>suburb</literal> (都市), "
|
||||
"<literal>state</literal>(州), <literal>postcode</literal> (郵便番号)をカ"
|
||||
"プセル化する <literal>Address</literal>(住所)クラスを使いましょう。 そうす"
|
||||
"ればコードが再利用しやすくなり、リファクタリングも簡単になります。"
|
||||
"<literal>street</literal> (通り)、 <literal>suburb</literal> (都市)、 "
|
||||
"<literal>state</literal> (州)、 <literal>postcode</literal> (郵便番号)を"
|
||||
"カプセル化する <literal>Address</literal> (住所)クラスを使いましょう。そう"
|
||||
"すればコードが再利用しやすくなり、リファクタリングも簡単になります。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:43
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Declare identifier properties on persistent classes:"
|
||||
msgstr "永続クラスには識別子プロパティを定義しましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:45
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate makes identifier properties optional. There are a range of reasons "
|
||||
"why you should use them. We recommend that identifiers be 'synthetic', that "
|
||||
"is, generated with no business meaning."
|
||||
msgstr ""
|
||||
"Hibernateでは識別子プロパティはオプションですが、 使用すべき理由がたくさんあ"
|
||||
"ります。 識別子は「人工的」(生成された、業務的な意味を持たない) なものにす"
|
||||
"ることをおすすめします。"
|
||||
"Hibernate では識別子プロパティはオプションですが、使用すべき理由がたくさんあ"
|
||||
"ります。識別子は「人工的」(生成された、業務的な意味を持たない)なものにする"
|
||||
"ことをおすすめします。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:53
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Identify natural keys:"
|
||||
msgstr "自然キーを見つけましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:55
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Identify natural keys for all entities, and map them using <literal><"
|
||||
|
@ -74,19 +70,17 @@ msgid ""
|
|||
"natural key."
|
||||
msgstr ""
|
||||
"すべてのエンティティに対して自然キーを見つけて、 <literal><natural-id>"
|
||||
"</literal> でマッピングしましょう。 自然キーを構成するプロパティを比較するた"
|
||||
"めに、 <literal>equals()</literal> と <literal>hashCode()</literal> を実装し"
|
||||
"ましょう。"
|
||||
"</literal> でマッピングしましょう。自然キーを構成するプロパティを比較するため"
|
||||
"に、 <literal>equals()</literal> と <literal>hashCode()</literal> を実装しま"
|
||||
"しょう。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:63
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Place each class mapping in its own file:"
|
||||
msgstr "クラスのマッピングはそれぞれのクラス専用のファイルに書きましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:65
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Do not use a single monolithic mapping document. Map <literal>com.eg.Foo</"
|
||||
"literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes "
|
||||
|
@ -94,85 +88,75 @@ msgid ""
|
|||
msgstr ""
|
||||
"単一の巨大なマッピングドキュメントを使用しないでください。 <literal>com.eg."
|
||||
"Foo</literal> クラスなら <literal>com/eg/Foo.hbm.xml</literal> ファイルにマッ"
|
||||
"ピングしましょう。 このことは、特にチームでの開発に意味があります。"
|
||||
"ピングしましょう。このことは、特にチームでの開発に意味があります。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:73
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Load mappings as resources:"
|
||||
msgstr "リソースとしてマッピングをロードしましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:75
|
||||
#, no-c-format
|
||||
msgid "Deploy the mappings along with the classes they map."
|
||||
msgstr "マッピングを、それらがマッピングするするクラスと一緒に配置しましょう。"
|
||||
msgstr "マッピングを、それらがマッピングするクラスと一緒に配置しましょう。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:81
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Consider externalizing query strings:"
|
||||
msgstr "クエリ文字列を外部に置くことを考えましょう"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:83
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is recommended if your queries call non-ANSI-standard SQL functions. "
|
||||
"Externalizing the query strings to mapping files will make the application "
|
||||
"more portable."
|
||||
msgstr ""
|
||||
"クエリがANSI標準でないSQL関数を呼んでいるなら、これはよいプラクティスです。 "
|
||||
"クエリ文字列をマッピングファイルへ外出しすればアプリケーションがポータブルに"
|
||||
"なります。"
|
||||
"クエリが ANSI 標準でない SQL 関数を呼んでいるなら、これはよいプラクティスで"
|
||||
"す。クエリ文字列をマッピングファイルへ外出しすればアプリケーションがポータブ"
|
||||
"ルになります。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:91
|
||||
#, no-c-format
|
||||
msgid "Use bind variables."
|
||||
msgstr "バインド変数を使いましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:93
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"As in JDBC, always replace non-constant values by \"?\". Do not use string "
|
||||
"manipulation to bind a non-constant value in a query. You should also "
|
||||
"consider using named parameters in queries."
|
||||
msgstr ""
|
||||
"JDBCの場合と同じように、定数でない値は必ず\"?\"で置き換えましょう。 定数でな"
|
||||
"い値をバインドするために、クエリで文字列操作を使ってはいけません。 名前付きの"
|
||||
"パラメータを使うようにするとさらに良いです。"
|
||||
"JDBC の場合と同じように、定数でない値は必ず \"?\" で置き換えましょう。定数で"
|
||||
"ない値をバインドするために、クエリで文字列操作を使ってはいけません。名前付き"
|
||||
"のパラメータを使うようにするとさらに良いです。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:101
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Do not manage your own JDBC connections:"
|
||||
msgstr "JDBCコネクションを管理してはいけません。"
|
||||
msgstr "JDBC コネクションを管理してはいけません。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:103
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate allows the application to manage JDBC connections, but his "
|
||||
"approach should be considered a last-resort. If you cannot use the built-in "
|
||||
"connection providers, consider providing your own implementation of "
|
||||
"<literal>org.hibernate.connection.ConnectionProvider</literal>."
|
||||
msgstr ""
|
||||
"HibernateではアプリケーションがJDBCコネクションを管理することが許されていま"
|
||||
"す。 しかしこれは最終手段だと思ってください。 組み込みのコネクションプロバイ"
|
||||
"Hibernate ではアプリケーションが JDBC コネクションを管理することが許されてい"
|
||||
"ます。しかしこれは最終手段だと思ってください。組み込みのコネクションプロバイ"
|
||||
"ダを使うことができなければ、 <literal>org.hibernate.connection."
|
||||
"ConnectionProvider</literal> を実装することを考えてください。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:111
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Consider using a custom type:"
|
||||
msgstr "カスタム型の使用を考えましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:113
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Suppose you have a Java type from a library that needs to be persisted but "
|
||||
"does not provide the accessors needed to map it as a component. You should "
|
||||
|
@ -180,47 +164,44 @@ msgid ""
|
|||
"approach frees the application code from implementing transformations to/"
|
||||
"from a Hibernate type."
|
||||
msgstr ""
|
||||
"あるライブラリから持ってきたJava型を永続化する必要があるとしましょう。 しかし"
|
||||
"その型には、コンポーネントとしてマッピングするために必要なアクセサがないとし"
|
||||
"ます。 このような場合は <literal>org.hibernate.UserType</literal> の実装を考"
|
||||
"えるべきです。 そうすればHibernate型との実装変換を心配せずにアプリケーション"
|
||||
"あるライブラリから持ってきた Java 型を永続化する必要があるとしましょう。しか"
|
||||
"しその型には、コンポーネントとしてマッピングするために必要なアクセサがないと"
|
||||
"します。このような場合は <literal>org.hibernate.UserType</literal> の実装を考"
|
||||
"えるべきです。そうすれば Hibernate 型との実装変換を心配せずにアプリケーション"
|
||||
"のコードを扱えます。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:122
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Use hand-coded JDBC in bottlenecks:"
|
||||
msgstr "ボトルネックを解消するにはJDBCをハンドコードしましょう。"
|
||||
msgstr "ボトルネックを解消するには JDBC をハンドコードしましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:124
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"In performance-critical areas of the system, some kinds of operations might "
|
||||
"benefit from direct JDBC. Do not assume, however, that JDBC is necessarily "
|
||||
"faster. Please wait until you <emphasis>know</emphasis> something is a "
|
||||
"bottleneck. If you need to use direct JDBC, you can open a Hibernate "
|
||||
"<literal>Session</literal> and usingfile:///usr/share/doc/HTML/en-US/index."
|
||||
"html that JDBC connection. This way you can still use the same transaction "
|
||||
"strategy and underlying connection provider."
|
||||
"<literal>Session</literal>, wrap your JDBC operation as a <literal>org."
|
||||
"hibernate.jdbc.Work</literal> object and using that JDBC connection. This "
|
||||
"way you can still use the same transaction strategy and underlying "
|
||||
"connection provider."
|
||||
msgstr ""
|
||||
"システムのパフォーマンスクリティカルな領域では、 ある種の操作にJDBCを直接使う"
|
||||
"と良いかもしれません。 しかし何がボトルネックになっているか <emphasis>はっき"
|
||||
"りする</emphasis> までは待ってください。 またJDBCを直接使うからといって、必ず"
|
||||
"しも速くなるとは限らないことも理解してください。 JDBCを直接使う必要があれば、"
|
||||
"Hibernateの <literal>Session</literal> をオープンして、 JDBCコネクションを使"
|
||||
"うと良いかもしれません。 依然として同じトランザクション戦略とコネクションプロ"
|
||||
"バイダが使えるからです。"
|
||||
"システムのパフォーマンスクリティカルな領域では、ある種の操作に JDBC を直接使"
|
||||
"うと良いかもしれません。しかし何がボトルネックになっているか <emphasis>はっき"
|
||||
"りする</emphasis> までは待ってください。また JDBC を直接使うからといって、必"
|
||||
"ずしも速くなるとは限らないことも理解してください。 JDBC を直接使う必要があれ"
|
||||
"ば、 Hibernate の <literal>Session</literal> をオープンして、 JDBC コネク"
|
||||
"ションを使うと良いかもしれません。依然として同じトランザクション戦略とコネク"
|
||||
"ションプロバイダが使えるからです。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:134
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Understand <literal>Session</literal> flushing:"
|
||||
msgstr "<literal>Session</literal> のフラッシュを理解しましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:136
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Sometimes the Session synchronizes its persistent state with the database. "
|
||||
"Performance will be affected if this process occurs too often. You can "
|
||||
|
@ -228,20 +209,18 @@ msgid ""
|
|||
"even by changing the order of queries and other operations within a "
|
||||
"particular transaction."
|
||||
msgstr ""
|
||||
"Sessionが永続状態をデータベースと同期させることがときどきあります。 しかしこ"
|
||||
"れがあまりに頻繁に起こるようだと、パフォーマンスに影響が出てきます。 自動フ"
|
||||
"Session が永続状態をデータベースと同期させることがときどきあります。しかしこ"
|
||||
"れがあまりに頻繁に起こるようだと、パフォーマンスに影響が出てきます。自動フ"
|
||||
"ラッシュを無効にしたり、特定のトランザクションのクエリや操作の順番を変更する"
|
||||
"ことで、 不必要なフラッシュを最小限にできます。"
|
||||
"ことで、不必要なフラッシュを最小限にできます。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:145
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "In a three tiered architecture, consider using detached objects:"
|
||||
msgstr "3層アーキテクチャでは分離オブジェクトの使用を考えましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:147
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"When using a servlet/session bean architecture, you can pass persistent "
|
||||
"objects loaded in the session bean to and from the servlet/JSP layer. Use a "
|
||||
|
@ -249,21 +228,19 @@ msgid ""
|
|||
"or <literal>Session.saveOrUpdate()</literal> to synchronize objects with the "
|
||||
"database."
|
||||
msgstr ""
|
||||
"サーブレット / セッションビーンアーキテクチャを使うとき、 サーブレット層 / "
|
||||
"JSP層間でセッションビーンでロードした永続オブジェクトをやり取りできます。 そ"
|
||||
"の際リクエストごとに新しいSessionを使ってください。 また <literal>Session."
|
||||
"サーブレット / セッション Bean アーキテクチャを使うとき、サーブレット層 / "
|
||||
"JSP 層間でセッション Bean でロードした永続オブジェクトをやり取りできます。そ"
|
||||
"の際リクエストごとに新しい Session を使ってください。また <literal>Session."
|
||||
"merge()</literal> や <literal>Session.saveOrUpdate()</literal> を使って、オブ"
|
||||
"ジェクトとデータベースを同期させてください。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:156
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "In a two tiered architecture, consider using long persistence contexts:"
|
||||
msgstr "2層アーキテクチャでは長い永続コンテキストの使用を考えましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:158
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Database Transactions have to be as short as possible for best scalability. "
|
||||
"However, it is often necessary to implement long running "
|
||||
|
@ -278,28 +255,26 @@ msgid ""
|
|||
"across more than one application transaction or you will be working with "
|
||||
"stale data."
|
||||
msgstr ""
|
||||
"最高のスケーラビリティを得るには、 データベーストランザクションをできるだけ短"
|
||||
"くしなければなりません。 しかし長い間実行する <emphasis>アプリケーショントラ"
|
||||
"ンザクション</emphasis> の実装が必要なことはしばしばです。 これはユーザの視点"
|
||||
"からは1個の作業単位(unit of work)になります。 アプリケーショントランザク"
|
||||
"ションはいくつかのクライアントのリクエスト/レスポンスサイクルにまたがりま"
|
||||
"す。 アプリケーショントランザクションの実装に分離オブジェクトを使うのは一般的"
|
||||
"です。 そうでなければ、2層アーキテクチャの場合は特に適切なことですが、 アプリ"
|
||||
"ケーショントランザクションのライフサイクル全体に対して 単一のオープンな永続化"
|
||||
"コンテキスト(セッション)を維持してください。 そして単純にリクエストの最後に"
|
||||
"JDBCコネクションから切断し、 次のリクエストの最初に再接続します。 決して複数"
|
||||
"のアプリケーショントランザクションユースケースに渡って 1個のSessionを使い回さ"
|
||||
"ないでください。 そうでなければ、古いデータで作業することになります。"
|
||||
"最高のスケーラビリティを得るには、データベーストランザクションをできるだけ短"
|
||||
"くしなければなりません。しかし長い間実行する <emphasis>アプリケーショントラン"
|
||||
"ザクション</emphasis> の実装が必要なことはしばしばです。これはユーザーの視点"
|
||||
"からは1個の作業単位(unit of work)になります。アプリケーショントランザクショ"
|
||||
"ンはいくつかのクライアントのリクエスト/レスポンスサイクルにまたがります。アプ"
|
||||
"リケーショントランザクションの実装に分離オブジェクトを使うのは一般的です。そ"
|
||||
"うでなければ、2層アーキテクチャの場合は特に適切なことですが、アプリケーション"
|
||||
"トランザクションのライフサイクル全体に対して単一のオープンな永続化コンテキス"
|
||||
"ト(セッション)を維持してください。そして単純にリクエストの最後に JDBC コネ"
|
||||
"クションから切断し、次のリクエストの最初に再接続します。決して複数のアプリ"
|
||||
"ケーショントランザクションユースケースに渡って1個の Session を使い回さないで"
|
||||
"ください。そうでなければ、古いデータで作業することになります。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:172
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Do not treat exceptions as recoverable:"
|
||||
msgstr "例外を復帰可能なものとして扱ってはいけません。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:174
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is more of a necessary practice than a \"best\" practice. When an "
|
||||
"exception occurs, roll back the <literal>Transaction</literal> and close the "
|
||||
|
@ -309,23 +284,21 @@ msgid ""
|
|||
"instance with the given identifier exists on the database; use "
|
||||
"<literal>Session.get()</literal> or a query instead."
|
||||
msgstr ""
|
||||
"これは「ベスト」プラクティス以上の、必須のプラクティスです。 例外が発生したと"
|
||||
"これは「ベスト」プラクティス以上の、必須のプラクティスです。例外が発生したと"
|
||||
"きは <literal>Transaction</literal> をロールバックして、 <literal>Session</"
|
||||
"literal> をクローズしてください。 そうしないとHibernateはメモリの状態が永続状"
|
||||
"態を正確に表現していることを保証できません。 この特別な場合として、与えられた"
|
||||
"識別子を持つインスタンスがデータベースに存在するかどうかを判定するために、 "
|
||||
"<literal>Session.load()</literal> を使うことはやめてください。 その代わりに "
|
||||
"literal> をクローズしてください。そうしないと Hibernate はメモリの状態が永続"
|
||||
"状態を正確に表現していることを保証できません。この特別な場合として、与えられ"
|
||||
"た識別子を持つインスタンスがデータベースに存在するかどうかを判定するために、 "
|
||||
"<literal>Session.load()</literal> を使うことはやめてください。その代わりに "
|
||||
"<literal>Session.get()</literal> かクエリを使ってください。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:184
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Prefer lazy fetching for associations:"
|
||||
msgstr "関連にはなるべく遅延フェッチを使いましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:186
|
||||
#, fuzzy, no-c-format
|
||||
#, 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 "
|
||||
|
@ -335,27 +308,26 @@ msgid ""
|
|||
"to a particular use case, use a query with a <literal>left join fetch</"
|
||||
"literal>."
|
||||
msgstr ""
|
||||
"即時フェッチは控えめにしましょう。 二次キャッシュには完全に保持されないような"
|
||||
"クラスの関連には、 プロキシと遅延コレクションを使ってください。 キャッシュさ"
|
||||
"れるクラスの関連、つまりキャッシュがヒットする可能性が非常に高い関連は、 "
|
||||
"即時フェッチは控えめにしましょう。二次キャッシュには完全に保持されないような"
|
||||
"クラスの関連には、プロキシと遅延コレクションを使ってください。キャッシュされ"
|
||||
"るクラスの関連、つまりキャッシュがヒットする可能性が非常に高い関連は、 "
|
||||
"<literal>lazy=\"false\"</literal> で積極的なフェッチを明示的に無効にしてくだ"
|
||||
"さい。 結合フェッチが適切な特定のユースケースには、 クエリで <literal>left "
|
||||
"さい。結合フェッチが適切な特定のユースケースには、クエリで <literal>left "
|
||||
"join fetch</literal> を使ってください。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:196
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Use the <emphasis>open session in view</emphasis> pattern, or a disciplined "
|
||||
"<emphasis>assembly phase</emphasis> to avoid problems with unfetched data:"
|
||||
msgstr ""
|
||||
"フェッチされていないデータに関わる問題を避けるために、 <emphasis>ビューの中で"
|
||||
"オープンセッションを使う(open session in view)</emphasis> パターンか、統制さ"
|
||||
"れた <emphasis>組み立てフェーズ(assembly phase)</emphasis> を使いましょう。"
|
||||
"オープンセッションを使う (open session in view) </emphasis> パターンか、統制"
|
||||
"された <emphasis>組み立てフェーズ (assembly phase) </emphasis> を使いましょ"
|
||||
"う。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:201
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
|
||||
"Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual "
|
||||
|
@ -370,27 +342,25 @@ msgid ""
|
|||
"objects. This is not a limitation of Hibernate. It is a fundamental "
|
||||
"requirement of safe transactional data access."
|
||||
msgstr ""
|
||||
"Hibernateは <emphasis>Data Transfer Objects</emphasis> (DTO)を書く退屈な作業"
|
||||
"から開発者を解放します。 伝統的なEJBアーキテクチャではDTOは二つ目的がありま"
|
||||
"す: 1つ目は、エンティティビーンがシリアライズされない問題への対策です。 2つ"
|
||||
"目は、プレゼンテーション層に制御が戻る前に、 ビューに使われるすべてのデータが"
|
||||
"フェッチされて、DTOに復元されるような組み立てフェーズを暗黙的に定義します。 "
|
||||
"Hibernateでは1つ目の目的が不要になります。 しかしビューのレンダリング処理の"
|
||||
"間、永続コンテキスト(セッション)をオープンにしたままにしなければ、 組み立て"
|
||||
"フェーズはまだ必要です(分離オブジェクトの中のどのデータが利用可能かについ"
|
||||
"て、 プレゼンテーション層と厳密な取り決めをしているビジネスメソッドを考えてみ"
|
||||
"てください)。 これはHibernate側の問題ではありません。 トランザクション内で安"
|
||||
"全にデータアクセスするための基本的な要件です。"
|
||||
"Hibernate は <emphasis>Data Transfer Objects</emphasis> (DTO) を書く退屈な作"
|
||||
"業から開発者を解放します。伝統的な EJB アーキテクチャでは DTO は2つ目的があり"
|
||||
"ます: 1つ目は、エンティティ Bean がシリアライズされない問題への対策です。2つ"
|
||||
"目は、プレゼンテーション層に制御が戻る前に、ビューに使われるすべてのデータが"
|
||||
"フェッチされて、 DTO に復元されるような組み立てフェーズを暗黙的に定義しま"
|
||||
"す。 Hibernate では1つ目の目的が不要になります。しかしビューのレンダリング処"
|
||||
"理の間、永続コンテキスト(セッション)をオープンにしたままにしなければ、組み"
|
||||
"立てフェーズはまだ必要です(分離オブジェクトの中のどのデータが利用可能かにつ"
|
||||
"いて、プレゼンテーション層と厳密な取り決めをしているビジネスメソッドを考えて"
|
||||
"みてください)。これは Hibernate 側の問題ではありません。トランザクション内で"
|
||||
"安全にデータアクセスするための基本的な要件です。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:215
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Consider abstracting your business logic from Hibernate:"
|
||||
msgstr "Hibernateからビジネスロジックを抽象化することを考えましょう。"
|
||||
msgstr "Hibernate からビジネスロジックを抽象化することを考えましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:217
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Hide Hibernate data-access code behind an interface. Combine the "
|
||||
"<emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> "
|
||||
|
@ -399,22 +369,20 @@ msgid ""
|
|||
"however, intended for \"sufficiently large\" applications. It is not "
|
||||
"appropriate for an application with five tables."
|
||||
msgstr ""
|
||||
"インターフェイスで(Hibernateの)データアクセスコードを隠蔽しましょう。 "
|
||||
"インターフェースで(Hibernate の)データアクセスコードを隠蔽しましょう。 "
|
||||
"<emphasis>DAO</emphasis> と <emphasis>Thread Local Session</emphasis> パター"
|
||||
"ンを組み合わせましょう。 <literal>UserType</literal> でHibernateに関連付ける"
|
||||
"と、 ハンドコードしたJDBCで永続化するクラスを持つこともできます。 (このアド"
|
||||
"バイスは「十分大きな」アプリケーションに対してのものです。 テーブルが5個しか"
|
||||
"ンを組み合わせましょう。 <literal>UserType</literal> で Hibernate に関連付け"
|
||||
"ると、ハンドコードした JDBC で永続化するクラスを持つこともできます。(このア"
|
||||
"ドバイスは「十分大きな」アプリケーションに対してのものです。テーブルが5個しか"
|
||||
"ないようなアプリケーションには当てはまりません。)"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:227
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Do not use exotic association mappings:"
|
||||
msgstr "珍しい関連マッピングは使わないようにしましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:229
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Practical test cases for real many-to-many associations are rare. Most of "
|
||||
"the time you need additional information stored in the \"link table\". In "
|
||||
|
@ -423,25 +391,22 @@ msgid ""
|
|||
"to-one. For this reason, you should proceed cautiously when using any other "
|
||||
"association style."
|
||||
msgstr ""
|
||||
"よいユースケースに本当の多対多関連があることは稀(まれ)です。 ほとんどの場合"
|
||||
"「リンクテーブル」の付加的な情報が必要になります。 この場合、リンククラスに2"
|
||||
"つの1対多関連を使う方がずっと良いです。 実際ほとんどの場合関連は1対多と多対1"
|
||||
"なので、 他のスタイルの関連を使うときは本当に必要かどうかを考えてみてくださ"
|
||||
"い。"
|
||||
"よいユースケースに本当の多対多関連があることは稀です。ほとんどの場合「リンク"
|
||||
"テーブル」の付加的な情報が必要になります。この場合、リンククラスに2つの一対多"
|
||||
"関連を使う方がずっとよいです。実際ほとんどの場合、関連は一対多と多対一なの"
|
||||
"で、他のスタイルの関連を使うときは本当に必要かどうかを考えてみてください。"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:239
|
||||
#, fuzzy, no-c-format
|
||||
#, no-c-format
|
||||
msgid "Prefer bidirectional associations:"
|
||||
msgstr "なるべく双方向関連にしましょう。"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:241
|
||||
#, 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 ""
|
||||
"単方向関連は双方向に比べて検索が難しくなります。 大きなアプリケーションで"
|
||||
"は、 ほとんどすべての関連が双方向にナビゲーションできなければなりません。"
|
||||
"単方向関連は双方向に比べて検索が難しくなります。大きなアプリケーションでは、"
|
||||
"ほとんどすべての関連が双方向にナビゲーションできなければなりません。"
|
||||
|
|
|
@ -5,7 +5,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2009-07-14 19:55+0000\n"
|
||||
"POT-Creation-Date: 2010-02-04T04:51:21\n"
|
||||
"PO-Revision-Date: 2009-07-14 19:55+0000\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: none\n"
|
||||
|
@ -14,55 +14,36 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Tag: title
|
||||
#: bibliography.xml:27
|
||||
#, no-c-format
|
||||
msgid "References"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: bibliography.xml:31
|
||||
#, no-c-format
|
||||
msgid "Patterns of Enterprise Application Architecture"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: bibliography.xml:34
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Martin</firstname> <surname>Fowler</surname>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: holder
|
||||
#: bibliography.xml:41
|
||||
#, no-c-format
|
||||
msgid "Pearson Education, Inc."
|
||||
msgid "Martin"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: bibliography.xml:50
|
||||
#, no-c-format
|
||||
msgid "Java Persistence with Hibernate"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: subtitle
|
||||
#: bibliography.xml:51
|
||||
#, no-c-format
|
||||
msgid "Second Edition of Hibernate in Action"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: bibliography.xml:57
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Christian</firstname> <surname>Bauer</surname>"
|
||||
msgid "Christian"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: author
|
||||
#: bibliography.xml:61
|
||||
#. Tag: firstname
|
||||
#, no-c-format
|
||||
msgid "<firstname>Gavin</firstname> <surname>King</surname>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: holder
|
||||
#: bibliography.xml:68
|
||||
#, no-c-format
|
||||
msgid "Manning Publications Co."
|
||||
msgid "Gavin"
|
||||
msgstr ""
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue