HHH-4940 added po and pot files and a minor correct
git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@19112 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
parent
3ad551a88a
commit
3cf67d5714
|
@ -275,7 +275,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Collection_Mapping\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2010-03-12T00:03:47\n"
|
||||
"POT-Creation-Date: 2010-03-25 06:26+0000\n"
|
||||
"PO-Revision-Date: 2007-02-26 10:27+1000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: <de@li.org>\n"
|
||||
|
@ -285,16 +285,19 @@ msgstr ""
|
|||
"X-Generator: KBabel 1.9.1\n"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:31
|
||||
#, fuzzy, no-c-format
|
||||
msgid "Database Portability Considerations"
|
||||
msgstr "Abgrenzung von Datenbanktransaktionen"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:34
|
||||
#, no-c-format
|
||||
msgid "Portability Basics"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:36
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"One of the selling points of Hibernate (and really Object/Relational Mapping "
|
||||
|
@ -308,11 +311,13 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:47
|
||||
#, no-c-format
|
||||
msgid "Dialect"
|
||||
msgstr "Dialekt"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:49
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The first line of portability for Hibernate is the dialect, which is a "
|
||||
|
@ -326,11 +331,13 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:60
|
||||
#, no-c-format
|
||||
msgid "Dialect resolution"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:62
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Originally, Hibernate would always require that users specify which dialect "
|
||||
|
@ -341,6 +348,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:69
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.2, Hibernate introduced the notion of automatically "
|
||||
|
@ -352,26 +360,28 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:77
|
||||
#, 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 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 "
|
||||
"identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</"
|
||||
"exceptionname> as possibly being thrown. A JDBCConnectionException here is "
|
||||
"interpreted to imply a \"non transient\" (aka non-recoverable) connection "
|
||||
"problem and is used to indicate an immediate stop to resolution attempts. "
|
||||
"All other exceptions result in a warning and continuing on to the next "
|
||||
"resolver."
|
||||
"<programlisting role=\"JAVA\"><![CDATA[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 identifies <exceptionname>org.hibernate."
|
||||
"exception.JDBCConnectionException</exceptionname> as possibly being thrown. "
|
||||
"A JDBCConnectionException here is interpreted to imply a \"non transient"
|
||||
"\" (aka non-recoverable) connection problem and is used to indicate an "
|
||||
"immediate stop to resolution attempts. All other exceptions result in a "
|
||||
"warning and continuing on to the next resolver."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:90
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The cool part about these resolvers is that users can also register their "
|
||||
|
@ -387,11 +397,13 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:103
|
||||
#, fuzzy, no-c-format
|
||||
msgid "Identifier generation"
|
||||
msgstr "Die \"Getter\"-Methode des Bezeichners"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:105
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"When considering portability between databases, another important decision "
|
||||
|
@ -410,63 +422,38 @@ 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."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#, 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 ""
|
||||
|
||||
#. Tag: note
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The underlying issue is that the actual semanctics of the application itself "
|
||||
"changes in these cases."
|
||||
"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."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:130
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#, fuzzy, no-c-format
|
||||
msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
msgstr "org.hibernate.cache.TreeCacheProvider"
|
||||
|
||||
#. Tag: para
|
||||
#, fuzzy, no-c-format
|
||||
msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
msgstr "org.hibernate.cache.TreeCacheProvider"
|
||||
|
||||
#. 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."
|
||||
"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:159
|
||||
#, fuzzy, no-c-format
|
||||
msgid "Database functions"
|
||||
msgstr "Aggregierte Funktionen"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:162
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is an area in Hibernate in need of improvement. In terms of portability "
|
||||
|
@ -475,6 +462,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:169
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"SQL functions can be referenced in many ways by users. However, not all "
|
||||
|
@ -485,6 +473,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:175
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Technically this function registration is handled through the <classname>org."
|
||||
|
@ -495,6 +484,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:182
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"It is sort of implemented such that users can programatically register "
|
||||
|
@ -503,11 +493,22 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:192
|
||||
#, no-c-format
|
||||
msgid "Type mappings"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:194
|
||||
#, no-c-format
|
||||
msgid "This section scheduled for completion at a later date..."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
#~ msgstr "org.hibernate.cache.TreeCacheProvider"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
#~ msgstr "org.hibernate.cache.TreeCacheProvider"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -14,7 +14,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: portability\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2010-03-12T00:03:47\n"
|
||||
"POT-Creation-Date: 2010-03-25 06:26+0000\n"
|
||||
"PO-Revision-Date: 2010-03-17 12:19+1000\n"
|
||||
"Last-Translator: Angela Garcia <agarcia@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
|
@ -24,16 +24,19 @@ msgstr ""
|
|||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:31
|
||||
#, no-c-format
|
||||
msgid "Database Portability Considerations"
|
||||
msgstr "Consideraciones de la portabilidad de la base de datos"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:34
|
||||
#, no-c-format
|
||||
msgid "Portability Basics"
|
||||
msgstr "Aspectos básicos de la portabilidad"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:36
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"One of the selling points of Hibernate (and really Object/Relational Mapping "
|
||||
|
@ -56,11 +59,13 @@ msgstr ""
|
|||
"cambiar los metadatos de mapeo. "
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:47
|
||||
#, no-c-format
|
||||
msgid "Dialect"
|
||||
msgstr "Dialecto"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:49
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The first line of portability for Hibernate is the dialect, which is a "
|
||||
|
@ -83,11 +88,13 @@ msgstr ""
|
|||
"el propio."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:60
|
||||
#, no-c-format
|
||||
msgid "Dialect resolution"
|
||||
msgstr "Resolución del dialecto"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:62
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Originally, Hibernate would always require that users specify which dialect "
|
||||
|
@ -104,6 +111,7 @@ msgstr ""
|
|||
"establecer ese valor. "
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:69
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.2, Hibernate introduced the notion of automatically "
|
||||
|
@ -122,41 +130,43 @@ msgstr ""
|
|||
"se podía sobreescribir."
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
#: portability.xml:77
|
||||
#, 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 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 "
|
||||
"identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</"
|
||||
"exceptionname> as possibly being thrown. A JDBCConnectionException here is "
|
||||
"interpreted to imply a \"non transient\" (aka non-recoverable) connection "
|
||||
"problem and is used to indicate an immediate stop to resolution attempts. "
|
||||
"All other exceptions result in a warning and continuing on to the next "
|
||||
"resolver."
|
||||
"<programlisting role=\"JAVA\"><![CDATA[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 identifies <exceptionname>org.hibernate."
|
||||
"exception.JDBCConnectionException</exceptionname> as possibly being thrown. "
|
||||
"A JDBCConnectionException here is interpreted to imply a \"non transient"
|
||||
"\" (aka non-recoverable) connection problem and is used to indicate an "
|
||||
"immediate stop to resolution attempts. 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>. Este define 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. "
|
||||
"hibernate.dialect.resolver.DialectResolver</interfacename>. Este define 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:90
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The cool part about these resolvers is that users can also register their "
|
||||
|
@ -183,12 +193,14 @@ msgstr ""
|
|||
"Environment</classname>)."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:103
|
||||
#, no-c-format
|
||||
msgid "Identifier generation"
|
||||
msgstr "Generación del identificador"
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
#: portability.xml:105
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"When considering portability between databases, another important decision "
|
||||
"is selecting the identifier generation stratagy you want to use. Originally "
|
||||
|
@ -206,7 +218,10 @@ 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."
|
||||
"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."
|
||||
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 "
|
||||
|
@ -228,76 +243,43 @@ msgstr ""
|
|||
"medio de save()) sin importar la semántica transaccional actual."
|
||||
|
||||
#. Tag: para
|
||||
#, 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 ha cambiado un poco ya que se comprendió un poco mejor las implicaciones de esto de manera que el insert se retrasa en los casos en "
|
||||
"donde esto posible. "
|
||||
|
||||
#. Tag: note
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The underlying issue is that the actual semanctics of the application itself "
|
||||
"changes in these cases."
|
||||
msgstr "El problema subyacente es que la semántica real de la aplicación misma cambia en estos casos."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:130
|
||||
#, 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."
|
||||
"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 ""
|
||||
"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
|
||||
#, no-c-format
|
||||
msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
msgstr "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
|
||||
#. Tag: para
|
||||
#, 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
|
||||
#: portability.xml:159
|
||||
#, no-c-format
|
||||
msgid "Database functions"
|
||||
msgstr "Funciones de la base de datos"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:162
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is an area in Hibernate in need of improvement. In terms of portability "
|
||||
"concerns, this function handling currently works pretty well from HQL; "
|
||||
"however, it is quite lacking in all other aspects."
|
||||
msgstr "Esta es un área en la que Hibernate necesita mejorar. En términos de qué tan portatil puede ser, esta función que se maneja actualmente trabaja bastante bien desde HQL; sin embargo, en otros aspectos le falta mucho. "
|
||||
msgstr ""
|
||||
"Esta es un área en la que Hibernate necesita mejorar. En términos de qué tan "
|
||||
"portatil puede ser, esta función que se maneja actualmente trabaja bastante "
|
||||
"bien desde HQL; sin embargo, en otros aspectos le falta mucho. "
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:169
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"SQL functions can be referenced in many ways by users. However, not all "
|
||||
|
@ -314,6 +296,7 @@ msgstr ""
|
|||
"totalmente diferente."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:175
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Technically this function registration is handled through the <classname>org."
|
||||
|
@ -330,6 +313,7 @@ msgstr ""
|
|||
"completo."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:182
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"It is sort of implemented such that users can programatically register "
|
||||
|
@ -341,12 +325,64 @@ msgstr ""
|
|||
"Configuration</classname> y aquellas funciones serán reconocidas por HQL."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:192
|
||||
#, no-c-format
|
||||
msgid "Type mappings"
|
||||
msgstr "Mapeos de tipo"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:194
|
||||
#, no-c-format
|
||||
msgid "This section scheduled for completion at a later date..."
|
||||
msgstr "Esta sección se completará en un futuro cercano..."
|
||||
|
||||
#~ 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 ha cambiado un poco ya que se comprendió un poco mejor las "
|
||||
#~ "implicaciones de esto de manera que el insert se retrasa en los casos en "
|
||||
#~ "donde esto posible. "
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The underlying issue is that the actual semanctics of the application "
|
||||
#~ "itself changes in these cases."
|
||||
#~ msgstr ""
|
||||
#~ "El problema subyacente es que la semántica real de la aplicación misma "
|
||||
#~ "cambia en estos casos."
|
||||
|
||||
#~ 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."
|
||||
#~ 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."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
|
||||
#~ msgstr ""
|
||||
#~ "Hay especificamente 2 paquetes de generadores <emphasis>mejorados</"
|
||||
#~ "emphasis>:"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
#~ msgstr ""
|
||||
#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
|
||||
#~ msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
#~ msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
|
||||
#~ 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."
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: portability\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2010-03-12T00:03:47\n"
|
||||
"POT-Creation-Date: 2010-03-25 06:26+0000\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"
|
||||
|
@ -17,16 +17,19 @@ msgstr ""
|
|||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:31
|
||||
#, no-c-format
|
||||
msgid "Database Portability Considerations"
|
||||
msgstr "Considérations de portabilité des bases de données"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:34
|
||||
#, no-c-format
|
||||
msgid "Portability Basics"
|
||||
msgstr "Aspects fondamentaux de la portabilité"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:36
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"One of the selling points of Hibernate (and really Object/Relational Mapping "
|
||||
|
@ -50,11 +53,13 @@ msgstr ""
|
|||
"modifications des métadonnées de mappage."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:47
|
||||
#, no-c-format
|
||||
msgid "Dialect"
|
||||
msgstr "Dialecte"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:49
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The first line of portability for Hibernate is the dialect, which is a "
|
||||
|
@ -77,11 +82,13 @@ msgstr ""
|
|||
"n'est pas difficile d'écrire votre propre dialecte."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:60
|
||||
#, no-c-format
|
||||
msgid "Dialect resolution"
|
||||
msgstr "Résolution de dialecte"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:62
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Originally, Hibernate would always require that users specify which dialect "
|
||||
|
@ -98,6 +105,7 @@ msgstr ""
|
|||
"valeur."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:69
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.2, Hibernate introduced the notion of automatically "
|
||||
|
@ -115,23 +123,24 @@ msgstr ""
|
|||
"connues d'Hibernate et elle n'était ni configurable, ni remplaçable."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:77
|
||||
#, 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 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 "
|
||||
"identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</"
|
||||
"exceptionname> as possibly being thrown. A JDBCConnectionException here is "
|
||||
"interpreted to imply a \"non transient\" (aka non-recoverable) connection "
|
||||
"problem and is used to indicate an immediate stop to resolution attempts. "
|
||||
"All other exceptions result in a warning and continuing on to the next "
|
||||
"resolver."
|
||||
"<programlisting role=\"JAVA\"><![CDATA[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 identifies <exceptionname>org.hibernate."
|
||||
"exception.JDBCConnectionException</exceptionname> as possibly being thrown. "
|
||||
"A JDBCConnectionException here is interpreted to imply a \"non transient"
|
||||
"\" (aka non-recoverable) connection problem and is used to indicate an "
|
||||
"immediate stop to resolution attempts. 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 "
|
||||
|
@ -150,6 +159,7 @@ msgstr ""
|
|||
"exceptions entraînent un avertissement et de passer à la résolution suivante."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:90
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The cool part about these resolvers is that users can also register their "
|
||||
|
@ -177,11 +187,13 @@ msgstr ""
|
|||
"sur <classname>cfg.Environment org.Hibernate.</classname>)."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:103
|
||||
#, no-c-format
|
||||
msgid "Identifier generation"
|
||||
msgstr "Générer les identifiants"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:105
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"When considering portability between databases, another important decision "
|
||||
|
@ -200,7 +212,10 @@ 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."
|
||||
"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."
|
||||
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 "
|
||||
|
@ -224,72 +239,31 @@ msgstr ""
|
|||
"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:130
|
||||
#, 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."
|
||||
"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 ""
|
||||
"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
|
||||
#: portability.xml:159
|
||||
#, no-c-format
|
||||
msgid "Database functions"
|
||||
msgstr "Fonctions de base de données"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:162
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is an area in Hibernate in need of improvement. In terms of portability "
|
||||
|
@ -298,6 +272,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:169
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"SQL functions can be referenced in many ways by users. However, not all "
|
||||
|
@ -314,6 +289,7 @@ msgstr ""
|
|||
"appel de fonction physique totalement différente."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:175
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Technically this function registration is handled through the <classname>org."
|
||||
|
@ -330,6 +306,7 @@ msgstr ""
|
|||
"terminé."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:182
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"It is sort of implemented such that users can programatically register "
|
||||
|
@ -341,15 +318,64 @@ msgstr ""
|
|||
"Configuration</classname> et ces fonctions seront reconnues pour HQL."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:192
|
||||
#, no-c-format
|
||||
msgid "Type mappings"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:194
|
||||
#, no-c-format
|
||||
msgid "This section scheduled for completion at a later date..."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
#~ 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."
|
||||
|
||||
#~ 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."
|
||||
#~ 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."
|
||||
|
||||
#~ 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."
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
#~ msgstr ""
|
||||
#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
#~ msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
|
||||
#~ 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."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This is a new area in Hibernate and as such it is not as mature as the "
|
||||
#~ "overall Hibernate experience."
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4,7 +4,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Collection_Mapping\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2010-03-12T00:03:47\n"
|
||||
"POT-Creation-Date: 2010-03-25 06:26+0000\n"
|
||||
"PO-Revision-Date: 2010-01-20 17:03+1000\n"
|
||||
"Last-Translator: Xi HUANG <xhuang@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
|
@ -14,16 +14,19 @@ msgstr ""
|
|||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:31
|
||||
#, no-c-format
|
||||
msgid "Database Portability Considerations"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:34
|
||||
#, no-c-format
|
||||
msgid "Portability Basics"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:36
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"One of the selling points of Hibernate (and really Object/Relational Mapping "
|
||||
|
@ -37,11 +40,13 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:47
|
||||
#, no-c-format
|
||||
msgid "Dialect"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:49
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The first line of portability for Hibernate is the dialect, which is a "
|
||||
|
@ -55,11 +60,13 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:60
|
||||
#, no-c-format
|
||||
msgid "Dialect resolution"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:62
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Originally, Hibernate would always require that users specify which dialect "
|
||||
|
@ -70,6 +77,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:69
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.2, Hibernate introduced the notion of automatically "
|
||||
|
@ -81,26 +89,28 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:77
|
||||
#, 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 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 "
|
||||
"identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</"
|
||||
"exceptionname> as possibly being thrown. A JDBCConnectionException here is "
|
||||
"interpreted to imply a \"non transient\" (aka non-recoverable) connection "
|
||||
"problem and is used to indicate an immediate stop to resolution attempts. "
|
||||
"All other exceptions result in a warning and continuing on to the next "
|
||||
"resolver."
|
||||
"<programlisting role=\"JAVA\"><![CDATA[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 identifies <exceptionname>org.hibernate."
|
||||
"exception.JDBCConnectionException</exceptionname> as possibly being thrown. "
|
||||
"A JDBCConnectionException here is interpreted to imply a \"non transient"
|
||||
"\" (aka non-recoverable) connection problem and is used to indicate an "
|
||||
"immediate stop to resolution attempts. All other exceptions result in a "
|
||||
"warning and continuing on to the next resolver."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:90
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The cool part about these resolvers is that users can also register their "
|
||||
|
@ -116,11 +126,13 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:103
|
||||
#, no-c-format
|
||||
msgid "Identifier generation"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:105
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"When considering portability between databases, another important decision "
|
||||
|
@ -139,64 +151,38 @@ 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."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#, 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 ""
|
||||
|
||||
#. Tag: note
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The underlying issue is that the actual semanctics of the application itself "
|
||||
"changes in these cases."
|
||||
"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."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:130
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
|
||||
msgstr ""
|
||||
|
||||
#. 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."
|
||||
"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:159
|
||||
#, no-c-format
|
||||
msgid "Database functions"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:162
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is an area in Hibernate in need of improvement. In terms of portability "
|
||||
|
@ -205,6 +191,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:169
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"SQL functions can be referenced in many ways by users. However, not all "
|
||||
|
@ -215,6 +202,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:175
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Technically this function registration is handled through the <classname>org."
|
||||
|
@ -225,6 +213,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:182
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"It is sort of implemented such that users can programatically register "
|
||||
|
@ -233,11 +222,23 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:192
|
||||
#, no-c-format
|
||||
msgid "Type mappings"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:194
|
||||
#, no-c-format
|
||||
msgid "This section scheduled for completion at a later date..."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
#~ msgstr ""
|
||||
#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
#~ msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,143 +1,135 @@
|
|||
# SOME DESCRIPTIVE TITLE.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 0\n"
|
||||
"POT-Creation-Date: 2010-02-11T05:38:15\n"
|
||||
"PO-Revision-Date: 2010-02-11T05:38:15\n"
|
||||
"Last-Translator: Automatically generated\n"
|
||||
"Language-Team: None\n"
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2010-03-25 06:26+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <kde-i18n-doc@kde.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: application/x-publican; charset=UTF-8\n"
|
||||
"Content-Type: application/x-xml2pot; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:31
|
||||
#, no-c-format
|
||||
msgid "Database Portability Considerations"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:34
|
||||
#, no-c-format
|
||||
msgid "Portability Basics"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:36
|
||||
#, no-c-format
|
||||
msgid "One of the selling points of Hibernate (and really Object/Relational Mapping as a whole) is the notion of database portability. This could mean an internal IT user migrating from one database vendor to another, or it could mean a framework or deployable application consuming Hibernate to simultaneously target multiple database products by their users. Regardless of 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."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:47
|
||||
#, no-c-format
|
||||
msgid "Dialect"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:49
|
||||
#, no-c-format
|
||||
msgid "The first line of portability for Hibernate is the dialect, which is a specialization of the <classname>org.hibernate.dialect.Dialect</classname> contract. A dialect encapsulates all the differences in how Hibernate must communicate with a particular database to accomplish some task like getting a sequence value or structuring a SELECT query. Hibernate bundles a wide range 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."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:60
|
||||
#, no-c-format
|
||||
msgid "Dialect resolution"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:62
|
||||
#, no-c-format
|
||||
msgid "Originally, Hibernate would always require that users specify which dialect to use. In the case of users looking to simultaneously target multiple databases with their build that was problematic. Generally this required their users to configure the Hibernate dialect or defining their own method of setting that value."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:69
|
||||
#, no-c-format
|
||||
msgid "Starting with version 3.2, Hibernate introduced the notion of automatically detecting the dialect to use based on the <interfacename>java.sql.DatabaseMetaData</interfacename> obtained from a <interfacename>java.sql.Connection</interfacename> to that database. This was much better, expect that this resolution was limited to databases Hibernate know about ahead of time and was in no way configurable or overrideable."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:77
|
||||
#, 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 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 identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</exceptionname> as possibly being thrown. A JDBCConnectionException here is interpreted to imply a \"non transient\" (aka non-recoverable) connection problem and is used to indicate an immediate stop to resolution attempts. All other exceptions result in a warning and continuing on to the next resolver."
|
||||
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 role=\"JAVA\"><![CDATA[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 identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</exceptionname> as possibly being thrown. A JDBCConnectionException here is interpreted to imply a \"non transient\" (aka non-recoverable) connection problem and is used to indicate an immediate stop to resolution attempts. All other exceptions result in a warning and continuing on to the next resolver."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:90
|
||||
#, no-c-format
|
||||
msgid "The cool part about these resolvers is that users can also register their own custom resolvers which will be processed ahead of the built-in Hibernate ones. This might be useful in a number of different situations: it allows easy integration for auto-detection of dialects beyond those shipped with HIbernate itself; it allows you to specify to use a custom dialect when a particular database is recognized; etc. To register one or more resolvers, simply specify them (seperated by commas, tabs or spaces) using the 'hibernate.dialect_resolvers' configuration setting (see the <constant>DIALECT_RESOLVERS</constant> constant on <classname>org.hibernate.cfg.Environment</classname>)."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:103
|
||||
#, no-c-format
|
||||
msgid "Identifier generation"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:105
|
||||
#, no-c-format
|
||||
msgid "When considering portability between databases, another important decision is selecting the identifier generation stratagy you want to use. Originally Hibernate provided the <emphasis>native</emphasis> generator for this purpose, which was intended to select between a <emphasis>sequence</emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> strategy depending on the capability of the underlying database. However, an insidious implication of this approach comes about when targtetting some databases which support <emphasis>identity</emphasis> generation and some which do not. <emphasis>identity</emphasis> generation relies on the SQL definition of an IDENTITY (or auto-increment) column to manage the identifier value; it is what is known as a post-insert generation strategy becauase the insert must actually happen before we can know the identifier value. Because Hibernate relies on this identifier value to uniquely 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."
|
||||
msgid "When considering portability between databases, another important decision is selecting the identifier generation stratagy you want to use. Originally Hibernate provided the <emphasis>native</emphasis> generator for this purpose, which was intended to select between a <emphasis>sequence</emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> strategy depending on the capability of the underlying database. However, an insidious implication of this approach comes about when targtetting some databases which support <emphasis>identity</emphasis> generation and some which do not. <emphasis>identity</emphasis> generation relies on the SQL definition of an IDENTITY (or auto-increment) column to manage the identifier value; it is what is known as a post-insert generation strategy becauase the insert must actually happen before we can know the identifier value. Because Hibernate relies on this identifier value to uniquely 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."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:130
|
||||
#, 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 ""
|
||||
|
||||
#. 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
|
||||
#, 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."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
msgstr ""
|
||||
|
||||
#. 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."
|
||||
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:159
|
||||
#, no-c-format
|
||||
msgid "Database functions"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:162
|
||||
#, no-c-format
|
||||
msgid "This is an area in Hibernate in need of improvement. In terms of portability concerns, this function handling currently works pretty well from HQL; however, it is quite lacking in all other aspects."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:169
|
||||
#, no-c-format
|
||||
msgid "SQL functions can be referenced in many ways by users. However, not all databases support the same set of functions. Hibernate, provides a means of mapping a <emphasis>logical</emphasis> function name to a a delegate which knows how to render that particular function, perhaps even using a totally different physical function call."
|
||||
msgid "SQL functions can be referenced in many ways by users. However, not all databases support the same set of functions. Hibernate, provides a means of mapping a <emphasis>logical</emphasis> function name to a delegate which knows how to render that particular function, perhaps even using a totally different physical function call."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:175
|
||||
#, no-c-format
|
||||
msgid "Technically this function registration is handled through the <classname>org.hibernate.dialect.function.SQLFunctionRegistry</classname> class which is intended to allow users to provide custom function definitions without having to provide a custom dialect. This specific behavior is not fully completed as of yet."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:182
|
||||
#, 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 ""
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:192
|
||||
#, no-c-format
|
||||
msgid "Type mappings"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:194
|
||||
#, no-c-format
|
||||
msgid "This section scheduled for completion at a later date..."
|
||||
msgstr ""
|
||||
|
|
|
@ -0,0 +1,951 @@
|
|||
# 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: 2010-03-25 06:26+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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
|
||||
#: readonly.xml:33
|
||||
#, no-c-format
|
||||
msgid "Read-only entities"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:36
|
||||
#, no-c-format
|
||||
msgid "Hibernate's treatment of <emphasis>read-only</emphasis> entities may differ from what you may have encountered elsewhere. Incorrect usage may cause unexpected results."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:43
|
||||
#, no-c-format
|
||||
msgid "When an entity is read-only:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:48
|
||||
#, no-c-format
|
||||
msgid "Hibernate does not dirty-check the entity's simple properties or single-ended associations;"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:54
|
||||
#, no-c-format
|
||||
msgid "Hibernate will not update simple properties or updatable single-ended associations;"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:60
|
||||
#, no-c-format
|
||||
msgid "Hibernate will not update the version of the read-only entity if only simple properties or single-ended updatable associations are changed;"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:69
|
||||
#, no-c-format
|
||||
msgid "In some ways, Hibernate treats read-only entities the same as entities that are not read-only:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:75
|
||||
#, no-c-format
|
||||
msgid "Hibernate cascades operations to associations as defined in the entity mapping."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:81
|
||||
#, no-c-format
|
||||
msgid "Hibernate updates the version if the entity has a collection with changes that dirties the entity;"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:87
|
||||
#, no-c-format
|
||||
msgid "A read-only entity can be deleted."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:94
|
||||
#, no-c-format
|
||||
msgid "Even if an entity is not read-only, its collection association can be affected if it contains a read-only entity."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:99
|
||||
#, no-c-format
|
||||
msgid "For details about the affect of read-only entities on different property and association types, see <xref linkend=\"readonly-proptypes\"/>."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:105
|
||||
#, no-c-format
|
||||
msgid "For details about how to make entities read-only, see"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:110
|
||||
#, no-c-format
|
||||
msgid "Hibernate does some optimizing for read-only entities:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:115
|
||||
#, no-c-format
|
||||
msgid "It saves execution time by not dirty-checking simple properties or single-ended associations."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:121
|
||||
#, no-c-format
|
||||
msgid "It saves memory by deleting database snapshots."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:128
|
||||
#, no-c-format
|
||||
msgid "Making persistent entities read-only"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:130
|
||||
#, no-c-format
|
||||
msgid "Only persistent entities can be made read-only. Transient and detached entities must be put in persistent state before they can be made read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:136
|
||||
#, no-c-format
|
||||
msgid "Hibernate provides the following ways to make persistent entities read-only:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:142
|
||||
#, no-c-format
|
||||
msgid "you can map an entity class as <emphasis>immutable</emphasis>; when an entity of an immutable class is made persistent, Hibernate automatically makes it read-only. see <xref linkend=\"readonly-api-immutable\"/> for details"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:150
|
||||
#, no-c-format
|
||||
msgid "you can change a default so that entities loaded into the session by Hibernate are automatically made read-only; see <xref linkend=\"readonly-api-loaddefault\"/> for details"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:157
|
||||
#, no-c-format
|
||||
msgid "you can make an HQL query or criteria read-only so that entities loaded when the query or criteria executes, scrolls, or iterates, are automatically made read-only; see <xref linkend=\"readonly-api-querycriteria\"/> for details"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:165
|
||||
#, no-c-format
|
||||
msgid "you can make a persistent entity that is already in the in the session read-only; see <xref linkend=\"readonly-api-entity\"/> for details"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:174
|
||||
#, no-c-format
|
||||
msgid "Entities of immutable classes"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:176
|
||||
#, no-c-format
|
||||
msgid "When an entity instance of an immutable class is made persistent, Hibernate automatically makes it read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:180
|
||||
#, no-c-format
|
||||
msgid "An entity of an immutable class can created and deleted the same as an entity of a mutable class."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:185
|
||||
#, no-c-format
|
||||
msgid "Hibernate treats a persistent entity of an immutable class the same way as a read-only persistent entity of a mutable class. The only exception is that Hibernate will not allow an entity of an immutable class to be changed so it is not read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:196
|
||||
#, no-c-format
|
||||
msgid "Loading persistent entities as read-only"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:199 readonly.xml:286
|
||||
#, no-c-format
|
||||
msgid "Entities of immutable classes are automatically loaded as read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:205
|
||||
#, no-c-format
|
||||
msgid "To change the default behavior so Hibernate loads entity instances of mutable classes into the session and automatically makes them read-only, call:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:210
|
||||
#, no-c-format
|
||||
msgid "Session.setDefaultReadOnly( true );"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:212
|
||||
#, no-c-format
|
||||
msgid "To change the default back so entities loaded by Hibernate are not made read-only, call:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:216
|
||||
#, no-c-format
|
||||
msgid "Session.setDefaultReadOnly( false );"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:218
|
||||
#, no-c-format
|
||||
msgid "You can determine the current setting by calling:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:221
|
||||
#, no-c-format
|
||||
msgid "Session.isDefaultReadOnly();"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:223
|
||||
#, no-c-format
|
||||
msgid "If Session.isDefaultReadOnly() returns true, entities loaded by the following are automatically made read-only:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:229
|
||||
#, no-c-format
|
||||
msgid "Session.load()"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:234
|
||||
#, no-c-format
|
||||
msgid "Session.get()"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:239
|
||||
#, no-c-format
|
||||
msgid "Session.merge()"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:244
|
||||
#, no-c-format
|
||||
msgid "executing, scrolling, or iterating HQL queries and criteria; to override this setting for a particular HQL query or criteria see"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:253
|
||||
#, no-c-format
|
||||
msgid "Changing this default has no effect on:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:258
|
||||
#, no-c-format
|
||||
msgid "persistent entities already in the session when the default was changed"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:264
|
||||
#, no-c-format
|
||||
msgid "persistent entities that are refreshed via Session.refresh(); a refreshed persistent entity will only be read-only if it was read-only before refreshing"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:272
|
||||
#, no-c-format
|
||||
msgid "persistent entities added by the application via Session.persist(), Session.save(), and Session.update() Session.saveOrUpdate()"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:283
|
||||
#, no-c-format
|
||||
msgid "Loading read-only entities from an HQL query/criteria"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:292
|
||||
#, no-c-format
|
||||
msgid "If Session.isDefaultReadOnly() returns false (the default) when an HQL query or criteria executes, then entities and proxies of mutable classes loaded by the query will not be read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:299
|
||||
#, no-c-format
|
||||
msgid "You can override this behavior so that entities and proxies loaded by an HQL query or criteria are automatically made read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:304
|
||||
#, no-c-format
|
||||
msgid "For an HQL query, call:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:307
|
||||
#, no-c-format
|
||||
msgid "Query.setReadOnly( true );"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:309
|
||||
#, no-c-format
|
||||
msgid "<literal>Query.setReadOnly( true )</literal> must be called before <literal>Query.list()</literal>, <literal>Query.uniqueResult()</literal>, <literal>Query.scroll()</literal>, or <literal>Query.iterate()</literal>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:315
|
||||
#, no-c-format
|
||||
msgid "For an HQL criteria, call:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:318
|
||||
#, no-c-format
|
||||
msgid "Criteria.setReadOnly( true );"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:320
|
||||
#, no-c-format
|
||||
msgid "<literal>Criteria.setReadOnly( true )</literal> must be called before <literal>Criteria.list()</literal>, <literal>Criteria.uniqueResult()</literal>, or <literal>Criteria.scroll()</literal>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:326
|
||||
#, no-c-format
|
||||
msgid "Entities and proxies that exist in the session before being returned by an HQL query or criteria are not affected."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:331
|
||||
#, no-c-format
|
||||
msgid "Uninitialized persistent collections returned by the query are not affected. Later, when the collection is initialized, entities loaded into the session will be read-only if Session.isDefaultReadOnly() returns true."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:338
|
||||
#, no-c-format
|
||||
msgid "Using <literal>Query.setReadOnly( true )</literal> or <literal>Criteria.setReadOnly( true )</literal> works well when a single HQL query or criteria loads all the entities and intializes all the proxies and collections that the application needs to be read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:346
|
||||
#, no-c-format
|
||||
msgid "When it is not possible to load and initialize all necessary entities in a single query or criteria, you can temporarily change the session default to load entities as read-only before the query is executed. Then you can explicitly initialize proxies and collections before restoring the session default."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:355
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Session session = factory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"setDefaultReadOnly( true );\n"
|
||||
"Contract contract = \n"
|
||||
" ( Contract ) session.createQuery(\n"
|
||||
" \"from Contract where customerName = 'Sherman'\" )\n"
|
||||
" .uniqueResult();\n"
|
||||
"Hibernate.initialize( contract.getPlan() );\n"
|
||||
"Hibernate.initialize( contract.getVariations() );\n"
|
||||
"Hibernate.initialize( contract.getNotes() );\n"
|
||||
"setDefaultReadOnly( false );\n"
|
||||
"...\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:357
|
||||
#, no-c-format
|
||||
msgid "If Session.isDefaultReadOnly() returns true, then you can use Query.setReadOnly( false ) and Criteria.setReadOnly( false ) to override this session setting and load entities that are not read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:367
|
||||
#, no-c-format
|
||||
msgid "Making a persistent entity read-only"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:369
|
||||
#, no-c-format
|
||||
msgid "Persistent entities of immutable classes are automatically made read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:375
|
||||
#, no-c-format
|
||||
msgid "To make a persistent entity or proxy read-only, call:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:378
|
||||
#, no-c-format
|
||||
msgid "Session.setReadOnly(entityOrProxy, true)"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:380
|
||||
#, no-c-format
|
||||
msgid "To change a read-only entity or proxy of a mutable class so it is no longer read-only, call:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:384
|
||||
#, no-c-format
|
||||
msgid "Session.setReadOnly(entityOrProxy, false)"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:387
|
||||
#, no-c-format
|
||||
msgid "When a read-only entity or proxy is changed so it is no longer read-only, Hibernate assumes that the current state of the read-only entity is consistent with its database representation. If this is not true, then any non-flushed changes made before or while the entity was read-only, will be ignored."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:396
|
||||
#, no-c-format
|
||||
msgid "To throw away non-flushed changes and make the persistent entity consistent with its database representation, call:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:400
|
||||
#, no-c-format
|
||||
msgid "session.refresh( entity );"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:402
|
||||
#, no-c-format
|
||||
msgid "To flush changes made before or while the entity was read-only and make the database representation consistent with the current state of the persistent entity:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:408
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"// evict the read-only entity so it is detached\n"
|
||||
"session.evict( entity );\n"
|
||||
"\n"
|
||||
"// make the detached entity (with the non-flushed changes) persistent\n"
|
||||
"session.update( entity );\n"
|
||||
"\n"
|
||||
"// now entity is no longer read-only and its changes can be flushed\n"
|
||||
"s.flush();"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:413
|
||||
#, no-c-format
|
||||
msgid "Read-only affect on property type"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:415
|
||||
#, no-c-format
|
||||
msgid "The following table summarizes how different property types are affected by making an entity read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:421
|
||||
#, no-c-format
|
||||
msgid "Affect of read-only entity on property types"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: entry
|
||||
#: readonly.xml:427
|
||||
#, no-c-format
|
||||
msgid "Property/Association Type"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: entry
|
||||
#: readonly.xml:428
|
||||
#, no-c-format
|
||||
msgid "Changes flushed to DB?"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: entry
|
||||
#: readonly.xml:433
|
||||
#, no-c-format
|
||||
msgid "Simple"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:435
|
||||
#, no-c-format
|
||||
msgid "(<xref linkend=\"readonly-proptypes-simple\"/>)"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: entry
|
||||
#: readonly.xml:439
|
||||
#, no-c-format
|
||||
msgid "<entry>no*</entry>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:443
|
||||
#, no-c-format
|
||||
msgid "Unidirectional one-to-one"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:444
|
||||
#, no-c-format
|
||||
msgid "Unidirectional many-to-one"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:445
|
||||
#, no-c-format
|
||||
msgid "(<xref linkend=\"readonly-proptypes-singleended-unidir\"/>)"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:451 readonly.xml:452
|
||||
#, no-c-format
|
||||
msgid "<para>no*</para>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:457
|
||||
#, no-c-format
|
||||
msgid "Unidirectional one-to-many"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:458
|
||||
#, no-c-format
|
||||
msgid "Unidirectional many-to-many"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:459
|
||||
#, no-c-format
|
||||
msgid "(<xref linkend=\"readonly-proptypes-manyended-unidir\"/>)"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:464 readonly.xml:465 readonly.xml:489
|
||||
#, no-c-format
|
||||
msgid "<para>yes</para>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:470
|
||||
#, no-c-format
|
||||
msgid "<para>Bidirectional one-to-one</para>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:471
|
||||
#, no-c-format
|
||||
msgid "(<xref linkend=\"readonly-proptypes-onetoone-bidir\"/>)"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: entry
|
||||
#: readonly.xml:475
|
||||
#, no-c-format
|
||||
msgid "only if the owning entity is not read-only*"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:479
|
||||
#, no-c-format
|
||||
msgid "<para>Bidirectional one-to-many/many-to-one</para>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:480
|
||||
#, no-c-format
|
||||
msgid "inverse collection"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:481
|
||||
#, no-c-format
|
||||
msgid "non-inverse collection"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:482
|
||||
#, no-c-format
|
||||
msgid "(<xref linkend=\"readonly-proptypes-onetomany-manytoone\"/>)"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:488
|
||||
#, no-c-format
|
||||
msgid "only added/removed entities that are not read-only*"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:494
|
||||
#, no-c-format
|
||||
msgid "<para>Bidirectional many-to-many</para>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:495
|
||||
#, no-c-format
|
||||
msgid "(<xref linkend=\"readonly-proptypes-manytomany-bidir\"/>)"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: entry
|
||||
#: readonly.xml:499
|
||||
#, no-c-format
|
||||
msgid "<entry>yes</entry>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:505
|
||||
#, no-c-format
|
||||
msgid "* Behavior is different when the entity having the property/association is read-only, compared to when it is not read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:511
|
||||
#, no-c-format
|
||||
msgid "Simple properties"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:513
|
||||
#, no-c-format
|
||||
msgid "When a persistent object is read-only, Hibernate does not dirty-check simple properties."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:518
|
||||
#, no-c-format
|
||||
msgid "Hibernate will not synchronize simple property state changes to the database. If you have automatic versioning, Hibernate will not increment the version if any simple properties change."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:524
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Session session = factory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"// get a contract and make it read-only\n"
|
||||
"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
|
||||
"session.setReadOnly( contract, true );\n"
|
||||
"\n"
|
||||
"// contract.getCustomerName() is \"Sherman\"\n"
|
||||
"contract.setCustomerName( \"Yogi\" );\n"
|
||||
"tx.commit();\n"
|
||||
"\n"
|
||||
"tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"contract = ( Contract ) session.get( Contract.class, contractId );\n"
|
||||
"// contract.getCustomerName() is still \"Sherman\"\n"
|
||||
"...\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:529
|
||||
#, no-c-format
|
||||
msgid "Unidirectional associations"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:532
|
||||
#, no-c-format
|
||||
msgid "Unidirectional one-to-one and many-to-one"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:534
|
||||
#, no-c-format
|
||||
msgid "Hibernate treats unidirectional one-to-one and many-to-one associations in the same way when the owning entity is read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:540
|
||||
#, no-c-format
|
||||
msgid "We use the term <emphasis>unidirectional single-ended association</emphasis> when referring to functionality that is common to unidirectional one-to-one and many-to-one associations."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:547
|
||||
#, no-c-format
|
||||
msgid "Hibernate does not dirty-check unidirectional single-ended associations when the owning entity is read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:552
|
||||
#, no-c-format
|
||||
msgid "If you change a read-only entity's reference to a unidirectional single-ended association to null, or to refer to a different entity, that change will not be flushed to the database."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:560
|
||||
#, no-c-format
|
||||
msgid "If an entity is of an immutable class, then its references to unidirectional single-ended associations must be assigned when that entity is first created. Because the entity is automatically made read-only, these references can not be updated."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:570
|
||||
#, no-c-format
|
||||
msgid "If automatic versioning is used, Hibernate will not increment the version due to local changes to unidirectional single-ended associations."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:576
|
||||
#, no-c-format
|
||||
msgid "In the following examples, Contract has a unidirectional many-to-one association with Plan. Contract cascades save and update operations to the association."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:582
|
||||
#, no-c-format
|
||||
msgid "The following shows that changing a read-only entity's many-to-one association reference to null has no effect on the entity's database representation."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:588
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"// get a contract with an existing plan;\n"
|
||||
"// make the contract read-only and set its plan to null \n"
|
||||
"tx = session.beginTransaction();\n"
|
||||
"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
|
||||
"session.setReadOnly( contract, true );\n"
|
||||
"contract.setPlan( null );\n"
|
||||
"tx.commit();\n"
|
||||
"\n"
|
||||
"// get the same contract\n"
|
||||
"tx = session.beginTransaction();\n"
|
||||
"contract = ( Contract ) session.get( Contract.class, contractId );\n"
|
||||
"\n"
|
||||
"// contract.getPlan() still refers to the original plan;\n"
|
||||
"\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:590
|
||||
#, no-c-format
|
||||
msgid "The following shows that, even though an update to a read-only entity's many-to-one association has no affect on the entity's database representation, flush still cascades the save-update operation to the locally changed association."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: readonly.xml:599
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"// get a contract with an existing plan;\n"
|
||||
"// make the contract read-only and change to a new plan\n"
|
||||
"tx = session.beginTransaction();\n"
|
||||
"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
|
||||
"session.setReadOnly( contract, true );\n"
|
||||
"Plan newPlan = new Plan( \"new plan\"\n"
|
||||
"contract.setPlan( newPlan);\n"
|
||||
"tx.commit();\n"
|
||||
"\n"
|
||||
"// get the same contract\n"
|
||||
"tx = session.beginTransaction();\n"
|
||||
"contract = ( Contract ) session.get( Contract.class, contractId );\n"
|
||||
"newPlan = ( Contract ) session.get( Plan.class, newPlan.getId() ); \n"
|
||||
"\n"
|
||||
"// contract.getPlan() still refers to the original plan;\n"
|
||||
"// newPlan is non-null because it was persisted when \n"
|
||||
"// the previous transaction was committed; \n"
|
||||
"\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:604
|
||||
#, no-c-format
|
||||
msgid "Unidirectional one-to-many and many-to-many"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:606
|
||||
#, no-c-format
|
||||
msgid "Hibernate treats unidirectional one-to-many and many-to-many associations owned by a read-only entity the same as when owned by an entity that is not read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:613
|
||||
#, no-c-format
|
||||
msgid "Hibernate dirty-checks unidirectional one-to-many and many-to-many associations;"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:618
|
||||
#, no-c-format
|
||||
msgid "The collection can contain entities that are read-only, as well as entities that are not read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:624
|
||||
#, no-c-format
|
||||
msgid "Entities can be added and removed from the collection; changes are flushed to the database."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:629
|
||||
#, no-c-format
|
||||
msgid "If automatic versioning is used, Hibernate will update the version due to changes in the collection if they dirty the owning entity."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:640
|
||||
#, no-c-format
|
||||
msgid "Bidirectional associations"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:643
|
||||
#, no-c-format
|
||||
msgid "<title>Bidirectional one-to-one</title>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:645
|
||||
#, no-c-format
|
||||
msgid "If a read-only entity owns a bidirectional one-to-one association:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:652
|
||||
#, no-c-format
|
||||
msgid "Hibernate does not dirty-check the association."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:657
|
||||
#, no-c-format
|
||||
msgid "updates that change the association reference to null or to refer to a different entity will not be flushed to the database."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:664
|
||||
#, no-c-format
|
||||
msgid "If automatic versioning is used, Hibernate will not increment the version due to local changes to the association."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:673
|
||||
#, no-c-format
|
||||
msgid "If an entity is of an immutable class, and it owns a bidirectional one-to-one association, then its reference must be assigned when that entity is first created. Because the entity is automatically made read-only, these references cannot be updated."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:683
|
||||
#, no-c-format
|
||||
msgid "When the owner is not read-only, Hibernate treats an association with a read-only entity the same as when the association is with an entity that is not read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:693
|
||||
#, no-c-format
|
||||
msgid "<title>Bidirectional one-to-many/many-to-one</title>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:695
|
||||
#, no-c-format
|
||||
msgid "A read-only entity has no impact on a bidirectional one-to-many/many-to-one association if:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:702
|
||||
#, no-c-format
|
||||
msgid "the read-only entity is on the one-to-many side using an inverse collection;"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:708
|
||||
#, no-c-format
|
||||
msgid "the read-only entity is on the one-to-many side using a non-inverse collection;"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:714
|
||||
#, no-c-format
|
||||
msgid "the one-to-many side uses a non-inverse collection that contains the read-only entity"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:721
|
||||
#, no-c-format
|
||||
msgid "When the one-to-many side uses an inverse collection:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:727
|
||||
#, no-c-format
|
||||
msgid "a read-only entity can only be added to the collection when it is created;"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:733
|
||||
#, no-c-format
|
||||
msgid "a read-only entity can only be removed from the collection by an orphan delete or by explicitly deleting the entity."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: title
|
||||
#: readonly.xml:744
|
||||
#, no-c-format
|
||||
msgid "<title>Bidirectional many-to-many</title>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:745
|
||||
#, no-c-format
|
||||
msgid "Hibernate treats bidirectional many-to-many associations owned by a read-only entity the same as when owned by an entity that is not read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:752
|
||||
#, no-c-format
|
||||
msgid "Hibernate dirty-checks bidirectional many-to-many associations."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:757
|
||||
#, no-c-format
|
||||
msgid "The collection on either side of the association can contain entities that are read-only, as well as entities that are not read-only."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:763
|
||||
#, no-c-format
|
||||
msgid "Entities are added and removed from both sides of the collection; changes are flushed to the database."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: readonly.xml:769
|
||||
#, no-c-format
|
||||
msgid "If automatic versioning is used, Hibernate will update the version due to changes in both sides of the collection if they dirty the entity owning the respective collections."
|
||||
msgstr ""
|
||||
|
|
@ -297,7 +297,7 @@ msgstr ""
|
|||
"<emphasis>saber</emphasis> se é um afunilamento. E não suponha que o uso "
|
||||
"direto do JDBC é necessariamente mais rápido. Se você precisar usar "
|
||||
"diretamente o JDBC, vale a pena abrir uma <literal>Session</literal> do "
|
||||
"Hibernate, embrulhar a sua operaçäo JDBC como um objeto literal>org."
|
||||
"Hibernate, embrulhar a sua operaçäo JDBC como um objeto <literal>org."
|
||||
"hibernate.jdbc.Work</literal> e usar uma conexão JDBC. De modo que você possa ainda usar a mesma "
|
||||
"estratégia de transação e ocultar o provedor a conexão."
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: portability\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2010-03-12T00:03:47\n"
|
||||
"POT-Creation-Date: 2010-03-25 06:26+0000\n"
|
||||
"PO-Revision-Date: 2010-03-18 15:20+1000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
|
@ -118,16 +118,19 @@ msgstr ""
|
|||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:31
|
||||
#, no-c-format
|
||||
msgid "Database Portability Considerations"
|
||||
msgstr "Considerações da Portabilidade do Banco de Dados"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:34
|
||||
#, no-c-format
|
||||
msgid "Portability Basics"
|
||||
msgstr "Fundamentos da Portabilidade"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:36
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"One of the selling points of Hibernate (and really Object/Relational Mapping "
|
||||
|
@ -151,11 +154,13 @@ msgstr ""
|
|||
"ao metadados de mapeamento."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:47
|
||||
#, no-c-format
|
||||
msgid "Dialect"
|
||||
msgstr "Dialeto"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:49
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The first line of portability for Hibernate is the dialect, which is a "
|
||||
|
@ -177,11 +182,13 @@ msgstr ""
|
|||
"está seguindo os mesmos, não será difícil escrever o seu próprio."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:60
|
||||
#, no-c-format
|
||||
msgid "Dialect resolution"
|
||||
msgstr "Resolução do Dialeto"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:62
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Originally, Hibernate would always require that users specify which dialect "
|
||||
|
@ -198,6 +205,7 @@ msgstr ""
|
|||
"determinação do valor."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:69
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Starting with version 3.2, Hibernate introduced the notion of automatically "
|
||||
|
@ -215,42 +223,44 @@ msgstr ""
|
|||
"com antecedência e que em ocasião alguma era configurável ou substituível."
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
#: portability.xml:77
|
||||
#, 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 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 "
|
||||
"identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</"
|
||||
"exceptionname> as possibly being thrown. A JDBCConnectionException here is "
|
||||
"interpreted to imply a \"non transient\" (aka non-recoverable) connection "
|
||||
"problem and is used to indicate an immediate stop to resolution attempts. "
|
||||
"All other exceptions result in a warning and continuing on to the next "
|
||||
"resolver."
|
||||
"<programlisting role=\"JAVA\"><![CDATA[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 identifies <exceptionname>org.hibernate."
|
||||
"exception.JDBCConnectionException</exceptionname> as possibly being thrown. "
|
||||
"A JDBCConnectionException here is interpreted to imply a \"non transient"
|
||||
"\" (aka non-recoverable) connection problem and is used to indicate an "
|
||||
"immediate stop to resolution attempts. All other exceptions result in a "
|
||||
"warning and continuing on to the next resolver."
|
||||
msgstr ""
|
||||
"Inicializando com a versão 3.3, o Hibernate possui uma maneira muito mais "
|
||||
"potente para determinar automaticamente qual dialeto deve ser usado baseando-"
|
||||
"se numa série de delegações que determinam qual implementação deve ser usada "
|
||||
"baseando-se numa série de delegações que implementam o <interfacename>org."
|
||||
"hibernate.dialect.resolver.DialectResolver</interfacename> que define apenas "
|
||||
"um método único: <programlisting role=\"JAVA\">public Dialect resolveDialect(DatabaseMetaData "
|
||||
"metaData) throws JDBCConnectionException</programlisting>. Este contrato básico é que se o solucionador 'entender' o "
|
||||
"metadados do banco de dados dado, ele retornará o Dialeto correspondente. "
|
||||
"Caso contrário, ele retornará nulo e o processo continuará ao próximo "
|
||||
"solucionador. A assinatura também identifica o <exceptionname>org.hibernate."
|
||||
"exception.JDBCConnectionException</exceptionname> como possivelmente "
|
||||
"lançado. Neste caso, o JDBCConnectionException é interpretado para implicar "
|
||||
"um problema de conexão (também conhecida com não-recuperável) \"não "
|
||||
"transiente\" e é usado para indicar uma parada imediata de tentativas de "
|
||||
"resolução. Todas as demais exceções resultam num aviso e dão continuidade ao "
|
||||
"próximo solucionador. "
|
||||
"um método único: <programlisting role=\"JAVA\">public Dialect resolveDialect"
|
||||
"(DatabaseMetaData metaData) throws JDBCConnectionException</programlisting>. "
|
||||
"Este contrato básico é que se o solucionador 'entender' o metadados do banco "
|
||||
"de dados dado, ele retornará o Dialeto correspondente. Caso contrário, ele "
|
||||
"retornará nulo e o processo continuará ao próximo solucionador. A assinatura "
|
||||
"também identifica o <exceptionname>org.hibernate.exception."
|
||||
"JDBCConnectionException</exceptionname> como possivelmente lançado. Neste "
|
||||
"caso, o JDBCConnectionException é interpretado para implicar um problema de "
|
||||
"conexão (também conhecida com não-recuperável) \"não transiente\" e é usado "
|
||||
"para indicar uma parada imediata de tentativas de resolução. Todas as demais "
|
||||
"exceções resultam num aviso e dão continuidade ao próximo solucionador. "
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:90
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The cool part about these resolvers is that users can also register their "
|
||||
|
@ -277,12 +287,14 @@ msgstr ""
|
|||
"constant> no <classname>org.hibernate.cfg.Environment</classname>)."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:103
|
||||
#, no-c-format
|
||||
msgid "Identifier generation"
|
||||
msgstr "Geração do identificador"
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
#: portability.xml:105
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"When considering portability between databases, another important decision "
|
||||
"is selecting the identifier generation stratagy you want to use. Originally "
|
||||
|
@ -300,7 +312,10 @@ 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."
|
||||
"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."
|
||||
msgstr ""
|
||||
"Quando considerando a portabilidade entre os bancos de dados, outra "
|
||||
"importante decisão é selecionar a estratégia de geração do identificador que "
|
||||
|
@ -322,76 +337,44 @@ msgstr ""
|
|||
"semânticas de transação atual. "
|
||||
|
||||
#. Tag: para
|
||||
#, 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 ""
|
||||
"O Hibernate foi atualizado para que a inserção seja lenta em casos em que "
|
||||
"isto é possível, sendo desta forma melhor compreendido. "
|
||||
|
||||
#. Tag: note
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"The underlying issue is that the actual semanctics of the application itself "
|
||||
"changes in these cases."
|
||||
msgstr "O problema adjacente é que as semânticas atuais do próprio aplicativo altere nestes casos."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:130
|
||||
#, 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."
|
||||
"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 ""
|
||||
"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."
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
|
||||
msgstr "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
msgstr "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
|
||||
#. Tag: para
|
||||
#, 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 ""
|
||||
"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."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:159
|
||||
#, no-c-format
|
||||
msgid "Database functions"
|
||||
msgstr "Funções do banco de dados"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:162
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"This is an area in Hibernate in need of improvement. In terms of portability "
|
||||
"concerns, this function handling currently works pretty well from HQL; "
|
||||
"however, it is quite lacking in all other aspects."
|
||||
msgstr "Esta é uma área do Hibernate com necessidade de melhoramentos. Este manuseio de função funciona atualmente muito bem com o HQL, quando falamos das preocupações de portabilidade. No entanto, é bastante precária em outros aspectos."
|
||||
msgstr ""
|
||||
"Esta é uma área do Hibernate com necessidade de melhoramentos. Este manuseio "
|
||||
"de função funciona atualmente muito bem com o HQL, quando falamos das "
|
||||
"preocupações de portabilidade. No entanto, é bastante precária em outros "
|
||||
"aspectos."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:169
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"SQL functions can be referenced in many ways by users. However, not all "
|
||||
|
@ -399,9 +382,16 @@ msgid ""
|
|||
"mapping a <emphasis>logical</emphasis> function name to a delegate which "
|
||||
"knows how to render that particular function, perhaps even using a totally "
|
||||
"different physical function call."
|
||||
msgstr "As funções SQL podem ser referenciadas em diversas maneiras pelos usuários. No entanto, nem todos os bancos de dados suportam o mesmo conjunto de função. O Hibernate fornece um significado de mapeamento do nome da função <emphasis>lógica</emphasis> para uma delegação que sabe como manusear aquela função em particular, mesmo quando usando uma chamada de função física totalmente diferente."
|
||||
msgstr ""
|
||||
"As funções SQL podem ser referenciadas em diversas maneiras pelos usuários. "
|
||||
"No entanto, nem todos os bancos de dados suportam o mesmo conjunto de "
|
||||
"função. O Hibernate fornece um significado de mapeamento do nome da função "
|
||||
"<emphasis>lógica</emphasis> para uma delegação que sabe como manusear aquela "
|
||||
"função em particular, mesmo quando usando uma chamada de função física "
|
||||
"totalmente diferente."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:175
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"Technically this function registration is handled through the <classname>org."
|
||||
|
@ -417,6 +407,7 @@ msgstr ""
|
|||
"completed as of yet."
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:182
|
||||
#, no-c-format
|
||||
msgid ""
|
||||
"It is sort of implemented such that users can programatically register "
|
||||
|
@ -428,12 +419,62 @@ msgstr ""
|
|||
"and those functions will be recognized for HQL."
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:192
|
||||
#, no-c-format
|
||||
msgid "Type mappings"
|
||||
msgstr "Tipos de mapeamentos"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:194
|
||||
#, no-c-format
|
||||
msgid "This section scheduled for completion at a later date..."
|
||||
msgstr "A seção está esquematizada para finalização numa data posterior..."
|
||||
|
||||
#~ 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 ""
|
||||
#~ "O Hibernate foi atualizado para que a inserção seja lenta em casos em que "
|
||||
#~ "isto é possível, sendo desta forma melhor compreendido. "
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The underlying issue is that the actual semanctics of the application "
|
||||
#~ "itself changes in these cases."
|
||||
#~ msgstr ""
|
||||
#~ "O problema adjacente é que as semânticas atuais do próprio aplicativo "
|
||||
#~ "altere nestes casos."
|
||||
|
||||
#~ 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."
|
||||
#~ msgstr ""
|
||||
#~ "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."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
|
||||
#~ msgstr ""
|
||||
#~ "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
#~ msgstr ""
|
||||
#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
|
||||
#~ msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
#~ msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "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."
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -5,7 +5,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: Collection_Mapping\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2010-03-12T00:03:47\n"
|
||||
"POT-Creation-Date: 2010-03-25 06:26+0000\n"
|
||||
"PO-Revision-Date: 2010-03-16 10:10+1000\n"
|
||||
"Last-Translator: Xi HUANG <xhuang@redhat.com>\n"
|
||||
"Language-Team: <en@li.org>\n"
|
||||
|
@ -15,137 +15,320 @@ msgstr ""
|
|||
"X-Generator: KBabel 1.11.4\n"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:31
|
||||
#, no-c-format
|
||||
msgid "Database Portability Considerations"
|
||||
msgstr "数据库移植性考量"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:34
|
||||
#, no-c-format
|
||||
msgid "Portability Basics"
|
||||
msgstr "移植性基础"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:36
|
||||
#, no-c-format
|
||||
msgid "One of the selling points of Hibernate (and really Object/Relational Mapping as a whole) is the notion of database portability. This could mean an internal IT user migrating from one database vendor to another, or it could mean a framework or deployable application consuming Hibernate to simultaneously target multiple database products by their users. Regardless of 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."
|
||||
msgstr "Hibernate(实际上是整个 Object/Relational Mapping)的一个卖点是数据库的移植性。这意味着内部的 IT 用户可以改变数据库供应商,或者可部署的应用程序/框架使用 Hibernate 来同时使用多个数据库产品。不考虑具体的应用情景,这里的基本概念是 Hibernate 可帮助你运行多种数据库而无需修改你的代码,理想情况下甚至不用修改映射元数据。"
|
||||
msgid ""
|
||||
"One of the selling points of Hibernate (and really Object/Relational Mapping "
|
||||
"as a whole) is the notion of database portability. This could mean an "
|
||||
"internal IT user migrating from one database vendor to another, or it could "
|
||||
"mean a framework or deployable application consuming Hibernate to "
|
||||
"simultaneously target multiple database products by their users. Regardless "
|
||||
"of 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."
|
||||
msgstr ""
|
||||
"Hibernate(实际上是整个 Object/Relational Mapping)的一个卖点是数据库的移植"
|
||||
"性。这意味着内部的 IT 用户可以改变数据库供应商,或者可部署的应用程序/框架使"
|
||||
"用 Hibernate 来同时使用多个数据库产品。不考虑具体的应用情景,这里的基本概念"
|
||||
"是 Hibernate 可帮助你运行多种数据库而无需修改你的代码,理想情况下甚至不用修改"
|
||||
"映射元数据。"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:47
|
||||
#, no-c-format
|
||||
msgid "Dialect"
|
||||
msgstr "Dialect"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:49
|
||||
#, no-c-format
|
||||
msgid "The first line of portability for Hibernate is the dialect, which is a specialization of the <classname>org.hibernate.dialect.Dialect</classname> contract. A dialect encapsulates all the differences in how Hibernate must communicate with a particular database to accomplish some task like getting a sequence value or structuring a SELECT query. Hibernate bundles a wide range 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."
|
||||
msgstr "Hibernate 的移植性的首要问题是方言(dialect),也就是 <classname>org.hibernate.dialect.Dialect</classname> 合约的具体实例。方言封装了 Hibernate 和特定数据库通讯以完成某些任务如获取序列值或构建 SELECT 查询等的所有差异。Hibernate 捆绑了用于许多最常用的数据库的方言。如果你发现自己使用的数据库不在其中,编写自定义的方言也不是很困难的事情。"
|
||||
msgid ""
|
||||
"The first line of portability for Hibernate is the dialect, which is a "
|
||||
"specialization of the <classname>org.hibernate.dialect.Dialect</classname> "
|
||||
"contract. A dialect encapsulates all the differences in how Hibernate must "
|
||||
"communicate with a particular database to accomplish some task like getting "
|
||||
"a sequence value or structuring a SELECT query. Hibernate bundles a wide "
|
||||
"range 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."
|
||||
msgstr ""
|
||||
"Hibernate 的移植性的首要问题是方言(dialect),也就是 <classname>org."
|
||||
"hibernate.dialect.Dialect</classname> 合约的具体实例。方言封装了 Hibernate 和"
|
||||
"特定数据库通讯以完成某些任务如获取序列值或构建 SELECT 查询等的所有差异。"
|
||||
"Hibernate 捆绑了用于许多最常用的数据库的方言。如果你发现自己使用的数据库不在"
|
||||
"其中,编写自定义的方言也不是很困难的事情。"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:60
|
||||
#, no-c-format
|
||||
msgid "Dialect resolution"
|
||||
msgstr "方言的使用"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:62
|
||||
#, no-c-format
|
||||
msgid "Originally, Hibernate would always require that users specify which dialect to use. In the case of users looking to simultaneously target multiple databases with their build that was problematic. Generally this required their users to configure the Hibernate dialect or defining their own method of setting that value."
|
||||
msgstr "最开始,Hibernate 总是要求用户指定所使用的方言(dialect)。在用户希望同时使用多个数据库时就会出现问题。通常这要求用户配置 Hibernate 方言或者定义自己设置这个值的方法。"
|
||||
msgid ""
|
||||
"Originally, Hibernate would always require that users specify which dialect "
|
||||
"to use. In the case of users looking to simultaneously target multiple "
|
||||
"databases with their build that was problematic. Generally this required "
|
||||
"their users to configure the Hibernate dialect or defining their own method "
|
||||
"of setting that value."
|
||||
msgstr ""
|
||||
"最开始,Hibernate 总是要求用户指定所使用的方言(dialect)。在用户希望同时使用"
|
||||
"多个数据库时就会出现问题。通常这要求用户配置 Hibernate 方言或者定义自己设置这"
|
||||
"个值的方法。"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:69
|
||||
#, no-c-format
|
||||
msgid "Starting with version 3.2, Hibernate introduced the notion of automatically detecting the dialect to use based on the <interfacename>java.sql.DatabaseMetaData</interfacename> obtained from a <interfacename>java.sql.Connection</interfacename> to that database. This was much better, expect that this resolution was limited to databases Hibernate know about ahead of time and was in no way configurable or overrideable."
|
||||
msgstr "从版本 3.2 开始,Hibernate 引入了方言的自动检测,它基于从该数据库的 <interfacename>java.sql.Connection</interfacename> 上获得的 <interfacename>java.sql.DatabaseMetaData</interfacename>。这是一个更好的方案,但它局限于 Hibernate 已知的数据库且无法进行配置和覆盖。"
|
||||
msgid ""
|
||||
"Starting with version 3.2, Hibernate introduced the notion of automatically "
|
||||
"detecting the dialect to use based on the <interfacename>java.sql."
|
||||
"DatabaseMetaData</interfacename> obtained from a <interfacename>java.sql."
|
||||
"Connection</interfacename> to that database. This was much better, expect "
|
||||
"that this resolution was limited to databases Hibernate know about ahead of "
|
||||
"time and was in no way configurable or overrideable."
|
||||
msgstr ""
|
||||
"从版本 3.2 开始,Hibernate 引入了方言的自动检测,它基于从该数据库的 "
|
||||
"<interfacename>java.sql.Connection</interfacename> 上获得的 "
|
||||
"<interfacename>java.sql.DatabaseMetaData</interfacename>。这是一个更好的方"
|
||||
"案,但它局限于 Hibernate 已知的数据库且无法进行配置和覆盖。"
|
||||
|
||||
#. Tag: para
|
||||
#, 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 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 identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</exceptionname> as possibly being thrown. A JDBCConnectionException here is interpreted to imply a \"non transient\" (aka non-recoverable) connection problem and is used to indicate an immediate stop to resolution attempts. All other exceptions result in a warning and continuing on to the next resolver."
|
||||
msgstr "从版本 3.3 开始,Hibernate 有了更为强大的自动决定应该使用哪个方言的方法,这根据一系列实现 <interfacename>org.hibernate.dialect.resolver.DialectResolver</interfacename> 接口的代理,它们只定义一个方法:<programlisting role=\"JAVA\">public Dialect resolveDialect(DatabaseMetaData metaData) throws JDBCConnectionException</programlisting>。这里的基本合约是如果解析者(resolver)“理解”给点数据库的元数据并返回对应的方言;否则返回 null 并使用下一个解析者。这个签名也指定可能抛出的异常 <exceptionname>org.hibernate.exception.JDBCConnectionException</exceptionname>。这里的 JDBCConnectionException 被认为是“非瞬时的”(也就是不可恢复的)连接问题且指示立即终止解析。所有其他的异常都导致警告发出并使用下一个解析者。\""
|
||||
#: portability.xml:77
|
||||
#, 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 role=\"JAVA\"><![CDATA[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 identifies <exceptionname>org.hibernate."
|
||||
"exception.JDBCConnectionException</exceptionname> as possibly being thrown. "
|
||||
"A JDBCConnectionException here is interpreted to imply a \"non transient"
|
||||
"\" (aka non-recoverable) connection problem and is used to indicate an "
|
||||
"immediate stop to resolution attempts. All other exceptions result in a "
|
||||
"warning and continuing on to the next resolver."
|
||||
msgstr ""
|
||||
"从版本 3.3 开始,Hibernate 有了更为强大的自动决定应该使用哪个方言的方法,这根"
|
||||
"据一系列实现 <interfacename>org.hibernate.dialect.resolver.DialectResolver</"
|
||||
"interfacename> 接口的代理,它们只定义一个方法:<programlisting role=\"JAVA"
|
||||
"\">public Dialect resolveDialect(DatabaseMetaData metaData) throws "
|
||||
"JDBCConnectionException</programlisting>。这里的基本合约是如果解析者"
|
||||
"(resolver)“理解”给点数据库的元数据并返回对应的方言;否则返回 null 并使用下"
|
||||
"一个解析者。这个签名也指定可能抛出的异常 <exceptionname>org.hibernate."
|
||||
"exception.JDBCConnectionException</exceptionname>。这里的 "
|
||||
"JDBCConnectionException 被认为是“非瞬时的”(也就是不可恢复的)连接问题且指示"
|
||||
"立即终止解析。所有其他的异常都导致警告发出并使用下一个解析者。\""
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:90
|
||||
#, no-c-format
|
||||
msgid "The cool part about these resolvers is that users can also register their own custom resolvers which will be processed ahead of the built-in Hibernate ones. This might be useful in a number of different situations: it allows easy integration for auto-detection of dialects beyond those shipped with HIbernate itself; it allows you to specify to use a custom dialect when a particular database is recognized; etc. To register one or more resolvers, simply specify them (seperated by commas, tabs or spaces) using the 'hibernate.dialect_resolvers' configuration setting (see the <constant>DIALECT_RESOLVERS</constant> constant on <classname>org.hibernate.cfg.Environment</classname>)."
|
||||
msgstr "这些解析者最棒的功能是用户也可以注册自定义的解析者,它们将在内置的解析者之前被调用。在许多情况下这可能很有用:它可以轻易地集成内置方言之外的方言的自动检测;它让你可以使用自定义的方言等。要注册一个或多个解析者,只要用 'hibernate.dialect_resolvers' 配置设置指定它们(由逗号、制表符或空格隔开)就可以了(请参考 <classname>org.hibernate.cfg.Environment</classname> 上的 <constant>DIALECT_RESOLVERS</constant>)。"
|
||||
msgid ""
|
||||
"The cool part about these resolvers is that users can also register their "
|
||||
"own custom resolvers which will be processed ahead of the built-in Hibernate "
|
||||
"ones. This might be useful in a number of different situations: it allows "
|
||||
"easy integration for auto-detection of dialects beyond those shipped with "
|
||||
"HIbernate itself; it allows you to specify to use a custom dialect when a "
|
||||
"particular database is recognized; etc. To register one or more resolvers, "
|
||||
"simply specify them (seperated by commas, tabs or spaces) using the "
|
||||
"'hibernate.dialect_resolvers' configuration setting (see the "
|
||||
"<constant>DIALECT_RESOLVERS</constant> constant on <classname>org.hibernate."
|
||||
"cfg.Environment</classname>)."
|
||||
msgstr ""
|
||||
"这些解析者最棒的功能是用户也可以注册自定义的解析者,它们将在内置的解析者之前"
|
||||
"被调用。在许多情况下这可能很有用:它可以轻易地集成内置方言之外的方言的自动检"
|
||||
"测;它让你可以使用自定义的方言等。要注册一个或多个解析者,只要用 'hibernate."
|
||||
"dialect_resolvers' 配置设置指定它们(由逗号、制表符或空格隔开)就可以了(请参"
|
||||
"考 <classname>org.hibernate.cfg.Environment</classname> 上的 "
|
||||
"<constant>DIALECT_RESOLVERS</constant>)。"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:103
|
||||
#, no-c-format
|
||||
msgid "Identifier generation"
|
||||
msgstr "标识符的生成"
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid "When considering portability between databases, another important decision is selecting the identifier generation stratagy you want to use. Originally Hibernate provided the <emphasis>native</emphasis> generator for this purpose, which was intended to select between a <emphasis>sequence</emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> strategy depending on the capability of the underlying database. However, an insidious implication of this approach comes about when targtetting some databases which support <emphasis>identity</emphasis> generation and some which do not. <emphasis>identity</emphasis> generation relies on the SQL definition of an IDENTITY (or auto-increment) column to manage the identifier value; it is what is known as a post-insert generation strategy becauase the insert must actually happen before we can know the identifier value. Because Hibernate relies on this identifier value to uniquely 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."
|
||||
msgstr "当考虑数据库的移植性时,另外一个重要的考量是选择标识符生成策略。Hibernate 原先提供的 <emphasis>native</emphasis> 生成器的目的是根据底层数据库的能力在 <emphasis>sequence</emphasis>、<emphasis>identity</emphasis> 或 <emphasis>table</emphasis> 策略间进行选择。然而,这个方法一个潜在的问题是有些数据库支持<emphasis>标识符(identity)</emphasis>生成而有些则不支持。<emphasis>标识符(identity)</emphasis> 生成依赖于管理标识符值的 IDENTITY(或 auto-increment)字段的 SQL 定义。它也成为 post-insert 生成策略,因为 insert 必须在知道标识符值后才能实际发生。因为 Hibernate 依赖于这个标识符值来唯一地引用持久性上下文里的实体,当用户请求和会话相关联的实体时(如通过 save()),它必须立即执行 insert 语句而不管当前的事务性语义。"
|
||||
#: portability.xml:105
|
||||
#, fuzzy, no-c-format
|
||||
msgid ""
|
||||
"When considering portability between databases, another important decision "
|
||||
"is selecting the identifier generation stratagy you want to use. Originally "
|
||||
"Hibernate provided the <emphasis>native</emphasis> generator for this "
|
||||
"purpose, which was intended to select between a <emphasis>sequence</"
|
||||
"emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> "
|
||||
"strategy depending on the capability of the underlying database. However, an "
|
||||
"insidious implication of this approach comes about when targtetting some "
|
||||
"databases which support <emphasis>identity</emphasis> generation and some "
|
||||
"which do not. <emphasis>identity</emphasis> generation relies on the SQL "
|
||||
"definition of an IDENTITY (or auto-increment) column to manage the "
|
||||
"identifier value; it is what is known as a post-insert generation strategy "
|
||||
"becauase the insert must actually happen before we can know the identifier "
|
||||
"value. Because Hibernate relies on this identifier value to uniquely "
|
||||
"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."
|
||||
msgstr ""
|
||||
"当考虑数据库的移植性时,另外一个重要的考量是选择标识符生成策略。Hibernate 原"
|
||||
"先提供的 <emphasis>native</emphasis> 生成器的目的是根据底层数据库的能力在 "
|
||||
"<emphasis>sequence</emphasis>、<emphasis>identity</emphasis> 或 "
|
||||
"<emphasis>table</emphasis> 策略间进行选择。然而,这个方法一个潜在的问题是有些"
|
||||
"数据库支持<emphasis>标识符(identity)</emphasis>生成而有些则不支持。"
|
||||
"<emphasis>标识符(identity)</emphasis> 生成依赖于管理标识符值的 IDENTITY"
|
||||
"(或 auto-increment)字段的 SQL 定义。它也成为 post-insert 生成策略,因为 "
|
||||
"insert 必须在知道标识符值后才能实际发生。因为 Hibernate 依赖于这个标识符值来"
|
||||
"唯一地引用持久性上下文里的实体,当用户请求和会话相关联的实体时(如通过 save"
|
||||
"()),它必须立即执行 insert 语句而不管当前的事务性语义。"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:130
|
||||
#, 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 已经进行了轻微改进,所以在可行时这种插入会被延迟。"
|
||||
|
||||
#. 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
|
||||
#, 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."
|
||||
msgstr "从 3.2.3 版本开始,Hibernate 带有一套 <ulink url=\"http://in.relation.to/2082.lace\">enhanced</ulink> 标识符生成器,它以很不同的方式实现移植性。"
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
|
||||
msgstr "特别是两个捆绑的 <emphasis>enhanced</emphasis> 生成器:"
|
||||
|
||||
#. Tag: para
|
||||
#, no-c-format
|
||||
msgid "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
msgstr "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
|
||||
#. Tag: para
|
||||
#, 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 "这些生成器背后的概念是把标识符值生成的实际情景移植到不同的数据库里。例如,<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> 通过使用表来模拟不支持序列(sequences)的数据库上的序列行为。"
|
||||
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:159
|
||||
#, no-c-format
|
||||
msgid "Database functions"
|
||||
msgstr "数据库函数"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:162
|
||||
#, no-c-format
|
||||
msgid "This is an area in Hibernate in need of improvement. In terms of portability concerns, this function handling currently works pretty well from HQL; however, it is quite lacking in all other aspects."
|
||||
msgstr "这是 Hibernate 需要提高的一个领域。从可移植性来说,这个功能可以很好地处理 HQL 的内容,但在其他方面就有所欠缺。"
|
||||
msgid ""
|
||||
"This is an area in Hibernate in need of improvement. In terms of portability "
|
||||
"concerns, this function handling currently works pretty well from HQL; "
|
||||
"however, it is quite lacking in all other aspects."
|
||||
msgstr ""
|
||||
"这是 Hibernate 需要提高的一个领域。从可移植性来说,这个功能可以很好地处理 "
|
||||
"HQL 的内容,但在其他方面就有所欠缺。"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:169
|
||||
#, no-c-format
|
||||
msgid "SQL functions can be referenced in many ways by users. However, not all databases support the same set of functions. Hibernate, provides a means of mapping a <emphasis>logical</emphasis> function name to a delegate which knows how to render that particular function, perhaps even using a totally different physical function call."
|
||||
msgstr "用户可以以多种方式引用 SQL 函数。然而,不是所有的数据库都支持相同的函数集。Hibernate 提供了一种映射<emphasis>逻辑</emphasis>函数名到代理的方法,这个代理知道如何解析特定的函数,甚至可能使用完全不同的物理函数调用。 "
|
||||
msgid ""
|
||||
"SQL functions can be referenced in many ways by users. However, not all "
|
||||
"databases support the same set of functions. Hibernate, provides a means of "
|
||||
"mapping a <emphasis>logical</emphasis> function name to a delegate which "
|
||||
"knows how to render that particular function, perhaps even using a totally "
|
||||
"different physical function call."
|
||||
msgstr ""
|
||||
"用户可以以多种方式引用 SQL 函数。然而,不是所有的数据库都支持相同的函数集。"
|
||||
"Hibernate 提供了一种映射<emphasis>逻辑</emphasis>函数名到代理的方法,这个代理"
|
||||
"知道如何解析特定的函数,甚至可能使用完全不同的物理函数调用。 "
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:175
|
||||
#, no-c-format
|
||||
msgid "Technically this function registration is handled through the <classname>org.hibernate.dialect.function.SQLFunctionRegistry</classname> class which is intended to allow users to provide custom function definitions without having to provide a custom dialect. This specific behavior is not fully completed as of yet."
|
||||
msgstr "从技术上来讲,这个函数注册是通过 <classname>org.hibernate.dialect.function.SQLFunctionRegistry</classname> 类进行处理的,它的目的是允许用户提供自定义的函数定义而无需提供自定义的方言。这种特殊的行为目前还未全部开发完毕。"
|
||||
msgid ""
|
||||
"Technically this function registration is handled through the <classname>org."
|
||||
"hibernate.dialect.function.SQLFunctionRegistry</classname> class which is "
|
||||
"intended to allow users to provide custom function definitions without "
|
||||
"having to provide a custom dialect. This specific behavior is not fully "
|
||||
"completed as of yet."
|
||||
msgstr ""
|
||||
"从技术上来讲,这个函数注册是通过 <classname>org.hibernate.dialect.function."
|
||||
"SQLFunctionRegistry</classname> 类进行处理的,它的目的是允许用户提供自定义的"
|
||||
"函数定义而无需提供自定义的方言。这种特殊的行为目前还未全部开发完毕。"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:182
|
||||
#, 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 "其中一些功能已经实现,如用户可以在程序里用 <classname>org.hibernate.cfg.Configuration</classname> 注册函数且这些函数可被 HQL 识别。"
|
||||
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 ""
|
||||
"其中一些功能已经实现,如用户可以在程序里用 <classname>org.hibernate.cfg."
|
||||
"Configuration</classname> 注册函数且这些函数可被 HQL 识别。"
|
||||
|
||||
#. Tag: title
|
||||
#: portability.xml:192
|
||||
#, no-c-format
|
||||
msgid "Type mappings"
|
||||
msgstr "类型映射"
|
||||
|
||||
#. Tag: para
|
||||
#: portability.xml:194
|
||||
#, no-c-format
|
||||
msgid "This section scheduled for completion at a later date..."
|
||||
msgstr "本节内容仍未完成..."
|
||||
|
||||
#~ 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 已经进行了轻微改进,所以在可行时这种插入会被延迟。"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The underlying issue is that the actual semanctics of the application "
|
||||
#~ "itself changes in these cases."
|
||||
#~ msgstr "底层的问题是这些例子里应用程序自身的实际模式的改变。"
|
||||
|
||||
#~ 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."
|
||||
#~ msgstr ""
|
||||
#~ "从 3.2.3 版本开始,Hibernate 带有一套 <ulink url=\"http://in.relation."
|
||||
#~ "to/2082.lace\">enhanced</ulink> 标识符生成器,它以很不同的方式实现移植性。"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
|
||||
#~ msgstr "特别是两个捆绑的 <emphasis>enhanced</emphasis> 生成器:"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
#~ msgstr ""
|
||||
#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
|
||||
|
||||
#~ msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
#~ msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "这些生成器背后的概念是把标识符值生成的实际情景移植到不同的数据库里。例如,"
|
||||
#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> 通"
|
||||
#~ "过使用表来模拟不支持序列(sequences)的数据库上的序列行为。"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This is a new area in Hibernate and as such it is not as mature as the "
|
||||
#~ "overall Hibernate experience."
|
||||
#~ msgstr "这是 Hibernate 的一个新的领域,暂时还不如 Hibernate 总体那么成熟。"
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue