update with split2po
git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@14176 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
parent
635b791437
commit
ae75ae8abf
|
@ -1,47 +1,32 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2007-10-25 07:47+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:21
|
||||
#, no-c-format
|
||||
#: index.docbook:21
|
||||
msgid "Architecture"
|
||||
msgstr "Arquitectura"
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:24
|
||||
#, no-c-format
|
||||
#: index.docbook:24
|
||||
msgid "Overview"
|
||||
msgstr "Visión General"
|
||||
msgstr "Visión General"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:26
|
||||
#, no-c-format
|
||||
#: index.docbook:26
|
||||
msgid "A (very) high-level view of the Hibernate architecture:"
|
||||
msgstr "Una visión a (muy) alto nivel de la arquitectura de Hibernate:"
|
||||
msgstr "Una visión a (muy) alto nivel de la arquitectura de Hibernate:"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:39
|
||||
#, no-c-format
|
||||
#: index.docbook:39
|
||||
msgid ""
|
||||
"This diagram shows Hibernate using the database and configuration data to "
|
||||
"provide persistence services (and persistent objects) to the application."
|
||||
msgstr ""
|
||||
"Este diagrama muestra a Hibernate usando la base de datos y los datos de "
|
||||
"configuración para proveer servicios de persistencia (y objetos "
|
||||
"persistentes) a la aplicación."
|
||||
"configuración para proveer servicios de persistencia (y objetos "
|
||||
"persistentes) a la aplicación."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:44
|
||||
#, no-c-format
|
||||
#: index.docbook:44
|
||||
msgid ""
|
||||
"We would like to show a more detailed view of the runtime architecture. "
|
||||
"Unfortunately, Hibernate is flexible and supports several approaches. We "
|
||||
|
@ -49,40 +34,30 @@ msgid ""
|
|||
"provide its own JDBC connections and manage its own transactions. This "
|
||||
"approach uses a minimal subset of Hibernate's APIs:"
|
||||
msgstr ""
|
||||
"Nos gustaría mostrar una vista más detallada de la arquitectura de tiempo de "
|
||||
"ejecución. Desafortunadamente, Hibernate es flexible y soporta diferentes "
|
||||
"enfoques. Mostraremos los dos extremos. En la arquitectura \"sencilla\", es "
|
||||
"la aplicación la que provee su propias conexiones JDBC y gestiona sus "
|
||||
"propias transacciones. Este enfoque usa un mínimo subconjunto de la API de "
|
||||
"Hibernate:"
|
||||
"Nos gustaría mostrar una vista más detallada de la "
|
||||
"arquitectura de tiempo de ejecución. Desafortunadamente, Hibernate es "
|
||||
"flexible y soporta diferentes enfoques. Mostraremos los dos extremos. En la "
|
||||
"arquitectura \"sencilla\", es la aplicación la que provee su propias "
|
||||
"conexiones JDBC y gestiona sus propias transacciones. Este enfoque usa un "
|
||||
"mínimo subconjunto de la API de Hibernate:"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:61
|
||||
#, no-c-format
|
||||
#: index.docbook:61
|
||||
msgid ""
|
||||
"The \"full cream\" architecture abstracts the application away from the "
|
||||
"underlying JDBC/JTA APIs and lets Hibernate take care of the details."
|
||||
msgstr ""
|
||||
"La arquitectura \"full cream\" abstrae a la aplicación de las APIs de JDBC/"
|
||||
"JTA y deja que Hibernate se encargue de los detalles."
|
||||
"La arquitectura \"full cream\" abstrae a la aplicación de las APIs de "
|
||||
"JDBC/JTA y deja que Hibernate se encargue de los detalles."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:75
|
||||
#, fuzzy, no-c-format
|
||||
#: index.docbook:75
|
||||
msgid "Heres some definitions of the objects in the diagrams:"
|
||||
msgstr ""
|
||||
"He aquí algunas definiciones de los objetos en los diagramas: <placeholder-1/"
|
||||
">"
|
||||
msgstr "He aquí algunas definiciones de los objetos en los diagramas:"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:80
|
||||
#, no-c-format
|
||||
#: index.docbook:80
|
||||
msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
|
||||
msgstr "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:82
|
||||
#, no-c-format
|
||||
#: index.docbook:82
|
||||
msgid ""
|
||||
"A threadsafe (immutable) cache of compiled mappings for a single database. A "
|
||||
"factory for <literal>Session</literal> and a client of "
|
||||
|
@ -90,21 +65,17 @@ msgid ""
|
|||
"cache of data that is reusable between transactions, at a process- or "
|
||||
"cluster-level."
|
||||
msgstr ""
|
||||
"Caché threadsafe (inmutable) de mapeos compilados para una sola base de "
|
||||
"datos. Es una fábrica de <literal>Session</literal> y un cliente de "
|
||||
"<literal>ConnectionProvider</literal>. Opcionalmente, puede mantener una "
|
||||
"caché (de segundo nivel) de datos reusables entre transacciones, a un nivel "
|
||||
"de proceso o de cluster."
|
||||
"Caché threadsafe (inmutable) de mapeos compilados para una sola base "
|
||||
"de datos. Es una fábrica de <literal>Session</literal> y un cliente "
|
||||
"de <literal>ConnectionProvider</literal>. Opcionalmente, puede mantener una "
|
||||
"caché (de segundo nivel) de datos reusables entre transacciones, a un "
|
||||
"nivel de proceso o de cluster."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:92
|
||||
#, no-c-format
|
||||
#: index.docbook:92
|
||||
msgid "Session (<literal>org.hibernate.Session</literal>)"
|
||||
msgstr "Session (<literal>org.hibernate.Session</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:94
|
||||
#, no-c-format
|
||||
#: index.docbook:94
|
||||
msgid ""
|
||||
"A single-threaded, short-lived object representing a conversation between "
|
||||
"the application and the persistent store. Wraps a JDBC connection. Factory "
|
||||
|
@ -112,21 +83,18 @@ msgid ""
|
|||
"persistent objects, used when navigating the object graph or looking up "
|
||||
"objects by identifier."
|
||||
msgstr ""
|
||||
"Objeto mono-hebra, de corta vida que representa una conversación entre la "
|
||||
"aplicación y el almacenamiento persistente. Envuelve una conexión JDBC. Es "
|
||||
"una fábrica de <literal>Transaction</literal>. Mantiene una caché requerida "
|
||||
"(de primer nivel) de objetos persistentes, usada mientras se navega el grafo "
|
||||
"de objetos o se recuperen objetos por identificador."
|
||||
"Objeto mono-hebra, de corta vida que representa una conversación "
|
||||
"entre la aplicación y el almacenamiento persistente. Envuelve una "
|
||||
"conexión JDBC. Es una fábrica de <literal>Transaction</"
|
||||
"literal>. Mantiene una caché requerida (de primer nivel) de objetos "
|
||||
"persistentes, usada mientras se navega el grafo de objetos o se recuperen "
|
||||
"objetos por identificador."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:104
|
||||
#, no-c-format
|
||||
#: index.docbook:104
|
||||
msgid "Persistent objects and collections"
|
||||
msgstr "Objetos y colecciones persistentes"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:106
|
||||
#, no-c-format
|
||||
#: index.docbook:106
|
||||
msgid ""
|
||||
"Short-lived, single threaded objects containing persistent state and "
|
||||
"business function. These might be ordinary JavaBeans/POJOs, the only special "
|
||||
|
@ -136,23 +104,20 @@ msgid ""
|
|||
"directly as data transfer objects to and from presentation)."
|
||||
msgstr ""
|
||||
"Objetos de corta vida, mono-hebra conteniendo estado persistente y "
|
||||
"funciónalidad de negocio. Estos pueden ser JavaBeans/POJOs (Plain Old Java "
|
||||
"Objects, o sea, cualquier objeto Java), la única cosa especial en ellos es "
|
||||
"que estan asociados actualmente con una (y sólo una) <literal>Session</"
|
||||
"literal>. Tan pronto como la <literal>Session</literal> sea cerrada, serán "
|
||||
"separados y estarán libres para ser usados en cualquier capa de aplicación. "
|
||||
"(por ejemplo, directamente como objetos de transferencia de datos hacia y "
|
||||
"desde la capa de presentación)."
|
||||
"funciónalidad de negocio. Estos pueden ser JavaBeans/POJOs (Plain Old "
|
||||
"Java Objects, o sea, cualquier objeto Java), la única cosa especial "
|
||||
"en ellos es que estan asociados actualmente con una (y sólo una) "
|
||||
"<literal>Session</literal>. Tan pronto como la <literal>Session</literal> "
|
||||
"sea cerrada, serán separados y estarán libres para ser usados "
|
||||
"en cualquier capa de aplicación. (por ejemplo, directamente como "
|
||||
"objetos de transferencia de datos hacia y desde la capa de presentació"
|
||||
"n)."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:117
|
||||
#, no-c-format
|
||||
#: index.docbook:117
|
||||
msgid "Transient and detached objects and collections"
|
||||
msgstr "Objetos y colecciones transitorios y separados"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:119
|
||||
#, no-c-format
|
||||
#: index.docbook:119
|
||||
msgid ""
|
||||
"Instances of persistent classes that are not currently associated with a "
|
||||
"<literal>Session</literal>. They may have been instantiated by the "
|
||||
|
@ -161,18 +126,14 @@ msgid ""
|
|||
msgstr ""
|
||||
"Instancias de clases persistentes que no estan acutualmente asociadas con "
|
||||
"una <literal>Session</literal>. Pueden haber sido instanciadas por la "
|
||||
"aplicación y (aún) no haber sido hechas persistentes, o pueden haber sido "
|
||||
"instanciadas por una <literal>Session</literal> cerrada."
|
||||
"aplicación y (aún) no haber sido hechas persistentes, o pueden "
|
||||
"haber sido instanciadas por una <literal>Session</literal> cerrada."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:128
|
||||
#, no-c-format
|
||||
#: index.docbook:128
|
||||
msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
|
||||
msgstr "Transaction (<literal>org.hibernate.Transaction</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:130
|
||||
#, no-c-format
|
||||
#: index.docbook:130
|
||||
msgid ""
|
||||
"(Optional) A single-threaded, short-lived object used by the application to "
|
||||
"specify atomic units of work. Abstracts application from underlying JDBC, "
|
||||
|
@ -181,17 +142,15 @@ msgid ""
|
|||
"demarcation, either using the underlying API or <literal>Transaction</"
|
||||
"literal>, is never optional!"
|
||||
msgstr ""
|
||||
"(Opcional) Un objeto de corta vida, mono-hebra, usado por la aplicación para "
|
||||
"especificar unidades atómicas de trabajo. Abstrae a la aplicación de las "
|
||||
"subyacentes transacciones JDBC, JTA o CORBA. En algunos casos, una "
|
||||
"<literal>Session</literal> puede extenderse sobre varias "
|
||||
"<literal>Transaction</literal>s. Sin embargo, la demarcación de la "
|
||||
"transacción, ya sea usando la API subyacente o <literal>Transaction</"
|
||||
"(Opcional) Un objeto de corta vida, mono-hebra, usado por la aplicació"
|
||||
"n para especificar unidades atómicas de trabajo. Abstrae a la "
|
||||
"aplicación de las subyacentes transacciones JDBC, JTA o CORBA. En "
|
||||
"algunos casos, una <literal>Session</literal> puede extenderse sobre varias "
|
||||
"<literal>Transaction</literal>s. Sin embargo, la demarcación de la "
|
||||
"transacción, ya sea usando la API subyacente o <literal>Transaction</"
|
||||
"literal>, nunca es opcional!"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:141
|
||||
#, no-c-format
|
||||
#: index.docbook:141
|
||||
msgid ""
|
||||
"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
|
||||
"literal>)"
|
||||
|
@ -199,78 +158,65 @@ msgstr ""
|
|||
"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
|
||||
"literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:143
|
||||
#, no-c-format
|
||||
#: index.docbook:143
|
||||
msgid ""
|
||||
"(Optional) A factory for (and pool of) JDBC connections. Abstracts "
|
||||
"application from underlying <literal>Datasource</literal> or "
|
||||
"<literal>DriverManager</literal>. Not exposed to application, but can be "
|
||||
"extended/implemented by the developer."
|
||||
msgstr ""
|
||||
"(Opcional) Una fábrica (y pool) de conexiones JDBC. Abstrae a la aplicación "
|
||||
"del <literal>Datasource</literal> o <literal>DriverManager</literal> "
|
||||
"subyacente. No se expone a la aplicación, pero puede ser extendido/"
|
||||
"implementado por el desarrollador."
|
||||
"(Opcional) Una fábrica (y pool) de conexiones JDBC. Abstrae a la "
|
||||
"aplicación del <literal>Datasource</literal> o "
|
||||
"<literal>DriverManager</literal> subyacente. No se expone a la "
|
||||
"aplicación, pero puede ser extendido/implementado por el "
|
||||
"desarrollador."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:151
|
||||
#, no-c-format
|
||||
#: index.docbook:151
|
||||
msgid ""
|
||||
"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
|
||||
msgstr ""
|
||||
"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:153
|
||||
#, no-c-format
|
||||
#: index.docbook:153
|
||||
msgid ""
|
||||
"(Optional) A factory for <literal>Transaction</literal> instances. Not "
|
||||
"exposed to the application, but can be extended/implemented by the developer."
|
||||
msgstr ""
|
||||
"(Opcional) Una fábrica de instancias de <literal>Transaction</literal>. No "
|
||||
"se expone a la aplicación, pero puede ser extendido/implementado por el "
|
||||
"desarrollador."
|
||||
"(Opcional) Una fábrica de instancias de <literal>Transaction</"
|
||||
"literal>. No se expone a la aplicación, pero puede ser extendido/"
|
||||
"implementado por el desarrollador."
|
||||
|
||||
#. Tag: emphasis
|
||||
#: architecture.xml:160
|
||||
#, no-c-format
|
||||
#: index.docbook:160
|
||||
msgid "Extension Interfaces"
|
||||
msgstr "Interfaces de Extensión"
|
||||
msgstr "Interfaces de Extensión"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:162
|
||||
#, no-c-format
|
||||
#: index.docbook:162
|
||||
msgid ""
|
||||
"Hibernate offers many optional extension interfaces you can implement to "
|
||||
"customize the behavior of your persistence layer. See the API documentation "
|
||||
"for details."
|
||||
msgstr ""
|
||||
"Hibernate ofrece muchas interfaces de extensión opcional que puedes "
|
||||
"Hibernate ofrece muchas interfaces de extensión opcional que puedes "
|
||||
"implementar para modificar a medida el comportamiento de tu capa de "
|
||||
"persistencia. Para más detalles, mira la documentación de la API."
|
||||
"persistencia. Para más detalles, mira la documentación de la "
|
||||
"API."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:171
|
||||
#, no-c-format
|
||||
#: index.docbook:171
|
||||
msgid ""
|
||||
"Given a \"lite\" architecture, the application bypasses the "
|
||||
"<literal>Transaction</literal>/<literal>TransactionFactory</literal> and/or "
|
||||
"<literal>ConnectionProvider</literal> APIs to talk to JTA or JDBC directly."
|
||||
msgstr ""
|
||||
"Dada una arquitectura \"sencilla\", la aplicación pasa por alto las APIs de "
|
||||
"<literal>Transaction</literal>/<literal>TransactionFactory</literal> y/o "
|
||||
"<literal>ConnectionProvider</literal>, para hablar directamente a JTA o JDBC."
|
||||
"Dada una arquitectura \"sencilla\", la aplicación pasa por alto las "
|
||||
"APIs de <literal>Transaction</literal>/<literal>TransactionFactory</literal> "
|
||||
"y/o <literal>ConnectionProvider</literal>, para hablar directamente a JTA o "
|
||||
"JDBC."
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:179
|
||||
#, no-c-format
|
||||
#: index.docbook:179
|
||||
msgid "Instance states"
|
||||
msgstr "Estados de instancia"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:180
|
||||
#, no-c-format
|
||||
#: index.docbook:180
|
||||
msgid ""
|
||||
"An instance of a persistent classes may be in one of three different states, "
|
||||
"which are defined with respect to a <emphasis>persistence context</"
|
||||
|
@ -282,31 +228,23 @@ msgstr ""
|
|||
"emphasis>. El objeto <literal>Session</literal> de Hibernate es el contexto "
|
||||
"de persistencia:"
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:188
|
||||
#, no-c-format
|
||||
#: index.docbook:188
|
||||
msgid "transient"
|
||||
msgstr "transitorio"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:190
|
||||
#, no-c-format
|
||||
#: index.docbook:190
|
||||
msgid ""
|
||||
"The instance is not, and has never been associated with any persistence "
|
||||
"context. It has no persistent identity (primary key value)."
|
||||
msgstr ""
|
||||
"La instancia no está y nunca estuvo asociada con un contexto de "
|
||||
"La instancia no está y nunca estuvo asociada con un contexto de "
|
||||
"persistencia. No tiene identidad persistente (valor de clave primaria)."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:198
|
||||
#, no-c-format
|
||||
#: index.docbook:198
|
||||
msgid "persistent"
|
||||
msgstr "persistente"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:200
|
||||
#, no-c-format
|
||||
#: index.docbook:200
|
||||
msgid ""
|
||||
"The instance is currently associated with a persistence context. It has a "
|
||||
"persistent identity (primary key value) and, perhaps, a corresponding row in "
|
||||
|
@ -314,22 +252,18 @@ msgid ""
|
|||
"<emphasis>guarantees</emphasis> that persistent identity is equivalent to "
|
||||
"Java identity (in-memory location of the object)."
|
||||
msgstr ""
|
||||
"La instancia está actualmente asociada con un contexto de persistencia. "
|
||||
"Tiene una identidad persistente (valor de clave primaria) y, quizás, una "
|
||||
"fila correspondiente en la base de datos. Para un contexto de persistencia "
|
||||
"en particular, Hibernate <emphasis>garantiza</emphasis> que la identidad "
|
||||
"persistente es equivalente a la identidad Java (localización en memoria del "
|
||||
"objeto)."
|
||||
"La instancia está actualmente asociada con un contexto de "
|
||||
"persistencia. Tiene una identidad persistente (valor de clave primaria) y, "
|
||||
"quizás, una fila correspondiente en la base de datos. Para un "
|
||||
"contexto de persistencia en particular, Hibernate <emphasis>garantiza</"
|
||||
"emphasis> que la identidad persistente es equivalente a la identidad Java "
|
||||
"(localización en memoria del objeto)."
|
||||
|
||||
#. Tag: term
|
||||
#: architecture.xml:212
|
||||
#, no-c-format
|
||||
#: index.docbook:212
|
||||
msgid "detached"
|
||||
msgstr "separado"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:214
|
||||
#, no-c-format
|
||||
#: index.docbook:214
|
||||
msgid ""
|
||||
"The instance was once associated with a persistence context, but that "
|
||||
"context was closed, or the instance was serialized to another process. It "
|
||||
|
@ -339,44 +273,38 @@ msgid ""
|
|||
msgstr ""
|
||||
"La instancia estuvo una vez asociada con un contexto de persistencia, pero "
|
||||
"ese contexto fue cerrado, o la instancia fue serializada a otro proceso. "
|
||||
"Tiene una identidad persistente y, quizás, una fila correspondiente en la "
|
||||
"base de datos. Para las instancias separadas, Hibernate no establece ninguna "
|
||||
"garantía sobre la relación entre identidad persistente e identidad Java."
|
||||
"Tiene una identidad persistente y, quizás, una fila correspondiente "
|
||||
"en la base de datos. Para las instancias separadas, Hibernate no establece "
|
||||
"ninguna garantía sobre la relación entre identidad persistente "
|
||||
"e identidad Java."
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:229
|
||||
#, no-c-format
|
||||
#: index.docbook:229
|
||||
msgid "JMX Integration"
|
||||
msgstr "Integración JMX"
|
||||
msgstr "Integración JMX"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:231
|
||||
#, no-c-format
|
||||
#: index.docbook:231
|
||||
msgid ""
|
||||
"JMX is the J2EE standard for management of Java components. Hibernate may be "
|
||||
"managed via a JMX standard service. We provide an MBean implementation in "
|
||||
"the distribution, <literal>org.hibernate.jmx.HibernateService</literal>."
|
||||
msgstr ""
|
||||
"JMX es el estándar J2EE para la gestión de componentes Java. Hibernate puede "
|
||||
"ser gestionado por medio de un servicio estándar JMX. Proveemos una "
|
||||
"implementación de MBean en la distribución, <literal>org.hibernate.jmx."
|
||||
"HibernateService</literal>."
|
||||
"JMX es el estándar J2EE para la gestión de componentes Java. "
|
||||
"Hibernate puede ser gestionado por medio de un servicio estándar JMX. "
|
||||
"Proveemos una implementación de MBean en la distribución, "
|
||||
"<literal>org.hibernate.jmx.HibernateService</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:237
|
||||
#, no-c-format
|
||||
#: index.docbook:237
|
||||
msgid ""
|
||||
"For an example how to deploy Hibernate as a JMX service on the JBoss "
|
||||
"Application Server, please see the JBoss User Guide. On JBoss AS, you also "
|
||||
"get these benefits if you deploy using JMX:"
|
||||
msgstr ""
|
||||
"Para ejemplo de cómo desplegar Hibernate como un servicio JMX en un Servidor "
|
||||
"de Aplicaciones JBoss, por favor, mira la Guía del Usuario de JBoss. En "
|
||||
"JBoss AS, tienes además estos beneficios si despliegas usando JMX:"
|
||||
"Para ejemplo de cómo desplegar Hibernate como un servicio JMX en un "
|
||||
"Servidor de Aplicaciones JBoss, por favor, mira la Guía del Usuario "
|
||||
"de JBoss. En JBoss AS, tienes además estos beneficios si despliegas "
|
||||
"usando JMX:"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:245
|
||||
#, no-c-format
|
||||
#: index.docbook:245
|
||||
msgid ""
|
||||
"<emphasis>Session Management:</emphasis> The Hibernate <literal>Session</"
|
||||
"literal>'s life cycle can be automatically bound to the scope of a JTA "
|
||||
|
@ -388,19 +316,18 @@ msgid ""
|
|||
"call the <literal>HibernateContext</literal> to access a <literal>Session</"
|
||||
"literal>."
|
||||
msgstr ""
|
||||
"<emphasis>Gestión de Sesión:</emphasis> El ciclo de vida de la "
|
||||
"<literal>Session</literal> de Hibernate puede estar automáticamente ligado "
|
||||
"al ámbito de una transacción JTA. Esto significa que ya no tienes que abrir "
|
||||
"ni cerrar la <literal>Session</literal> manualmente, esto pasa a ser trabajo "
|
||||
"de un interceptor EJB de JBoss. Además tampoco tienes que preocuparte más de "
|
||||
"la demarcación de la transacción (a menos que que quieras escribir una capa "
|
||||
"de persitencia portable, por supuesto, usa la API de <literal>Transaction</"
|
||||
"literal> de Hibernate para esto). Para acceder a una <literal>Session</"
|
||||
"literal> llama al <literal>HibernateContext</literal>."
|
||||
"<emphasis>Gestión de Sesión:</emphasis> El ciclo de vida de la "
|
||||
"<literal>Session</literal> de Hibernate puede estar automáticamente "
|
||||
"ligado al ámbito de una transacción JTA. Esto significa que ya "
|
||||
"no tienes que abrir ni cerrar la <literal>Session</literal> manualmente, "
|
||||
"esto pasa a ser trabajo de un interceptor EJB de JBoss. Además "
|
||||
"tampoco tienes que preocuparte más de la demarcación de la "
|
||||
"transacción (a menos que que quieras escribir una capa de persitencia "
|
||||
"portable, por supuesto, usa la API de <literal>Transaction</literal> de "
|
||||
"Hibernate para esto). Para acceder a una <literal>Session</literal> llama al "
|
||||
"<literal>HibernateContext</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:257
|
||||
#, no-c-format
|
||||
#: index.docbook:257
|
||||
msgid ""
|
||||
"<emphasis>HAR deployment:</emphasis> Usually you deploy the Hibernate JMX "
|
||||
"service using a JBoss service deployment descriptor (in an EAR and/or SAR "
|
||||
|
@ -412,59 +339,48 @@ msgid ""
|
|||
msgstr ""
|
||||
"<emphasis>Despliegue de HAR:</emphasis> Usualmente despliegas el servicio "
|
||||
"JMX de Hibernate usando un descriptor de despliegue de servicio de JBoss (en "
|
||||
"un fichero EAR y/o SAR), que soporta todas las opciones de configuración "
|
||||
"usuales de una <literal>SessionFactory</literal> de Hibernate. Sin embargo, "
|
||||
"todavía tienes que nombrar todos tus ficheros de mapeo en el descriptor de "
|
||||
"despliegue. Si decides usar el depliegue de HAR opcional, JBoss detectará "
|
||||
"automáticamente todos los ficheros de mapeo en tu fichero HAR."
|
||||
"un fichero EAR y/o SAR), que soporta todas las opciones de "
|
||||
"configuración usuales de una <literal>SessionFactory</literal> de "
|
||||
"Hibernate. Sin embargo, todavía tienes que nombrar todos tus ficheros "
|
||||
"de mapeo en el descriptor de despliegue. Si decides usar el depliegue de HAR "
|
||||
"opcional, JBoss detectará automáticamente todos los ficheros "
|
||||
"de mapeo en tu fichero HAR."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:268
|
||||
#, no-c-format
|
||||
#: index.docbook:268
|
||||
msgid ""
|
||||
"Consult the JBoss AS user guide for more information about these options."
|
||||
msgstr ""
|
||||
"Para más información sobre estas opciones, consulta la Guía de Usuario del "
|
||||
"JBoss AS."
|
||||
"Para más información sobre estas opciones, consulta la "
|
||||
"Guía de Usuario del JBoss AS."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:272
|
||||
#, no-c-format
|
||||
#: index.docbook:272
|
||||
msgid ""
|
||||
"Another feature available as a JMX service are runtime Hibernate statistics. "
|
||||
"See <xref linkend=\"configuration-optional-statistics\"/>."
|
||||
msgstr ""
|
||||
"Otra funcionalidad disponible como un servicio JMX son las estadísticas en "
|
||||
"tiempo de ejecución de Hibernate. Mira <xref linkend=\"configuration-"
|
||||
"optional-statistics\"/>."
|
||||
"Otra funcionalidad disponible como un servicio JMX son las estadí"
|
||||
"sticas en tiempo de ejecución de Hibernate. Mira <xref linkend="
|
||||
"\"configuration-optional-statistics\"/>."
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:279
|
||||
#, no-c-format
|
||||
#: index.docbook:279
|
||||
msgid "JCA Support"
|
||||
msgstr "Soporte JCA:"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:280
|
||||
#, no-c-format
|
||||
#: index.docbook:280
|
||||
msgid ""
|
||||
"Hibernate may also be configured as a JCA connector. Please see the website "
|
||||
"for more details. Please note that Hibernate JCA support is still considered "
|
||||
"experimental."
|
||||
msgstr ""
|
||||
"Hiberate puede además ser configurado como un conector JCA. Por favor mira "
|
||||
"el sitio web para más detalles. Por favor ten en cuenta que el soporte de "
|
||||
"JCA de Hibernate está aún considerado experimental."
|
||||
"Hiberate puede además ser configurado como un conector JCA. Por favor "
|
||||
"mira el sitio web para más detalles. Por favor ten en cuenta que el "
|
||||
"soporte de JCA de Hibernate está aún considerado experimental."
|
||||
|
||||
#. Tag: title
|
||||
#: architecture.xml:287
|
||||
#, no-c-format
|
||||
#: index.docbook:287
|
||||
msgid "Contextual Sessions"
|
||||
msgstr "translator-credits"
|
||||
msgstr "UNTRANSLATED! Contextual Sessions"
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:288
|
||||
#, no-c-format
|
||||
#: index.docbook:288
|
||||
msgid ""
|
||||
"Most applications using Hibernate need some form of \"contextual\" sessions, "
|
||||
"where a given session is in effect throughout the scope of a given context. "
|
||||
|
@ -476,10 +392,17 @@ msgid ""
|
|||
"utilized third-party frameworks (such as Spring or Pico) which provided "
|
||||
"proxy/interception-based contextual sessions."
|
||||
msgstr ""
|
||||
"Most applications using Hibernate need some form of \"contextual\" sessions, "
|
||||
"where a given session is in effect throughout the scope of a given context. "
|
||||
"However, across applications the definition of what constitutes a context is "
|
||||
"typically different; and different contexts define different scopes to the "
|
||||
"notion of current. Applications using Hibernate prior to version 3.0 tended "
|
||||
"to utilize either home-grown <literal>ThreadLocal</literal>-based contextual "
|
||||
"sessions, helper classes such as <literal>HibernateUtil</literal>, or "
|
||||
"utilized third-party frameworks (such as Spring or Pico) which provided "
|
||||
"proxy/interception-based contextual sessions."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:297
|
||||
#, no-c-format
|
||||
#: index.docbook:297
|
||||
msgid ""
|
||||
"Starting with version 3.0.1, Hibernate added the <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> method. Initially, this assumed usage of "
|
||||
|
@ -492,10 +415,18 @@ msgid ""
|
|||
"<literal>J2EE</literal> container. Based on that, the <literal>JTA</literal>-"
|
||||
"based contextual sessions is all you should ever need to use."
|
||||
msgstr ""
|
||||
"Starting with version 3.0.1, Hibernate added the <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> method. Initially, this assumed usage of "
|
||||
"<literal>JTA</literal> transactions, where the <literal>JTA</literal> "
|
||||
"transaction defined both the scope and context of a current session. The "
|
||||
"Hibernate team maintains that, given the maturity of the numerous stand-"
|
||||
"alone <literal>JTA TransactionManager</literal> implementations out there, "
|
||||
"most (if not all) applications should be using <literal>JTA</literal> "
|
||||
"transaction management whether or not they are deployed into a "
|
||||
"<literal>J2EE</literal> container. Based on that, the <literal>JTA</literal>-"
|
||||
"based contextual sessions is all you should ever need to use."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:307
|
||||
#, no-c-format
|
||||
#: index.docbook:307
|
||||
msgid ""
|
||||
"However, as of version 3.1, the processing behind <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> is now pluggable. To that end, a new extension "
|
||||
|
@ -504,10 +435,14 @@ msgid ""
|
|||
"current_session_context_class</literal>) have been added to allow "
|
||||
"pluggability of the scope and context of defining current sessions."
|
||||
msgstr ""
|
||||
"However, as of version 3.1, the processing behind <literal>SessionFactory."
|
||||
"getCurrentSession()</literal> is now pluggable. To that end, a new extension "
|
||||
"interface (<literal>org.hibernate.context.CurrentSessionContext</literal>) "
|
||||
"and a new configuration parameter (<literal>hibernate."
|
||||
"current_session_context_class</literal>) have been added to allow "
|
||||
"pluggability of the scope and context of defining current sessions."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:314
|
||||
#, no-c-format
|
||||
#: index.docbook:314
|
||||
msgid ""
|
||||
"See the Javadocs for the <literal>org.hibernate.context."
|
||||
"CurrentSessionContext</literal> interface for a detailed discussion of its "
|
||||
|
@ -516,39 +451,48 @@ msgid ""
|
|||
"contextual session. Out-of-the-box, Hibernate comes with three "
|
||||
"implementations of this interface."
|
||||
msgstr ""
|
||||
"See the Javadocs for the <literal>org.hibernate.context."
|
||||
"CurrentSessionContext</literal> interface for a detailed discussion of its "
|
||||
"contract. It defines a single method, <literal>currentSession()</literal>, "
|
||||
"by which the implementation is responsible for tracking the current "
|
||||
"contextual session. Out-of-the-box, Hibernate comes with three "
|
||||
"implementations of this interface."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:324
|
||||
#, no-c-format
|
||||
#: index.docbook:324
|
||||
msgid ""
|
||||
"<literal>org.hibernate.context.JTASessionContext</literal> - current "
|
||||
"sessions are tracked and scoped by a <literal>JTA</literal> transaction. The "
|
||||
"processing here is exactly the same as in the older JTA-only approach. See "
|
||||
"the Javadocs for details."
|
||||
msgstr ""
|
||||
"<literal>org.hibernate.context.JTASessionContext</literal> - current "
|
||||
"sessions are tracked and scoped by a <literal>JTA</literal> transaction. The "
|
||||
"processing here is exactly the same as in the older JTA-only approach. See "
|
||||
"the Javadocs for details."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:332
|
||||
#, no-c-format
|
||||
#: index.docbook:332
|
||||
msgid ""
|
||||
"<literal>org.hibernate.context.ThreadLocalSessionContext</literal> - current "
|
||||
"sessions are tracked by thread of execution. Again, see the Javadocs for "
|
||||
"details."
|
||||
msgstr ""
|
||||
"<literal>org.hibernate.context.ThreadLocalSessionContext</literal> - current "
|
||||
"sessions are tracked by thread of execution. Again, see the Javadocs for "
|
||||
"details."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:338
|
||||
#, no-c-format
|
||||
#: index.docbook:338
|
||||
msgid ""
|
||||
"<literal>org.hibernate.context.ManagedSessionContext</literal> - current "
|
||||
"sessions are tracked by thread of execution. However, you are responsible to "
|
||||
"bind and unbind a <literal>Session</literal> instance with static methods on "
|
||||
"this class, it does never open, flush, or close a <literal>Session</literal>."
|
||||
msgstr ""
|
||||
"<literal>org.hibernate.context.ManagedSessionContext</literal> - current "
|
||||
"sessions are tracked by thread of execution. However, you are responsible to "
|
||||
"bind and unbind a <literal>Session</literal> instance with static methods on "
|
||||
"this class, it does never open, flush, or close a <literal>Session</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:347
|
||||
#, no-c-format
|
||||
#: index.docbook:347
|
||||
msgid ""
|
||||
"The first two implementations provide a \"one session - one database "
|
||||
"transaction\" programming model, also known and used as <emphasis>session-"
|
||||
|
@ -562,10 +506,19 @@ msgid ""
|
|||
"transaction or session demarcation operations in your code. Refer to <xref "
|
||||
"linkend=\"transactions\"/> for more information and code examples."
|
||||
msgstr ""
|
||||
"The first two implementations provide a \"one session - one database "
|
||||
"transaction\" programming model, also known and used as <emphasis>session-"
|
||||
"per-request</emphasis>. The beginning and end of a Hibernate session is "
|
||||
"defined by the duration of a database transaction. If you use programatic "
|
||||
"transaction demarcation in plain JSE without JTA, you are adviced to use the "
|
||||
"Hibernate <literal>Transaction</literal> API to hide the underlying "
|
||||
"transaction system from your code. If you use JTA, use the JTA interfaces to "
|
||||
"demarcate transactions. If you execute in an EJB container that supports "
|
||||
"CMT, transaction boundaries are defined declaratively and you don't need any "
|
||||
"transaction or session demarcation operations in your code. Refer to <xref "
|
||||
"linkend=\"transactions\"/> for more information and code examples."
|
||||
|
||||
#. Tag: para
|
||||
#: architecture.xml:359
|
||||
#, no-c-format
|
||||
#: index.docbook:359
|
||||
msgid ""
|
||||
"The <literal>hibernate.current_session_context_class</literal> configuration "
|
||||
"parameter defines which <literal>org.hibernate.context."
|
||||
|
@ -578,3 +531,19 @@ msgid ""
|
|||
"however, there are three corresponding short names, \"jta\", \"thread\", and "
|
||||
"\"managed\"."
|
||||
msgstr ""
|
||||
"The <literal>hibernate.current_session_context_class</literal> configuration "
|
||||
"parameter defines which <literal>org.hibernate.context."
|
||||
"CurrentSessionContext</literal> implementation should be used. Note that for "
|
||||
"backwards compatibility, if this config param is not set but a <literal>org."
|
||||
"hibernate.transaction.TransactionManagerLookup</literal> is configured, "
|
||||
"Hibernate will use the <literal>org.hibernate.context.JTASessionContext</"
|
||||
"literal>. Typically, the value of this parameter would just name the "
|
||||
"implementation class to use; for the three out-of-the-box implementations, "
|
||||
"however, there are three corresponding short names, \"jta\", \"thread\", and "
|
||||
"\"managed\"."
|
||||
|
||||
msgid "ROLES_OF_TRANSLATORS"
|
||||
msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
msgid "CREDIT_FOR_TRANSLATORS"
|
||||
msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,24 +1,15 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2007-10-25 07:47+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:5
|
||||
#, no-c-format
|
||||
#: index.docbook:5
|
||||
msgid "Batch processing"
|
||||
msgstr "Procesamiento por lotes"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:7
|
||||
#, no-c-format
|
||||
#: index.docbook:7
|
||||
msgid ""
|
||||
"A naive approach to inserting 100 000 rows in the database using Hibernate "
|
||||
"might look like this:"
|
||||
|
@ -26,9 +17,7 @@ msgstr ""
|
|||
"Un enfoque ingenuo para insertar 100.000 filas en la base de datos usando "
|
||||
"Hibernate podría verse así:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:12
|
||||
#, no-c-format
|
||||
#: index.docbook:12
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
|
@ -39,10 +28,16 @@ msgid ""
|
|||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"for ( int i=0; i<100000; i++ ) {\n"
|
||||
" Customer customer = new Customer(.....);\n"
|
||||
" session.save(customer);\n"
|
||||
"}\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:14
|
||||
#, no-c-format
|
||||
#: index.docbook:14
|
||||
msgid ""
|
||||
"This would fall over with an <literal>OutOfMemoryException</literal> "
|
||||
"somewhere around the 50 000th row. That's because Hibernate caches all the "
|
||||
|
@ -54,9 +49,7 @@ msgstr ""
|
|||
"las instancias de <literal>Customer</literal> recién instanciadas en el "
|
||||
"caché de nivel de sesión."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:20
|
||||
#, no-c-format
|
||||
#: index.docbook:20
|
||||
msgid ""
|
||||
"In this chapter we'll show you how to avoid this problem. First, however, if "
|
||||
"you are doing batch processing, it is absolutely critical that you enable "
|
||||
|
@ -69,15 +62,11 @@ msgstr ""
|
|||
"lograr un rendimiento razonable. Establece el tamaño de lote JDBC a un "
|
||||
"número razonable (digamos 10-50):"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:27
|
||||
#, no-c-format
|
||||
#: index.docbook:27
|
||||
msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
|
||||
msgstr ""
|
||||
msgstr "<![CDATA[hibernate.jdbc.batch_size 20]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:29
|
||||
#, no-c-format
|
||||
#: index.docbook:29
|
||||
msgid ""
|
||||
"Note that Hibernate disables insert batching at the JDBC level transparently "
|
||||
"if you use an <literal>identiy</literal> identifier generator."
|
||||
|
@ -85,9 +74,7 @@ msgstr ""
|
|||
"UNTRANSLATED! Note that Hibernate disables insert batching at the JDBC level "
|
||||
"transparently if you use an <literal>identiy</literal> identifier generator."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:34
|
||||
#, no-c-format
|
||||
#: index.docbook:34
|
||||
msgid ""
|
||||
"You also might like to do this kind of work in a process where interaction "
|
||||
"with the second-level cache is completely disabled:"
|
||||
|
@ -95,15 +82,11 @@ msgstr ""
|
|||
"Podrías además querer hacer este tipo de trabajo en un proceso donde la "
|
||||
"interacción con el caché de segundo nivel esté completamente deshabilitado:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:39
|
||||
#, no-c-format
|
||||
#: index.docbook:39
|
||||
msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
|
||||
msgstr ""
|
||||
msgstr "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:41
|
||||
#, no-c-format
|
||||
#: index.docbook:41
|
||||
msgid ""
|
||||
"However, this is not absolutely necessary, since we can explicitly set the "
|
||||
"<literal>CacheMode</literal> to disable interaction with the second-level "
|
||||
|
@ -113,15 +96,11 @@ msgstr ""
|
|||
"explicitly set the <literal>CacheMode</literal> to disable interaction with "
|
||||
"the second-level cache."
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:47
|
||||
#, no-c-format
|
||||
#: index.docbook:47
|
||||
msgid "Batch inserts"
|
||||
msgstr "Inserciones en lote"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:49
|
||||
#, no-c-format
|
||||
#: index.docbook:49
|
||||
msgid ""
|
||||
"When making new objects persistent, you must <literal>flush()</literal> and "
|
||||
"then <literal>clear()</literal> the session regularly, to control the size "
|
||||
|
@ -131,9 +110,7 @@ msgstr ""
|
|||
"literal> y llamar a <literal>clear()</literal> en la sesión regularmente, "
|
||||
"para controlar el tamaño del caché de primer nivel."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:55
|
||||
#, no-c-format
|
||||
#: index.docbook:55
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
|
@ -151,16 +128,27 @@ msgid ""
|
|||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"for ( int i=0; i<100000; i++ ) {\n"
|
||||
" Customer customer = new Customer(.....);\n"
|
||||
" session.save(customer);\n"
|
||||
" if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
|
||||
" //flush a batch of inserts and release memory:\n"
|
||||
" session.flush();\n"
|
||||
" session.clear();\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:60
|
||||
#, no-c-format
|
||||
#: index.docbook:60
|
||||
msgid "Batch updates"
|
||||
msgstr "Actualizaciones en lote"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:62
|
||||
#, no-c-format
|
||||
#: index.docbook:62
|
||||
msgid ""
|
||||
"For retrieving and updating data the same ideas apply. In addition, you need "
|
||||
"to use <literal>scroll()</literal> to take advantage of server-side cursors "
|
||||
|
@ -171,9 +159,7 @@ msgstr ""
|
|||
"ventaja de los cursores del lado del servidor en consultas que devuelvan "
|
||||
"muchas filas de datos."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:68
|
||||
#, no-c-format
|
||||
#: index.docbook:68
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
|
@ -195,16 +181,31 @@ msgid ""
|
|||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
" \n"
|
||||
"ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
" .setCacheMode(CacheMode.IGNORE)\n"
|
||||
" .scroll(ScrollMode.FORWARD_ONLY);\n"
|
||||
"int count=0;\n"
|
||||
"while ( customers.next() ) {\n"
|
||||
" Customer customer = (Customer) customers.get(0);\n"
|
||||
" customer.updateStuff(...);\n"
|
||||
" if ( ++count % 20 == 0 ) {\n"
|
||||
" //flush a batch of updates and release memory:\n"
|
||||
" session.flush();\n"
|
||||
" session.clear();\n"
|
||||
" }\n"
|
||||
"}\n"
|
||||
" \n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:73
|
||||
#, no-c-format
|
||||
#: index.docbook:73
|
||||
msgid "The StatelessSession interface"
|
||||
msgstr "UNTRANSLATED! The StatelessSession interface"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:74
|
||||
#, no-c-format
|
||||
#: index.docbook:74
|
||||
msgid ""
|
||||
"Alternatively, Hibernate provides a command-oriented API that may be used "
|
||||
"for streaming data to and from the database in the form of detached objects. "
|
||||
|
@ -234,9 +235,7 @@ msgstr ""
|
|||
"level cache. A stateless session is a lower-level abstraction, much closer "
|
||||
"to the underlying JDBC."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:89
|
||||
#, no-c-format
|
||||
#: index.docbook:89
|
||||
msgid ""
|
||||
"<![CDATA[StatelessSession session = sessionFactory.openStatelessSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
|
@ -252,10 +251,28 @@ msgid ""
|
|||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[StatelessSession session = sessionFactory.openStatelessSession();\n"
|
||||
" Transaction tx = "
|
||||
"session.beginTransaction();\n"
|
||||
" \n"
|
||||
" ScrollableResults "
|
||||
"customers = session.getNamedQuery(\"GetCustomers\")\n"
|
||||
" .scroll(ScrollMode."
|
||||
"FORWARD_ONLY);\n"
|
||||
" while ( customers.next"
|
||||
"() ) {\n"
|
||||
" Customer customer = "
|
||||
"(Customer) customers.get(0);\n"
|
||||
" customer.updateStuff"
|
||||
"(...);\n"
|
||||
" session.update"
|
||||
"(customer);\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" tx.commit();\n"
|
||||
" session.close();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:91
|
||||
#, no-c-format
|
||||
#: index.docbook:91
|
||||
msgid ""
|
||||
"Note that in this code example, the <literal>Customer</literal> instances "
|
||||
"returned by the query are immediately detached. They are never associated "
|
||||
|
@ -265,9 +282,7 @@ msgstr ""
|
|||
"returned by the query are immediately detached. They are never associated "
|
||||
"with any persistence context."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:97
|
||||
#, no-c-format
|
||||
#: index.docbook:97
|
||||
msgid ""
|
||||
"The <literal>insert(), update()</literal> and <literal>delete()</literal> "
|
||||
"operations defined by the <literal>StatelessSession</literal> interface are "
|
||||
|
@ -287,15 +302,11 @@ msgstr ""
|
|||
"<literal>delete()</literal> operations defined by the <literal>Session</"
|
||||
"literal> interface."
|
||||
|
||||
#. Tag: title
|
||||
#: batch.xml:110
|
||||
#, no-c-format
|
||||
#: index.docbook:110
|
||||
msgid "DML-style operations"
|
||||
msgstr "update/delete en masa"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:112
|
||||
#, no-c-format
|
||||
#: index.docbook:112
|
||||
msgid ""
|
||||
"As already discussed, automatic and transparent object/relational mapping is "
|
||||
"concerned with the management of object state. This implies that the object "
|
||||
|
@ -315,11 +326,9 @@ msgstr ""
|
|||
"embargo, Hibernate provee métodos para la ejecución de sentencias del estilo "
|
||||
"de <literal>UPDATE</literal> y <literal>DELETE</literal> de SQL que se "
|
||||
"realizan a través del Lenguaje de Consulta de Hibernate (Hibernate Query "
|
||||
"Language o <xref linkend=\"queryhql\">HQL</xref>)."
|
||||
"Language o <xref linkend=\"queryhql\"/>HQL)."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:122
|
||||
#, no-c-format
|
||||
#: index.docbook:122
|
||||
msgid ""
|
||||
"The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</"
|
||||
"literal> statements is: <literal>( UPDATE | DELETE ) FROM? EntityName (WHERE "
|
||||
|
@ -329,15 +338,11 @@ msgstr ""
|
|||
"<literal>DELETE</literal> es: <literal>( UPDATE | DELETE ) FROM? ClassName "
|
||||
"(WHERE WHERE_CONDITIONS)?</literal>. Algunos puntos a tener en cuenta:"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:130
|
||||
#, no-c-format
|
||||
#: index.docbook:130
|
||||
msgid "In the from-clause, the FROM keyword is optional"
|
||||
msgstr "En la cláusula-from, la palabra clave FROM es opcional"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:135
|
||||
#, no-c-format
|
||||
#: index.docbook:135
|
||||
msgid ""
|
||||
"There can only be a single entity named in the from-clause; it can "
|
||||
"optionally be aliased. If the entity name is aliased, then any property "
|
||||
|
@ -349,9 +354,7 @@ msgstr ""
|
|||
"references must be qualified using that alias; if the entity name is not "
|
||||
"aliased, then it is illegal for any property references to be qualified."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:143
|
||||
#, no-c-format
|
||||
#: index.docbook:143
|
||||
msgid ""
|
||||
"No <link linkend=\"queryhql-joins-forms\">joins</link> (either implicit or "
|
||||
"explicit) can be specified in a bulk HQL query. Sub-queries may be used in "
|
||||
|
@ -361,15 +364,11 @@ msgstr ""
|
|||
"explicit) can be specified in a bulk HQL query. Sub-queries may be used in "
|
||||
"the where-clause; the subqueries, themselves, may contain joins."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:150
|
||||
#, no-c-format
|
||||
#: index.docbook:150
|
||||
msgid "The where-clause is also optional."
|
||||
msgstr "La cláusula-where es también opcional."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:156
|
||||
#, no-c-format
|
||||
#: index.docbook:156
|
||||
msgid ""
|
||||
"As an example, to execute an HQL <literal>UPDATE</literal>, use the "
|
||||
"<literal>Query.executeUpdate()</literal> method (the method is named for "
|
||||
|
@ -381,9 +380,7 @@ msgstr ""
|
|||
"those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</"
|
||||
"literal>):"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:162
|
||||
#, no-c-format
|
||||
#: index.docbook:162
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
|
@ -399,10 +396,23 @@ msgid ""
|
|||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
" Transaction tx = session."
|
||||
"beginTransaction();\n"
|
||||
" \n"
|
||||
" String hqlUpdate = \"update "
|
||||
"Customer c set c.name = :newName where c.name = :oldName\";\n"
|
||||
" // or String hqlUpdate = \"update "
|
||||
"Customer set name = :newName where name = :oldName\";\n"
|
||||
" int updatedEntities = s.createQuery"
|
||||
"( hqlUpdate )\n"
|
||||
" .setString( \"newName\", newName )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
" tx.commit();\n"
|
||||
" session.close();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:164
|
||||
#, no-c-format
|
||||
#: index.docbook:164
|
||||
msgid ""
|
||||
"HQL <literal>UPDATE</literal> statements, by default do not effect the <link "
|
||||
"linkend=\"mapping-declaration-version\">version</link> or the <link linkend="
|
||||
|
@ -424,9 +434,7 @@ msgstr ""
|
|||
"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
|
||||
"keyword."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:174
|
||||
#, no-c-format
|
||||
#: index.docbook:174
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
|
@ -439,10 +447,20 @@ msgid ""
|
|||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
" Transaction tx = session."
|
||||
"beginTransaction();\n"
|
||||
" String hqlVersionedUpdate = "
|
||||
"\"update versioned Customer set name = :newName where name = :oldName\";\n"
|
||||
" int updatedEntities = s.createQuery"
|
||||
"( hqlUpdate )\n"
|
||||
" .setString( \"newName\", newName )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
" tx.commit();\n"
|
||||
" session.close();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:176
|
||||
#, no-c-format
|
||||
#: index.docbook:176
|
||||
msgid ""
|
||||
"Note that custom version types (<literal>org.hibernate.usertype."
|
||||
"UserVersionType</literal>) are not allowed in conjunction with a "
|
||||
|
@ -452,9 +470,7 @@ msgstr ""
|
|||
"UserVersionType</literal>) are not allowed in conjunction with a "
|
||||
"<literal>update versioned</literal> statement."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:181
|
||||
#, no-c-format
|
||||
#: index.docbook:181
|
||||
msgid ""
|
||||
"To execute an HQL <literal>DELETE</literal>, use the same <literal>Query."
|
||||
"executeUpdate()</literal> method:"
|
||||
|
@ -462,9 +478,7 @@ msgstr ""
|
|||
"Para ejecutar un <literal>DELETE</literal> HQL, usa el mismo método "
|
||||
"<literal>Query.executeUpdate()</literal>:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:186
|
||||
#, no-c-format
|
||||
#: index.docbook:186
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
|
@ -477,10 +491,17 @@ msgid ""
|
|||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
" Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
" String hqlDelete = \"delete Customer where name = :oldName\";\n"
|
||||
" int deletedEntities = s.createQuery( hqlDelete )\n"
|
||||
" .setString( \"oldName\", oldName )\n"
|
||||
" .executeUpdate();\n"
|
||||
" tx.commit();\n"
|
||||
" session.close();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:188
|
||||
#, no-c-format
|
||||
#: index.docbook:188
|
||||
msgid ""
|
||||
"The <literal>int</literal> value returned by the <literal>Query.executeUpdate"
|
||||
"()</literal> method indicate the number of entities effected by the "
|
||||
|
@ -505,9 +526,7 @@ msgstr ""
|
|||
"tabla \"raíz\" y potencialmente tablas de joined-subclass más debajo en la "
|
||||
"jerarquía de herencia."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:199
|
||||
#, no-c-format
|
||||
#: index.docbook:199
|
||||
msgid ""
|
||||
"The pseudo-syntax for <literal>INSERT</literal> statements is: "
|
||||
"<literal>INSERT INTO EntityName properties_list select_statement</literal>. "
|
||||
|
@ -517,17 +536,13 @@ msgstr ""
|
|||
"operaciones HQL masivas, que serán atendidas en lanzamientos futuros; "
|
||||
"consulta la hoja de ruta de JIRA para más detalles."
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:207
|
||||
#, no-c-format
|
||||
#: index.docbook:207
|
||||
msgid ""
|
||||
"Only the INSERT INTO ... SELECT ... form is supported; not the INSERT "
|
||||
"INTO ... VALUES ... form."
|
||||
msgstr "translator-credits"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:210
|
||||
#, no-c-format
|
||||
#: index.docbook:210
|
||||
msgid ""
|
||||
"The properties_list is analogous to the <literal>column speficiation</"
|
||||
"literal> in the SQL <literal>INSERT</literal> statement. For entities "
|
||||
|
@ -537,9 +552,7 @@ msgid ""
|
|||
"<literal>INSERT</literal> statements are inherently non-polymorphic."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:220
|
||||
#, no-c-format
|
||||
#: index.docbook:220
|
||||
msgid ""
|
||||
"select_statement can be any valid HQL select query, with the caveat that the "
|
||||
"return types must match the types expected by the insert. Currently, this is "
|
||||
|
@ -553,9 +566,7 @@ msgid ""
|
|||
"distinction or might be able to handle the conversion."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:232
|
||||
#, no-c-format
|
||||
#: index.docbook:232
|
||||
msgid ""
|
||||
"For the id property, the insert statement gives you two options. You can "
|
||||
"either explicitly specify the id property in the properties_list (in which "
|
||||
|
@ -572,9 +583,7 @@ msgid ""
|
|||
"because it does not expose a selectable way to get its values."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:247
|
||||
#, no-c-format
|
||||
#: index.docbook:247
|
||||
msgid ""
|
||||
"For properties mapped as either <literal>version</literal> or "
|
||||
"<literal>timestamp</literal>, the insert statement gives you two options. "
|
||||
|
@ -584,15 +593,11 @@ msgid ""
|
|||
"defined by the <literal>org.hibernate.type.VersionType</literal> is used)."
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: batch.xml:257
|
||||
#, no-c-format
|
||||
#: index.docbook:257
|
||||
msgid "An example HQL <literal>INSERT</literal> statement execution:"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: batch.xml:261
|
||||
#, no-c-format
|
||||
#: index.docbook:261
|
||||
msgid ""
|
||||
"<![CDATA[Session session = sessionFactory.openSession();\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
|
@ -604,3 +609,9 @@ msgid ""
|
|||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
|
||||
msgid "ROLES_OF_TRANSLATORS"
|
||||
msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
msgid "CREDIT_FOR_TRANSLATORS"
|
||||
msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
|
|
|
@ -1,24 +1,15 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2007-10-25 07:47+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: best_practices.xml:5
|
||||
#, no-c-format
|
||||
#: index.docbook:5
|
||||
msgid "Best Practices"
|
||||
msgstr "Mejores Prácticas"
|
||||
msgstr "Mejores Prácticas"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:9
|
||||
#, no-c-format
|
||||
#: index.docbook:9
|
||||
msgid ""
|
||||
"Write fine-grained classes and map them using <literal><component></"
|
||||
"literal>."
|
||||
|
@ -26,29 +17,23 @@ msgstr ""
|
|||
"Escribe clase finamente granularizadas y mapealas usando <literal><"
|
||||
"component></literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:11
|
||||
#, no-c-format
|
||||
#: index.docbook:11
|
||||
msgid ""
|
||||
"Use an <literal>Address</literal> class to encapsulate <literal>street</"
|
||||
"literal>, <literal>suburb</literal>, <literal>state</literal>, "
|
||||
"<literal>postcode</literal>. This encourages code reuse and simplifies "
|
||||
"refactoring."
|
||||
msgstr ""
|
||||
"Usa una clase <literal>Dirección</literal> para encapsular <literal>calle</"
|
||||
"literal>, <literal>distrito</literal>, <literal>estado</literal>, "
|
||||
"<literal>código postal</literal>. Esto alienta la reutilización de código y "
|
||||
"simplifica el refactoring."
|
||||
"Usa una clase <literal>Dirección</literal> para encapsular "
|
||||
"<literal>calle</literal>, <literal>distrito</literal>, <literal>estado</"
|
||||
"literal>, <literal>código postal</literal>. Esto alienta la "
|
||||
"reutilización de código y simplifica el refactoring."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:19
|
||||
#, no-c-format
|
||||
#: index.docbook:19
|
||||
msgid "Declare identifier properties on persistent classes."
|
||||
msgstr "Declara las propiedades identificadoras en clases persistentes."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:21
|
||||
#, no-c-format
|
||||
#: index.docbook:21
|
||||
msgid ""
|
||||
"Hibernate makes identifier properties optional. There are all sorts of "
|
||||
"reasons why you should use them. We recommend that identifiers be "
|
||||
|
@ -56,17 +41,14 @@ msgid ""
|
|||
msgstr ""
|
||||
"Hibernate hace opcionales las propiedades identificadoras. Existen todo tipo "
|
||||
"de razones por las que debes usarlas. Recomendamos que los identificadores "
|
||||
"sean 'sintéticos' (generados, sin ningún significado de negocio)."
|
||||
"sean 'sintéticos' (generados, sin ningún significado de "
|
||||
"negocio)."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:29
|
||||
#, no-c-format
|
||||
#: index.docbook:29
|
||||
msgid "Identify natural keys."
|
||||
msgstr "Identifica las claves naturales."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:31
|
||||
#, no-c-format
|
||||
#: index.docbook:31
|
||||
msgid ""
|
||||
"Identify natural keys for all entities, and map them using <literal><"
|
||||
"natural-id></literal>. Implement <literal>equals()</literal> and "
|
||||
|
@ -78,102 +60,79 @@ msgstr ""
|
|||
"literal> y <literal>hashCode()</literal> para comparar las propiedades que "
|
||||
"componen la clave natural."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:39
|
||||
#, no-c-format
|
||||
#: index.docbook:39
|
||||
msgid "Place each class mapping in its own file."
|
||||
msgstr "Coloca cada mapeo de clase en su propio fichero."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:41
|
||||
#, no-c-format
|
||||
#: index.docbook:41
|
||||
msgid ""
|
||||
"Don't use a single monolithic mapping document. Map <literal>com.eg.Foo</"
|
||||
"literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes "
|
||||
"particularly good sense in a team environment."
|
||||
msgstr ""
|
||||
"No uses un solo documento monolítico de mapeo. Mapea <literal>com.eg.Foo</"
|
||||
"literal> en el fichero <literal>com/eg/Foo.hbm.xml</literal>. Esto tiene "
|
||||
"sentido particularmente en un ambiente de equipo."
|
||||
"No uses un solo documento monolítico de mapeo. Mapea <literal>com.eg."
|
||||
"Foo</literal> en el fichero <literal>com/eg/Foo.hbm.xml</literal>. Esto "
|
||||
"tiene sentido particularmente en un ambiente de equipo."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:49
|
||||
#, no-c-format
|
||||
#: index.docbook:49
|
||||
msgid "Load mappings as resources."
|
||||
msgstr "Carga los mapeos como recursos."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:51
|
||||
#, no-c-format
|
||||
#: index.docbook:51
|
||||
msgid "Deploy the mappings along with the classes they map."
|
||||
msgstr "Despliega los mapeos junto a las clases que mapean."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:57
|
||||
#, no-c-format
|
||||
#: index.docbook:57
|
||||
msgid "Consider externalising query strings."
|
||||
msgstr "Considera externalizar las cadenas de consulta."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:59
|
||||
#, no-c-format
|
||||
#: index.docbook:59
|
||||
msgid ""
|
||||
"This is a good practice if your queries call non-ANSI-standard SQL "
|
||||
"functions. Externalising the query strings to mapping files will make the "
|
||||
"application more portable."
|
||||
msgstr ""
|
||||
"Esta es una buena práctica si tus consultas llaman a funciones SQL que no "
|
||||
"son del estándar ANSI. Externalizar las cadenas de consulta a ficheros de "
|
||||
"mapeo hará la aplicación más portable."
|
||||
"Esta es una buena práctica si tus consultas llaman a funciones SQL "
|
||||
"que no son del estándar ANSI. Externalizar las cadenas de consulta a "
|
||||
"ficheros de mapeo hará la aplicación más portable."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:67
|
||||
#, no-c-format
|
||||
#: index.docbook:67
|
||||
msgid "Use bind variables."
|
||||
msgstr "Usa variables de ligado."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:69
|
||||
#, no-c-format
|
||||
#: index.docbook:69
|
||||
msgid ""
|
||||
"As in JDBC, always replace non-constant values by \"?\". Never use string "
|
||||
"manipulation to bind a non-constant value in a query! Even better, consider "
|
||||
"using named parameters in queries."
|
||||
msgstr ""
|
||||
"Igual que en JDBC, siempre remplaza valores no constantes con \"?\". ¡Nunca "
|
||||
"uses manipulación de cadenas para ligar un valor no constante en una "
|
||||
"consulta! Incluso mejor, considera usar parámetros con nombre en las "
|
||||
"consultas."
|
||||
"Igual que en JDBC, siempre remplaza valores no constantes con \"?\". ¡"
|
||||
"Nunca uses manipulación de cadenas para ligar un valor no constante "
|
||||
"en una consulta! Incluso mejor, considera usar parámetros con nombre "
|
||||
"en las consultas."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:77
|
||||
#, no-c-format
|
||||
#: index.docbook:77
|
||||
msgid "Don't manage your own JDBC connections."
|
||||
msgstr "No manejes tus propias conexiones JDBC."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:79
|
||||
#, no-c-format
|
||||
#: index.docbook:79
|
||||
msgid ""
|
||||
"Hibernate lets the application manage JDBC connections. This approach should "
|
||||
"be considered a last-resort. If you can't use the built-in connections "
|
||||
"providers, consider providing your own implementation of <literal>org."
|
||||
"hibernate.connection.ConnectionProvider</literal>."
|
||||
msgstr ""
|
||||
"Hibernate deja a la aplicación administre las conexiones JDBC. Este enfoque "
|
||||
"debe considerarse como último recurso. Si no puedes usar los provedores de "
|
||||
"conexión prefabricados, considera prover tu propia implementación de "
|
||||
"<literal>org.hibernate.connection.ConnectionProvider</literal>."
|
||||
"Hibernate deja a la aplicación administre las conexiones JDBC. Este "
|
||||
"enfoque debe considerarse como último recurso. Si no puedes usar los "
|
||||
"provedores de conexión prefabricados, considera prover tu propia "
|
||||
"implementación de <literal>org.hibernate.connection."
|
||||
"ConnectionProvider</literal>."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:87
|
||||
#, no-c-format
|
||||
#: index.docbook:87
|
||||
msgid "Consider using a custom type."
|
||||
msgstr "Considera usar un tipo personalizado."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:89
|
||||
#, no-c-format
|
||||
#: index.docbook:89
|
||||
msgid ""
|
||||
"Suppose you have a Java type, say from some library, that needs to be "
|
||||
"persisted but doesn't provide the accessors needed to map it as a component. "
|
||||
|
@ -181,21 +140,18 @@ msgid ""
|
|||
"This approach frees the application code from implementing transformations "
|
||||
"to / from a Hibernate type."
|
||||
msgstr ""
|
||||
"Supón que tienes un tipo Java, digamos de alguna biblioteca, que necesita "
|
||||
"hacerse persistente pero no provee los métodos de acceso necesarios para "
|
||||
"mapearlo como un componente. Debes considerar implementar <literal>org."
|
||||
"hibernate.UserType</literal>. Este enfoque libera al código de aplicación de "
|
||||
"implementar transformaciones a / desde un tipo Hibernate."
|
||||
"Supón que tienes un tipo Java, digamos de alguna biblioteca, que "
|
||||
"necesita hacerse persistente pero no provee los métodos de acceso "
|
||||
"necesarios para mapearlo como un componente. Debes considerar implementar "
|
||||
"<literal>org.hibernate.UserType</literal>. Este enfoque libera al có"
|
||||
"digo de aplicación de implementar transformaciones a / desde un tipo "
|
||||
"Hibernate."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:98
|
||||
#, no-c-format
|
||||
#: index.docbook:98
|
||||
msgid "Use hand-coded JDBC in bottlenecks."
|
||||
msgstr "Usa JDBC codificado a mano en cuellos de botella."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:100
|
||||
#, no-c-format
|
||||
#: index.docbook:100
|
||||
msgid ""
|
||||
"In performance-critical areas of the system, some kinds of operations might "
|
||||
"benefit from direct JDBC. But please, wait until you <emphasis>know</"
|
||||
|
@ -205,23 +161,20 @@ msgid ""
|
|||
"connection. That way you can still use the same transaction strategy and "
|
||||
"underlying connection provider."
|
||||
msgstr ""
|
||||
"En áreas del sistema de rendimiento crítico, algunos tipos de operaciones "
|
||||
"podrían beneficiarse del JDBC directo. Pero por favor, espero hasta que "
|
||||
"<emphasis>sepas</emphasis> que algo es un cuello de botella. Y no asumas que "
|
||||
"el JDBC directo es necesariamente más rápido. Si necesitas usar JDBC "
|
||||
"directo, podría ser valioso abrir una <literal>Session</literal> de "
|
||||
"Hibernate y usar esa conexión JDBC. De esta forma puedes usar aún la misma "
|
||||
"estrategia de transacción y el mismo proveedor de conexiones subyacente."
|
||||
"En áreas del sistema de rendimiento crítico, algunos tipos de "
|
||||
"operaciones podrían beneficiarse del JDBC directo. Pero por favor, "
|
||||
"espero hasta que <emphasis>sepas</emphasis> que algo es un cuello de "
|
||||
"botella. Y no asumas que el JDBC directo es necesariamente más "
|
||||
"rápido. Si necesitas usar JDBC directo, podría ser valioso "
|
||||
"abrir una <literal>Session</literal> de Hibernate y usar esa conexión "
|
||||
"JDBC. De esta forma puedes usar aún la misma estrategia de "
|
||||
"transacción y el mismo proveedor de conexiones subyacente."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:110
|
||||
#, no-c-format
|
||||
#: index.docbook:110
|
||||
msgid "Understand <literal>Session</literal> flushing."
|
||||
msgstr "Comprende la limpieza (flushing) de <literal>Session</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:112
|
||||
#, no-c-format
|
||||
#: index.docbook:112
|
||||
msgid ""
|
||||
"From time to time the Session synchronizes its persistent state with the "
|
||||
"database. Performance will be affected if this process occurs too often. You "
|
||||
|
@ -229,21 +182,18 @@ msgid ""
|
|||
"or even by changing the order of queries and other operations within a "
|
||||
"particular transaction."
|
||||
msgstr ""
|
||||
"De vez en cuando la sesión sincroniza su estado persistente con la base de "
|
||||
"datos. El rendimiento se verá afectado si este proceso ocurre demasiado "
|
||||
"frecuentemente. A veces puedes minimizar limpieza innecesaria deshabilitando "
|
||||
"la limpieza automática o incluso cambiando el orden de las consultas u otras "
|
||||
"operaciones en una transacción en particular."
|
||||
"De vez en cuando la sesión sincroniza su estado persistente con la "
|
||||
"base de datos. El rendimiento se verá afectado si este proceso ocurre "
|
||||
"demasiado frecuentemente. A veces puedes minimizar limpieza innecesaria "
|
||||
"deshabilitando la limpieza automática o incluso cambiando el orden de "
|
||||
"las consultas u otras operaciones en una transacción en particular."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:121
|
||||
#, no-c-format
|
||||
#: index.docbook:121
|
||||
msgid "In a three tiered architecture, consider using detached objects."
|
||||
msgstr "En una aplicación en tres gradas, considera usar objetos separados."
|
||||
msgstr ""
|
||||
"En una aplicación en tres gradas, considera usar objetos separados."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:123
|
||||
#, no-c-format
|
||||
#: index.docbook:123
|
||||
msgid ""
|
||||
"When using a servlet / session bean architecture, you could pass persistent "
|
||||
"objects loaded in the session bean to and from the servlet / JSP layer. Use "
|
||||
|
@ -251,23 +201,19 @@ msgid ""
|
|||
"literal> or <literal>Session.saveOrUpdate()</literal> to synchronize objects "
|
||||
"with the database."
|
||||
msgstr ""
|
||||
"Al usar una arquitectura de servlet / sesión, puedes pasar objetos "
|
||||
"persistentes en el bean de sesión hacia y desde la capa de servlet / JSP. "
|
||||
"Usa una sesión nueva para atender el servicio de cada petición. Usa "
|
||||
"<literal>Session.merge()</literal> o <literal>Session.saveOrUpdate()</"
|
||||
"literal> para sincronizar los objetos con la base de datos."
|
||||
"Al usar una arquitectura de servlet / sesión, puedes pasar objetos "
|
||||
"persistentes en el bean de sesión hacia y desde la capa de servlet / "
|
||||
"JSP. Usa una sesión nueva para atender el servicio de cada "
|
||||
"petición. Usa <literal>Session.merge()</literal> o <literal>Session."
|
||||
"saveOrUpdate()</literal> para sincronizar los objetos con la base de datos."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:132
|
||||
#, no-c-format
|
||||
#: index.docbook:132
|
||||
msgid "In a two tiered architecture, consider using long persistence contexts."
|
||||
msgstr ""
|
||||
"En una arquitectura en dos gradas, considera usar contexto de persistencia "
|
||||
"largos."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:134
|
||||
#, no-c-format
|
||||
#: index.docbook:134
|
||||
msgid ""
|
||||
"Database Transactions have to be as short as possible for best scalability. "
|
||||
"However, it is often neccessary to implement long running "
|
||||
|
@ -284,27 +230,25 @@ msgid ""
|
|||
msgstr ""
|
||||
"Las transacciones de base de datos tienen que ser tan cortas como sea "
|
||||
"posible. Sin embargo, frecuentemente es necesario implementar "
|
||||
"<emphasis>transacciones de aplicación</emphasis> ejecutándose en largo, una "
|
||||
"sola unidad de trabajo desde el punto de vista de un usuario. Una "
|
||||
"transacción de aplicación puede abarcar muchos ciclos petición/respuesta del "
|
||||
"cliente. Es común usar objetos separados para implementar transacciones de "
|
||||
"aplicación. Una alternativa, extremadamente apropiada en arquitecturas en "
|
||||
"dos gradas, es mantener un solo contacto de persistencia abierto (sesión) "
|
||||
"para todo el ciclo de vida de la transacción de aplicación y simplemente "
|
||||
"desconectar de la conexión JDBC al final de cada petición, y reconectar al "
|
||||
"comienzo de la petición subsecuente. Nunca compartas una única sesión a "
|
||||
"través de más de una transacción de aplicación, o estarás trabajando con "
|
||||
"<emphasis>transacciones de aplicación</emphasis> ejecutándose "
|
||||
"en largo, una sola unidad de trabajo desde el punto de vista de un usuario. "
|
||||
"Una transacción de aplicación puede abarcar muchos ciclos "
|
||||
"petición/respuesta del cliente. Es común usar objetos "
|
||||
"separados para implementar transacciones de aplicación. Una "
|
||||
"alternativa, extremadamente apropiada en arquitecturas en dos gradas, es "
|
||||
"mantener un solo contacto de persistencia abierto (sesión) para todo "
|
||||
"el ciclo de vida de la transacción de aplicación y simplemente "
|
||||
"desconectar de la conexión JDBC al final de cada petición, y "
|
||||
"reconectar al comienzo de la petición subsecuente. Nunca compartas "
|
||||
"una única sesión a través de más de una "
|
||||
"transacción de aplicación, o estarás trabajando con "
|
||||
"datos añejos."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:148
|
||||
#, no-c-format
|
||||
#: index.docbook:148
|
||||
msgid "Don't treat exceptions as recoverable."
|
||||
msgstr "No trates la excepciones como recuperables."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:150
|
||||
#, no-c-format
|
||||
#: index.docbook:150
|
||||
msgid ""
|
||||
"This is more of a necessary practice than a \"best\" practice. When an "
|
||||
"exception occurs, roll back the <literal>Transaction</literal> and close the "
|
||||
|
@ -314,23 +258,20 @@ msgid ""
|
|||
"instance with the given identifier exists on the database; use "
|
||||
"<literal>Session.get()</literal> or a query instead."
|
||||
msgstr ""
|
||||
"Esto es más una práctica necesaria que una \"mejor\" práctica. Cuando ocurra "
|
||||
"una excepción, deshaz (rollback) la <literal>Transaction</literal> y cierra "
|
||||
"la <literal>Session</literal>. Si no lo haces, Hibernate no puede garantizar "
|
||||
"que el estado en memoria representa con exactitud el estado persistente. "
|
||||
"Como un caso especial de esto, no uses <literal>Session.load()</literal> "
|
||||
"para determinar si una instancia con el identificador dado existe en la base "
|
||||
"de datos. En cambio, usa <literal>Session.get()</literal> o una consulta."
|
||||
"Esto es más una práctica necesaria que una \"mejor\" prá"
|
||||
"ctica. Cuando ocurra una excepción, deshaz (rollback) la "
|
||||
"<literal>Transaction</literal> y cierra la <literal>Session</literal>. Si no "
|
||||
"lo haces, Hibernate no puede garantizar que el estado en memoria representa "
|
||||
"con exactitud el estado persistente. Como un caso especial de esto, no uses "
|
||||
"<literal>Session.load()</literal> para determinar si una instancia con el "
|
||||
"identificador dado existe en la base de datos. En cambio, usa "
|
||||
"<literal>Session.get()</literal> o una consulta."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:160
|
||||
#, no-c-format
|
||||
#: index.docbook:160
|
||||
msgid "Prefer lazy fetching for associations."
|
||||
msgstr "Prefiere la recuperación perezosa para las asociaciones."
|
||||
msgstr "Prefiere la recuperación perezosa para las asociaciones."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:162
|
||||
#, no-c-format
|
||||
#: index.docbook:162
|
||||
msgid ""
|
||||
"Use eager fetching sparingly. Use proxies and lazy collections for most "
|
||||
"associations to classes that are not likely to be completely held in the "
|
||||
|
@ -340,29 +281,26 @@ msgid ""
|
|||
"appropriate to a particular use case, use a query with a <literal>left join "
|
||||
"fetch</literal>."
|
||||
msgstr ""
|
||||
"Usa escasamente la recuperación temprana. Usa proxies y colecciones "
|
||||
"perezosas para la mayoría de asociaciones a clases probablemente no estén "
|
||||
"mantenidas en el caché de segundo nivel. Para las asociaciones a clases en "
|
||||
"caché, donde hay una probabilidad de acceso a caché extremadamente alta, "
|
||||
"deshabilita explícitamente la recuperación temprana usando <literal>lazy="
|
||||
"\"false\"</literal>. Cuando sea apropiada la recuperación por unión (join "
|
||||
"fetching) para un caso de uso en particular, usa una consulta con un "
|
||||
"<literal>left join fetch</literal>."
|
||||
"Usa escasamente la recuperación temprana. Usa proxies y colecciones "
|
||||
"perezosas para la mayoría de asociaciones a clases probablemente no "
|
||||
"estén mantenidas en el caché de segundo nivel. Para las "
|
||||
"asociaciones a clases en caché, donde hay una probabilidad de acceso "
|
||||
"a caché extremadamente alta, deshabilita explícitamente la "
|
||||
"recuperación temprana usando <literal>lazy=\"false\"</literal>. "
|
||||
"Cuando sea apropiada la recuperación por unión (join fetching) "
|
||||
"para un caso de uso en particular, usa una consulta con un <literal>left "
|
||||
"join fetch</literal>."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:172
|
||||
#, no-c-format
|
||||
#: index.docbook:172
|
||||
msgid ""
|
||||
"Use the <emphasis>open session in view</emphasis> pattern, or a disciplined "
|
||||
"<emphasis>assembly phase</emphasis> to avoid problems with unfetched data."
|
||||
msgstr ""
|
||||
"Usa el patrón <emphasis>sesión abierta en vista</emphasis>, o una "
|
||||
"<emphasis>fase de ensamblado</emphasis> disciplinada para evitar problemas "
|
||||
"con datos no recuperados."
|
||||
"Usa el patrón <emphasis>sesión abierta en vista</emphasis>, o "
|
||||
"una <emphasis>fase de ensamblado</emphasis> disciplinada para evitar "
|
||||
"problemas con datos no recuperados."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:177
|
||||
#, no-c-format
|
||||
#: index.docbook:177
|
||||
msgid ""
|
||||
"Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
|
||||
"Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual "
|
||||
|
@ -379,28 +317,25 @@ msgid ""
|
|||
msgstr ""
|
||||
"Hibernate liberal al desarrollador de escribir <emphasis>Objetos de "
|
||||
"Transferencia de Datos (Data Transfer Objects)</emphasis> (DTO). En una "
|
||||
"arquitectura tradicional de EJB, los DTOs tienen un propósito doble: "
|
||||
"arquitectura tradicional de EJB, los DTOs tienen un propósito doble: "
|
||||
"primero, atacan el problema que los beans de entidad no son serializables. "
|
||||
"Segundo, definen implícitamente una fase de ensamblado cuando se recuperan y "
|
||||
"se forman (marshalling) todos los datos a usar por la vista en los DTOs "
|
||||
"antes de devolver el control a la grada de presentación. Hibernate elimina "
|
||||
"el primer propósito. Sin embargo, aún necesitas una fase de ensamblado "
|
||||
"(piensa en tus métodos de negocio como si tuviesen un contrato estricto con "
|
||||
"la grada de presentación sobre qué datos están disponibles en los objetos "
|
||||
"separados) a menos que estés preparado para tener el contexto de "
|
||||
"persistencia (la sesión) abierto a través del proceso de renderización de la "
|
||||
"vista. ¡Esta no es una limitación de Hibernate! Es un requerimiento "
|
||||
"fundamental de acceso seguro a datos transaccionales."
|
||||
"Segundo, definen implícitamente una fase de ensamblado cuando se "
|
||||
"recuperan y se forman (marshalling) todos los datos a usar por la vista en "
|
||||
"los DTOs antes de devolver el control a la grada de presentación. "
|
||||
"Hibernate elimina el primer propósito. Sin embargo, aún "
|
||||
"necesitas una fase de ensamblado (piensa en tus métodos de negocio "
|
||||
"como si tuviesen un contrato estricto con la grada de presentación "
|
||||
"sobre qué datos están disponibles en los objetos separados) a "
|
||||
"menos que estés preparado para tener el contexto de persistencia (la "
|
||||
"sesión) abierto a través del proceso de renderización "
|
||||
"de la vista. ¡Esta no es una limitación de Hibernate! Es un "
|
||||
"requerimiento fundamental de acceso seguro a datos transaccionales."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:191
|
||||
#, no-c-format
|
||||
#: index.docbook:191
|
||||
msgid "Consider abstracting your business logic from Hibernate."
|
||||
msgstr "Considera abstraer tu lógica de negocio de Hibernate"
|
||||
msgstr "Considera abstraer tu lógica de negocio de Hibernate"
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:193
|
||||
#, no-c-format
|
||||
#: index.docbook:193
|
||||
msgid ""
|
||||
"Hide (Hibernate) data-access code behind an interface. Combine the "
|
||||
"<emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> "
|
||||
|
@ -409,23 +344,19 @@ msgid ""
|
|||
"intended for \"sufficiently large\" applications; it is not appropriate for "
|
||||
"an application with five tables!)"
|
||||
msgstr ""
|
||||
"Oculta el código de acceso a datos (Hibernate) detrás de una interface. "
|
||||
"Combina los patrones <emphasis>DAO</emphasis> y <emphasis>Sesión de Hebra "
|
||||
"Local</emphasis>. Incluso puedes tener algunas clases hechas persistentes "
|
||||
"por JDBC escrito a mano, asociadas a Hibernate por medio de un "
|
||||
"<literal>UserType</literal>. (Este consejo está pensado para aplicaciones "
|
||||
"\"suficientemente grandes\"; ¡no es apropiado para una aplicación con cinco "
|
||||
"tablas!)"
|
||||
"Oculta el código de acceso a datos (Hibernate) detrás de una "
|
||||
"interface. Combina los patrones <emphasis>DAO</emphasis> y "
|
||||
"<emphasis>Sesión de Hebra Local</emphasis>. Incluso puedes tener "
|
||||
"algunas clases hechas persistentes por JDBC escrito a mano, asociadas a "
|
||||
"Hibernate por medio de un <literal>UserType</literal>. (Este consejo "
|
||||
"está pensado para aplicaciones \"suficientemente grandes\"; ¡"
|
||||
"no es apropiado para una aplicación con cinco tablas!)"
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:203
|
||||
#, no-c-format
|
||||
#: index.docbook:203
|
||||
msgid "Don't use exotic association mappings."
|
||||
msgstr "No uses mapeos de asociación exóticos."
|
||||
msgstr "No uses mapeos de asociación exóticos."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:205
|
||||
#, no-c-format
|
||||
#: index.docbook:205
|
||||
msgid ""
|
||||
"Good usecases for a real many-to-many associations are rare. Most of the "
|
||||
"time you need additional information stored in the \"link table\". In this "
|
||||
|
@ -435,26 +366,29 @@ msgid ""
|
|||
"style and ask yourself if it is really neccessary."
|
||||
msgstr ""
|
||||
"Son raros los casos de uso de asociaciones reales muchos-a-muchos. La mayor "
|
||||
"parte del tiempo necesitas información adicional almacenada en una \"tabla "
|
||||
"de enlace\". En este caso, es mucho mejor usar dos asociaciones uno-a-muchos "
|
||||
"a una clase de enlace intermedia. De hecho, pensamos que la mayoría de "
|
||||
"asociaciones son uno-a-muchos y muchos-a-uno, debes ser cuidadoso al usr "
|
||||
"cualquier otro estilo de asociación y preguntarte si es realmente necesario."
|
||||
"parte del tiempo necesitas información adicional almacenada en una "
|
||||
"\"tabla de enlace\". En este caso, es mucho mejor usar dos asociaciones uno-"
|
||||
"a-muchos a una clase de enlace intermedia. De hecho, pensamos que la "
|
||||
"mayoría de asociaciones son uno-a-muchos y muchos-a-uno, debes ser "
|
||||
"cuidadoso al usr cualquier otro estilo de asociación y preguntarte si "
|
||||
"es realmente necesario."
|
||||
|
||||
#. Tag: term
|
||||
#: best_practices.xml:215
|
||||
#, no-c-format
|
||||
#: index.docbook:215
|
||||
msgid "Prefer bidirectional associations."
|
||||
msgstr "Prefiere las asociaciones bidireccionales."
|
||||
|
||||
#. Tag: para
|
||||
#: best_practices.xml:217
|
||||
#, no-c-format
|
||||
#: index.docbook:217
|
||||
msgid ""
|
||||
"Unidirectional associations are more difficult to query. In a large "
|
||||
"application, almost all associations must be navigable in both directions in "
|
||||
"queries."
|
||||
msgstr ""
|
||||
"Las asociaciones unidireccionales son más difíciles de consultar. En una "
|
||||
"aplicación grande, casi todas las asociaciones deben ser navegables en ambas "
|
||||
"direcciones en consultas."
|
||||
"Las asociaciones unidireccionales son más difíciles de "
|
||||
"consultar. En una aplicación grande, casi todas las asociaciones "
|
||||
"deben ser navegables en ambas direcciones en consultas."
|
||||
|
||||
msgid "ROLES_OF_TRANSLATORS"
|
||||
msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
msgid "CREDIT_FOR_TRANSLATORS"
|
||||
msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,40 +1,28 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2007-10-25 07:47+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: component_mapping.xml:5
|
||||
#, no-c-format
|
||||
#: index.docbook:5
|
||||
msgid "Component Mapping"
|
||||
msgstr "Mapeo de Componentes"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:7
|
||||
#, no-c-format
|
||||
#: index.docbook:7
|
||||
msgid ""
|
||||
"The notion of a <emphasis>component</emphasis> is re-used in several "
|
||||
"different contexts, for different purposes, throughout Hibernate."
|
||||
msgstr ""
|
||||
"La noción de un <emphasis>componente</emphasis> es reusada en muchos "
|
||||
"contextos diferentes, para propósitos diferentes, a través de Hibernate."
|
||||
"La noción de un <emphasis>componente</emphasis> es reusada en muchos "
|
||||
"contextos diferentes, para propósitos diferentes, a través de "
|
||||
"Hibernate."
|
||||
|
||||
#. Tag: title
|
||||
#: component_mapping.xml:13
|
||||
#, no-c-format
|
||||
#: index.docbook:13
|
||||
msgid "Dependent objects"
|
||||
msgstr "Objetos dependientes"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:15
|
||||
#, no-c-format
|
||||
#: index.docbook:15
|
||||
msgid ""
|
||||
"A component is a contained object that is persisted as a value type, not an "
|
||||
"entity reference. The term \"component\" refers to the object-oriented "
|
||||
|
@ -42,13 +30,12 @@ msgid ""
|
|||
"you might model a person like this:"
|
||||
msgstr ""
|
||||
"Un componente es un objeto contenido que es persistido como un tipo de "
|
||||
"valor, no una referencia de entidad. El término \"componente\" hace "
|
||||
"referencia a la noción orientada a objetos de composición (no a componentes "
|
||||
"a nivel de arquitectura). Por ejemplo, podrías modelar una persona como:"
|
||||
"valor, no una referencia de entidad. El término \"componente\" hace "
|
||||
"referencia a la noción orientada a objetos de composición (no "
|
||||
"a componentes a nivel de arquitectura). Por ejemplo, podrías modelar "
|
||||
"una persona como:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:21
|
||||
#, no-c-format
|
||||
#: index.docbook:21
|
||||
msgid ""
|
||||
"<![CDATA[public class Person {\n"
|
||||
" private java.util.Date birthday;\n"
|
||||
|
@ -76,10 +63,33 @@ msgid ""
|
|||
" ......\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[public class Person {\n"
|
||||
" private java.util.Date birthday;\n"
|
||||
" private Name name;\n"
|
||||
" private String key;\n"
|
||||
" public String getKey() {\n"
|
||||
" return key;\n"
|
||||
" }\n"
|
||||
" private void setKey(String key) {\n"
|
||||
" this.key=key;\n"
|
||||
" }\n"
|
||||
" public java.util.Date getBirthday() {\n"
|
||||
" return birthday;\n"
|
||||
" }\n"
|
||||
" public void setBirthday(java.util.Date birthday) {\n"
|
||||
" this.birthday = birthday;\n"
|
||||
" }\n"
|
||||
" public Name getName() {\n"
|
||||
" return name;\n"
|
||||
" }\n"
|
||||
" public void setName(Name name) {\n"
|
||||
" this.name = name;\n"
|
||||
" }\n"
|
||||
" ......\n"
|
||||
" ......\n"
|
||||
"}]]>"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:23
|
||||
#, no-c-format
|
||||
#: index.docbook:23
|
||||
msgid ""
|
||||
"<![CDATA[public class Name {\n"
|
||||
" char initial;\n"
|
||||
|
@ -105,10 +115,31 @@ msgid ""
|
|||
" }\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[public class Name {\n"
|
||||
" char initial;\n"
|
||||
" String first;\n"
|
||||
" String last;\n"
|
||||
" public String getFirst() {\n"
|
||||
" return first;\n"
|
||||
" }\n"
|
||||
" void setFirst(String first) {\n"
|
||||
" this.first = first;\n"
|
||||
" }\n"
|
||||
" public String getLast() {\n"
|
||||
" return last;\n"
|
||||
" }\n"
|
||||
" void setLast(String last) {\n"
|
||||
" this.last = last;\n"
|
||||
" }\n"
|
||||
" public char getInitial() {\n"
|
||||
" return initial;\n"
|
||||
" }\n"
|
||||
" void setInitial(char initial) {\n"
|
||||
" this.initial = initial;\n"
|
||||
" }\n"
|
||||
"}]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:25
|
||||
#, no-c-format
|
||||
#: index.docbook:25
|
||||
msgid ""
|
||||
"Now <literal>Name</literal> may be persisted as a component of "
|
||||
"<literal>Person</literal>. Notice that <literal>Name</literal> defines "
|
||||
|
@ -117,18 +148,14 @@ msgid ""
|
|||
msgstr ""
|
||||
"Ahora <literal>Name</literal> puede ser persistido como un componente de "
|
||||
"<literal>Person</literal>. Observa que <literal>Name</literal> define "
|
||||
"métodos getter y setter para sus propiedades persistentes, pero no necesita "
|
||||
"declarar ninguna interface ni propiedades identificadoras."
|
||||
"métodos getter y setter para sus propiedades persistentes, pero no "
|
||||
"necesita declarar ninguna interface ni propiedades identificadoras."
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:32
|
||||
#, no-c-format
|
||||
#: index.docbook:32
|
||||
msgid "Our Hibernate mapping would look like:"
|
||||
msgstr "Nuestro mapeo de Hibernate se vería así:"
|
||||
msgstr "Nuestro mapeo de Hibernate se vería así:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:36
|
||||
#, no-c-format
|
||||
#: index.docbook:36
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
|
||||
" <id name=\"Key\" column=\"pid\" type=\"string\">\n"
|
||||
|
@ -143,22 +170,30 @@ msgid ""
|
|||
" </component>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
|
||||
" <id name=\"Key\" column=\"pid\" type=\"string\">\n"
|
||||
" <generator class=\"uuid.hex\"/>\n"
|
||||
" </id>\n"
|
||||
" <property name=\"birthday\" type=\"date\"/>\n"
|
||||
" <component name=\"Name\" class=\"eg.Name\"> <!-- class attribute "
|
||||
"optional -->\n"
|
||||
" <property name=\"initial\"/>\n"
|
||||
" <property name=\"first\"/>\n"
|
||||
" <property name=\"last\"/>\n"
|
||||
" </component>\n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:38
|
||||
#, no-c-format
|
||||
#: index.docbook:38
|
||||
msgid ""
|
||||
"The person table would have the columns <literal>pid</literal>, "
|
||||
"<literal>birthday</literal>, <literal>initial</literal>, <literal>first</"
|
||||
"literal> and <literal>last</literal>."
|
||||
msgstr ""
|
||||
"La tabla person tendría las columnas <literal>pid</literal>, "
|
||||
"La tabla person tendría las columnas <literal>pid</literal>, "
|
||||
"<literal>birthday</literal>, <literal>initial</literal>, <literal>first</"
|
||||
"literal> y <literal>last</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:46
|
||||
#, no-c-format
|
||||
#: index.docbook:46
|
||||
msgid ""
|
||||
"Like all value types, components do not support shared references. In other "
|
||||
"words, two persons could have the same name, but the two person objects "
|
||||
|
@ -170,16 +205,14 @@ msgid ""
|
|||
msgstr ""
|
||||
"Como todos los tipos de valor, los componentes no soportan referencias "
|
||||
"compartidas. En otras palabras, dos personas pueden tener el mismo nombre, "
|
||||
"pero los dos objetos persona contendrían dos objetos nombre independientes, "
|
||||
"sólo \"iguales\" en valor. La semántica de valor nulo de un componente es "
|
||||
"<emphasis>ad hoc</emphasis>. Cuando se recargue el objeto contenedor, "
|
||||
"Hibernate asumirá que si todas las columnas del componente son nulas, el "
|
||||
"componente entero es nulo. Esto debe estar bien para la mayoría de "
|
||||
"propósitos."
|
||||
"pero los dos objetos persona contendrían dos objetos nombre "
|
||||
"independientes, sólo \"iguales\" en valor. La semántica de "
|
||||
"valor nulo de un componente es <emphasis>ad hoc</emphasis>. Cuando se "
|
||||
"recargue el objeto contenedor, Hibernate asumirá que si todas las "
|
||||
"columnas del componente son nulas, el componente entero es nulo. Esto debe "
|
||||
"estar bien para la mayoría de propósitos."
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:55
|
||||
#, no-c-format
|
||||
#: index.docbook:55
|
||||
msgid ""
|
||||
"The properties of a component may be of any Hibernate type (collections, "
|
||||
"many-to-one associations, other components, etc). Nested components should "
|
||||
|
@ -189,12 +222,10 @@ msgstr ""
|
|||
"Las propiedades de un componentes pueden ser de cualquier tipo de Hibernate "
|
||||
"(colecciones, muchos-a-uno, asociaciones, otros componentes, etc). Los "
|
||||
"componentes anidados <emphasis>no</emphasis> deben ser considerados un uso "
|
||||
"exótico. Hibernate está concebido para soportar un modelo de objetos "
|
||||
"granularizado en fino."
|
||||
"exótico. Hibernate está concebido para soportar un modelo de "
|
||||
"objetos granularizado en fino."
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:62
|
||||
#, no-c-format
|
||||
#: index.docbook:62
|
||||
msgid ""
|
||||
"The <literal><component></literal> element allows a <literal><"
|
||||
"parent></literal> subelement that maps a property of the component class "
|
||||
|
@ -204,9 +235,7 @@ msgstr ""
|
|||
"<literal><parent></literal> que mapee una propiedad de la clase del "
|
||||
"componente como una referencia de regreso a la entidad contenedora."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:68
|
||||
#, no-c-format
|
||||
#: index.docbook:68
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
|
||||
" <id name=\"Key\" column=\"pid\" type=\"string\">\n"
|
||||
|
@ -222,30 +251,37 @@ msgid ""
|
|||
" </component>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
|
||||
" <id name=\"Key\" column=\"pid\" type=\"string\">\n"
|
||||
" <generator class=\"uuid.hex\"/>\n"
|
||||
" </id>\n"
|
||||
" <property name=\"birthday\" type=\"date\"/>\n"
|
||||
" <component name=\"Name\" class=\"eg.Name\" unique=\"true\">\n"
|
||||
" <parent name=\"namedPerson\"/> <!-- reference back to the Person --"
|
||||
">\n"
|
||||
" <property name=\"initial\"/>\n"
|
||||
" <property name=\"first\"/>\n"
|
||||
" <property name=\"last\"/>\n"
|
||||
" </component>\n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: component_mapping.xml:73
|
||||
#, no-c-format
|
||||
#: index.docbook:73
|
||||
msgid "Collections of dependent objects"
|
||||
msgstr "Colecciones de objetos dependientes"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:75
|
||||
#, no-c-format
|
||||
#: index.docbook:75
|
||||
msgid ""
|
||||
"Collections of components are supported (eg. an array of type <literal>Name</"
|
||||
"literal>). Declare your component collection by replacing the <literal><"
|
||||
"element></literal> tag with a <literal><composite-element></"
|
||||
"literal> tag."
|
||||
msgstr ""
|
||||
"Las colecciones de componentes están soportadas (por ejemplo, un array de "
|
||||
"tipo <literal>Name</literal>). Declara tu colección de componentes "
|
||||
"remplazando la etiqueta <literal><element></literal> por una etiqueta "
|
||||
"<literal><composite-element></literal>."
|
||||
"Las colecciones de componentes están soportadas (por ejemplo, un "
|
||||
"array de tipo <literal>Name</literal>). Declara tu colección de "
|
||||
"componentes remplazando la etiqueta <literal><element></literal> por "
|
||||
"una etiqueta <literal><composite-element></literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:82
|
||||
#, no-c-format
|
||||
#: index.docbook:82
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
|
||||
" <key column=\"id\"/>\n"
|
||||
|
@ -256,10 +292,16 @@ msgid ""
|
|||
" </composite-element>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
|
||||
" <key column=\"id\"/>\n"
|
||||
" <composite-element class=\"eg.Name\"> <!-- class attribute required -->\n"
|
||||
" <property name=\"initial\"/>\n"
|
||||
" <property name=\"first\"/>\n"
|
||||
" <property name=\"last\"/>\n"
|
||||
" </composite-element>\n"
|
||||
"</set>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:84
|
||||
#, no-c-format
|
||||
#: index.docbook:84
|
||||
msgid ""
|
||||
"Note: if you define a <literal>Set</literal> of composite elements, it is "
|
||||
"very important to implement <literal>equals()</literal> and <literal>hashCode"
|
||||
|
@ -269,9 +311,7 @@ msgstr ""
|
|||
"importante implementar <literal>equals()</literal> y <literal>hashCode()</"
|
||||
"literal> correctamente."
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:90
|
||||
#, no-c-format
|
||||
#: index.docbook:90
|
||||
msgid ""
|
||||
"Composite elements may contain components but not collections. If your "
|
||||
"composite element itself contains components, use the <literal><nested-"
|
||||
|
@ -285,16 +325,14 @@ msgstr ""
|
|||
"Los elementos compuestos pueden contener componentes pero no colecciones. Si "
|
||||
"tu elemento compuesto contiene a su vez componentes, usa la etiqueta "
|
||||
"<literal><nested-composite-element></literal>. Este es un caso "
|
||||
"bastante exótico - una colección de componentes que a su vez tienen "
|
||||
"componentes. A esta altura debes estar preguntándote si una asociación uno-a-"
|
||||
"muchos es más apropiada. Intenta remodelar el elemento compuesto como una "
|
||||
"entidad - pero observa que aunque el modelo Java es el mismo, el modelo "
|
||||
"relacional y la semántica de persistencia siguen siendo ligeramente "
|
||||
"diferentes."
|
||||
"bastante exótico - una colección de componentes que a su vez "
|
||||
"tienen componentes. A esta altura debes estar preguntándote si una "
|
||||
"asociación uno-a-muchos es más apropiada. Intenta remodelar el "
|
||||
"elemento compuesto como una entidad - pero observa que aunque el modelo Java "
|
||||
"es el mismo, el modelo relacional y la semántica de persistencia "
|
||||
"siguen siendo ligeramente diferentes."
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:102
|
||||
#, no-c-format
|
||||
#: index.docbook:102
|
||||
msgid ""
|
||||
"Please note that a composite element mapping doesn't support null-able "
|
||||
"properties if you're using a <literal><set></literal>. Hibernate has "
|
||||
|
@ -306,17 +344,15 @@ msgid ""
|
|||
"<literal><idbag></literal>."
|
||||
msgstr ""
|
||||
"Por favor observa que un mapeo de elemento compuesto no soporta propiedades "
|
||||
"nulables si estás usando un <literal><set></literal>. Hibernate tiene "
|
||||
"que usar cada columna para identificar un registro al borrar objetos (no hay "
|
||||
"una columna clave primaria separada en la tabla del elemento compuesto), lo "
|
||||
"que es imposible con valores nulos. Tienes que, o bien usar sólo propiedades "
|
||||
"no nulas en un elemento compuesto o elegir un <literal><list></"
|
||||
"literal>, <literal><map></literal>, <literal><bag></literal> o "
|
||||
"<literal><idbag></literal>."
|
||||
"nulables si estás usando un <literal><set></literal>. Hibernate "
|
||||
"tiene que usar cada columna para identificar un registro al borrar objetos "
|
||||
"(no hay una columna clave primaria separada en la tabla del elemento "
|
||||
"compuesto), lo que es imposible con valores nulos. Tienes que, o bien usar "
|
||||
"sólo propiedades no nulas en un elemento compuesto o elegir un "
|
||||
"<literal><list></literal>, <literal><map></literal>, "
|
||||
"<literal><bag></literal> o <literal><idbag></literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:113
|
||||
#, no-c-format
|
||||
#: index.docbook:113
|
||||
msgid ""
|
||||
"A special case of a composite element is a composite element with a nested "
|
||||
"<literal><many-to-one></literal> element. A mapping like this allows "
|
||||
|
@ -328,15 +364,14 @@ msgid ""
|
|||
msgstr ""
|
||||
"Un caso especial de un elemento compuesto es un elemento compuesto con un "
|
||||
"elemento anidado <literal><many-to-one></literal>. Un mapeo como este "
|
||||
"te permite mapear columnas extra de una tabla de asociación muchos-a-muchos "
|
||||
"a la clase del elemento compuesto. La siguiente es una asociación muchos-a-"
|
||||
"muchos de <literal>Order</literal> a <literal>Item</literal> donde "
|
||||
"<literal>purchaseDate</literal>, <literal>price</literal> y "
|
||||
"<literal>quantity</literal> son propiedades de la asociación:"
|
||||
"te permite mapear columnas extra de una tabla de asociación muchos-a-"
|
||||
"muchos a la clase del elemento compuesto. La siguiente es una "
|
||||
"asociación muchos-a-muchos de <literal>Order</literal> a "
|
||||
"<literal>Item</literal> donde <literal>purchaseDate</literal>, "
|
||||
"<literal>price</literal> y <literal>quantity</literal> son propiedades de la "
|
||||
"asociación:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:123
|
||||
#, no-c-format
|
||||
#: index.docbook:123
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"eg.Order\" .... >\n"
|
||||
" ....\n"
|
||||
|
@ -352,10 +387,21 @@ msgid ""
|
|||
" </set>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"eg.Order\" .... >\n"
|
||||
" ....\n"
|
||||
" <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
|
||||
" <key column=\"order_id\">\n"
|
||||
" <composite-element class=\"eg.Purchase\">\n"
|
||||
" <property name=\"purchaseDate\"/>\n"
|
||||
" <property name=\"price\"/>\n"
|
||||
" <property name=\"quantity\"/>\n"
|
||||
" <many-to-one name=\"item\" class=\"eg.Item\"/> <!-- class "
|
||||
"attribute is optional -->\n"
|
||||
" </composite-element>\n"
|
||||
" </set>\n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:125
|
||||
#, no-c-format
|
||||
#: index.docbook:125
|
||||
msgid ""
|
||||
"Of course, there can't be a reference to the purchae on the other side, for "
|
||||
"bidirectional association navigation. Remember that components are value "
|
||||
|
@ -364,21 +410,17 @@ msgid ""
|
|||
"referenced by the <literal>Item</literal> at the same time."
|
||||
msgstr ""
|
||||
"Por supuesto, no puede haber una referencia a la compra del otro lado para "
|
||||
"la navegación bidireccional de la asociación. Recuerda que los componentes "
|
||||
"son tipos de valor no permiten referencias compartidas. Una sola "
|
||||
"la navegación bidireccional de la asociación. Recuerda que los "
|
||||
"componentes son tipos de valor no permiten referencias compartidas. Una sola "
|
||||
"<literal>Purchase</literal> puede estar en el conjunto de una "
|
||||
"<literal>Order</literal>, pero no puede ser referenciada por el "
|
||||
"<literal>Item</literal> al mismo tiempo."
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:133
|
||||
#, no-c-format
|
||||
#: index.docbook:133
|
||||
msgid "Even ternary (or quaternary, etc) associations are possible:"
|
||||
msgstr "Incluso son posibles las asociaciones ternarias (o cuaternarias, etc):"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:135
|
||||
#, no-c-format
|
||||
#: index.docbook:135
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"eg.Order\" .... >\n"
|
||||
" ....\n"
|
||||
|
@ -391,26 +433,30 @@ msgid ""
|
|||
" </set>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"eg.Order\" .... >\n"
|
||||
" ....\n"
|
||||
" <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
|
||||
" <key column=\"order_id\">\n"
|
||||
" <composite-element class=\"eg.OrderLine\">\n"
|
||||
" <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/>\n"
|
||||
" <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
|
||||
" </composite-element>\n"
|
||||
" </set>\n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:137
|
||||
#, no-c-format
|
||||
#: index.docbook:137
|
||||
msgid ""
|
||||
"Composite elements may appear in queries using the same syntax as "
|
||||
"associations to other entities."
|
||||
msgstr ""
|
||||
"Los elementos compuestos pueden aparecer en consultas usando la misma "
|
||||
"sintáxis que las asociaciones a otras entidades."
|
||||
"sintáxis que las asociaciones a otras entidades."
|
||||
|
||||
#. Tag: title
|
||||
#: component_mapping.xml:145
|
||||
#, no-c-format
|
||||
#: index.docbook:145
|
||||
msgid "Components as Map indices"
|
||||
msgstr "Componentes como índices de Map"
|
||||
msgstr "Componentes como índices de Map"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:147
|
||||
#, no-c-format
|
||||
#: index.docbook:147
|
||||
msgid ""
|
||||
"The <literal><composite-map-key></literal> element lets you map a "
|
||||
"component class as the key of a <literal>Map</literal>. Make sure you "
|
||||
|
@ -418,19 +464,15 @@ msgid ""
|
|||
"correctly on the component class."
|
||||
msgstr ""
|
||||
"El elemento <literal><composite-map-key></literal> te permite mapear "
|
||||
"una clase componente como la clave de un <literal>Map</literal>. Asegúrate "
|
||||
"que sobrescribes <literal>hashCode()</literal> y <literal>equals()</literal> "
|
||||
"correctamente en la clase componente."
|
||||
"una clase componente como la clave de un <literal>Map</literal>. Asegú"
|
||||
"rate que sobrescribes <literal>hashCode()</literal> y <literal>equals()</"
|
||||
"literal> correctamente en la clase componente."
|
||||
|
||||
#. Tag: title
|
||||
#: component_mapping.xml:156
|
||||
#, no-c-format
|
||||
#: index.docbook:156
|
||||
msgid "Components as composite identifiers"
|
||||
msgstr "Componentes como identificadores compuestos"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:158
|
||||
#, no-c-format
|
||||
#: index.docbook:158
|
||||
msgid ""
|
||||
"You may use a component as an identifier of an entity class. Your component "
|
||||
"class must satisfy certain requirements:"
|
||||
|
@ -438,47 +480,37 @@ msgstr ""
|
|||
"Puedes usar un componente como un identidicador de una clase entidad. Tu "
|
||||
"clase componente debe satisfacer ciertos requerimientos:"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:165
|
||||
#, no-c-format
|
||||
#: index.docbook:165
|
||||
msgid "It must implement <literal>java.io.Serializable</literal>."
|
||||
msgstr "Debe implementar <literal>java.io.Serializable</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:170
|
||||
#, no-c-format
|
||||
#: index.docbook:170
|
||||
msgid ""
|
||||
"It must re-implement <literal>equals()</literal> and <literal>hashCode()</"
|
||||
"literal>, consistently with the database's notion of composite key equality."
|
||||
msgstr ""
|
||||
"Debe re-implementar <literal>equals()</literal> y <literal>hashCode()</"
|
||||
"literal>, consistentemente con la noción de base de datos de igualdad de "
|
||||
"clave compuesta."
|
||||
"literal>, consistentemente con la noción de base de datos de igualdad "
|
||||
"de clave compuesta."
|
||||
|
||||
#. Tag: emphasis
|
||||
#: component_mapping.xml:179
|
||||
#, no-c-format
|
||||
#: index.docbook:179
|
||||
msgid ""
|
||||
"Note: in Hibernate3, the second requirement is not an absolutely hard "
|
||||
"requirement of Hibernate. But do it anyway."
|
||||
msgstr ""
|
||||
"Nota: en Hibernat3, el segundo requerimiento no es absolutamente un "
|
||||
"requerimiento rígido de Hibernate. Pero de todas formas, házlo."
|
||||
"requerimiento rígido de Hibernate. Pero de todas formas, házlo."
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:183
|
||||
#, no-c-format
|
||||
#: index.docbook:183
|
||||
msgid ""
|
||||
"You can't use an <literal>IdentifierGenerator</literal> to generate "
|
||||
"composite keys. Instead the application must assign its own identifiers."
|
||||
msgstr ""
|
||||
"No puedes usar un <literal>IdentifierGenerator</literal> para generar claves "
|
||||
"compuestas. La aplicación debe, en cambio, asignar sus propios "
|
||||
"compuestas. La aplicación debe, en cambio, asignar sus propios "
|
||||
"identificadores."
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:188
|
||||
#, no-c-format
|
||||
#: index.docbook:188
|
||||
msgid ""
|
||||
"Use the <literal><composite-id></literal> tag (with nested "
|
||||
"<literal><key-property></literal> elements) in place of the usual "
|
||||
|
@ -488,13 +520,11 @@ msgid ""
|
|||
msgstr ""
|
||||
"Usa la etiqueta <literal><composite-id></literal> (con elementos "
|
||||
"anidados <literal><key-property></literal>) en lugar de la usual "
|
||||
"declaración <literal><id></literal>. Por ejemplo, la clase "
|
||||
"declaración <literal><id></literal>. Por ejemplo, la clase "
|
||||
"<literal>OrderLine</literal> tiene una clave primaria que depende de la "
|
||||
"clave primaria (compuesta) de <literal>Order</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:196
|
||||
#, no-c-format
|
||||
#: index.docbook:196
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"OrderLine\">\n"
|
||||
" \n"
|
||||
|
@ -515,23 +545,37 @@ msgid ""
|
|||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"OrderLine\">\n"
|
||||
" \n"
|
||||
" <composite-id name=\"id\" class=\"OrderLineId\">\n"
|
||||
" <key-property name=\"lineId\"/>\n"
|
||||
" <key-property name=\"orderId\"/>\n"
|
||||
" <key-property name=\"customerId\"/>\n"
|
||||
" </composite-id>\n"
|
||||
" \n"
|
||||
" <property name=\"name\"/>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"order\" class=\"Order\"\n"
|
||||
" insert=\"false\" update=\"false\">\n"
|
||||
" <column name=\"orderId\"/>\n"
|
||||
" <column name=\"customerId\"/>\n"
|
||||
" </many-to-one>\n"
|
||||
" ....\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:198
|
||||
#, no-c-format
|
||||
#: index.docbook:198
|
||||
msgid ""
|
||||
"Now, any foreign keys referencing the <literal>OrderLine</literal> table are "
|
||||
"also composite. You must declare this in your mappings for other classes. An "
|
||||
"association to <literal>OrderLine</literal> would be mapped like this:"
|
||||
msgstr ""
|
||||
"Ahora, cualquier clave foránea que referencie la tabla de "
|
||||
"<literal>OrderLine</literal> es también compuesta. Debes declarar esto en "
|
||||
"tus mapeos de otras clases. Una asociación a <literal>OrderLine</literal> "
|
||||
"sería mapeado así:"
|
||||
"Ahora, cualquier clave foránea que referencie la tabla de "
|
||||
"<literal>OrderLine</literal> es también compuesta. Debes declarar "
|
||||
"esto en tus mapeos de otras clases. Una asociación a "
|
||||
"<literal>OrderLine</literal> sería mapeado así:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:204
|
||||
#, no-c-format
|
||||
#: index.docbook:204
|
||||
msgid ""
|
||||
"<![CDATA[<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
|
||||
"<!-- the \"class\" attribute is optional, as usual -->\n"
|
||||
|
@ -540,10 +584,14 @@ msgid ""
|
|||
" <column name=\"customerId\"/>\n"
|
||||
"</many-to-one>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
|
||||
"<!-- the \"class\" attribute is optional, as usual -->\n"
|
||||
" <column name=\"lineId\"/>\n"
|
||||
" <column name=\"orderId\"/>\n"
|
||||
" <column name=\"customerId\"/>\n"
|
||||
"</many-to-one>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:206
|
||||
#, no-c-format
|
||||
#: index.docbook:206
|
||||
msgid ""
|
||||
"(Note that the <literal><column></literal> tag is an alternative to "
|
||||
"the <literal>column</literal> attribute everywhere.)"
|
||||
|
@ -551,19 +599,16 @@ msgstr ""
|
|||
"(Nota que la etiqueta <literal><column></literal> es una alternativa "
|
||||
"al atributo <literal>column</literal> en cualquier sitio.)"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:211
|
||||
#, no-c-format
|
||||
#: index.docbook:211
|
||||
msgid ""
|
||||
"A <literal>many-to-many</literal> association to <literal>OrderLine</"
|
||||
"literal> also uses the composite foreign key:"
|
||||
msgstr ""
|
||||
"Una asociación <literal>muchos-a-muchos</literal> a <literal>OrderLine</"
|
||||
"literal> también usa la clave foránea compuesta:"
|
||||
"Una asociación <literal>muchos-a-muchos</literal> a "
|
||||
"<literal>OrderLine</literal> también usa la clave foránea "
|
||||
"compuesta:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:216
|
||||
#, no-c-format
|
||||
#: index.docbook:216
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"undeliveredOrderLines\">\n"
|
||||
" <key column name=\"warehouseId\"/>\n"
|
||||
|
@ -574,20 +619,24 @@ msgid ""
|
|||
" </many-to-many>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"undeliveredOrderLines\">\n"
|
||||
" <key column name=\"warehouseId\"/>\n"
|
||||
" <many-to-many class=\"OrderLine\">\n"
|
||||
" <column name=\"lineId\"/>\n"
|
||||
" <column name=\"orderId\"/>\n"
|
||||
" <column name=\"customerId\"/>\n"
|
||||
" </many-to-many>\n"
|
||||
"</set>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:218
|
||||
#, no-c-format
|
||||
#: index.docbook:218
|
||||
msgid ""
|
||||
"The collection of <literal>OrderLine</literal>s in <literal>Order</literal> "
|
||||
"would use:"
|
||||
msgstr ""
|
||||
"La colección de <literal>OrderLine</literal>s en <literal>Order</literal> "
|
||||
"usaría:"
|
||||
"La colección de <literal>OrderLine</literal>s en <literal>Order</"
|
||||
"literal> usaría:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:223
|
||||
#, no-c-format
|
||||
#: index.docbook:223
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"orderLines\" inverse=\"true\">\n"
|
||||
" <key>\n"
|
||||
|
@ -597,10 +646,15 @@ msgid ""
|
|||
" <one-to-many class=\"OrderLine\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"orderLines\" inverse=\"true\">\n"
|
||||
" <key>\n"
|
||||
" <column name=\"orderId\"/>\n"
|
||||
" <column name=\"customerId\"/>\n"
|
||||
" </key>\n"
|
||||
" <one-to-many class=\"OrderLine\"/>\n"
|
||||
"</set>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:225
|
||||
#, no-c-format
|
||||
#: index.docbook:225
|
||||
msgid ""
|
||||
"(The <literal><one-to-many></literal> element, as usual, declares no "
|
||||
"columns.)"
|
||||
|
@ -608,19 +662,15 @@ msgstr ""
|
|||
"(El elemento <literal><one-to-many></literal>, como es usual, no "
|
||||
"declara columnas.)"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:229
|
||||
#, no-c-format
|
||||
#: index.docbook:229
|
||||
msgid ""
|
||||
"If <literal>OrderLine</literal> itself owns a collection, it also has a "
|
||||
"composite foreign key."
|
||||
msgstr ""
|
||||
"Si <literal>OrderLine</literal> posee una colección por sí misma, tiene "
|
||||
"también una clave foránea compuesta."
|
||||
"Si <literal>OrderLine</literal> posee una colección por sí "
|
||||
"misma, tiene también una clave foránea compuesta."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:234
|
||||
#, no-c-format
|
||||
#: index.docbook:234
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"OrderLine\">\n"
|
||||
" ....\n"
|
||||
|
@ -638,22 +688,31 @@ msgid ""
|
|||
" </set>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"OrderLine\">\n"
|
||||
" ....\n"
|
||||
" ....\n"
|
||||
" <list name=\"deliveryAttempts\">\n"
|
||||
" <key> <!-- a collection inherits the composite key type -->\n"
|
||||
" <column name=\"lineId\"/>\n"
|
||||
" <column name=\"orderId\"/>\n"
|
||||
" <column name=\"customerId\"/>\n"
|
||||
" </key>\n"
|
||||
" <list-index column=\"attemptId\" base=\"1\"/>\n"
|
||||
" <composite-element class=\"DeliveryAttempt\">\n"
|
||||
" ...\n"
|
||||
" </composite-element>\n"
|
||||
" </set>\n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: component_mapping.xml:239
|
||||
#, no-c-format
|
||||
#: index.docbook:239
|
||||
msgid "Dynamic components"
|
||||
msgstr "Componentes dinámicos"
|
||||
msgstr "Componentes dinámicos"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:241
|
||||
#, no-c-format
|
||||
#: index.docbook:241
|
||||
msgid "You may even map a property of type <literal>Map</literal>:"
|
||||
msgstr "Puedes incluso mapear una propiedad de tipo <literal>Map</literal>:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: component_mapping.xml:245
|
||||
#, no-c-format
|
||||
#: index.docbook:245
|
||||
msgid ""
|
||||
"<![CDATA[<dynamic-component name=\"userAttributes\">\n"
|
||||
" <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
|
||||
|
@ -661,10 +720,13 @@ msgid ""
|
|||
" <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
|
||||
"</dynamic-component>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<dynamic-component name=\"userAttributes\">\n"
|
||||
" <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
|
||||
" <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
|
||||
" <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
|
||||
"</dynamic-component>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: component_mapping.xml:247
|
||||
#, no-c-format
|
||||
#: index.docbook:247
|
||||
msgid ""
|
||||
"The semantics of a <literal><dynamic-component></literal> mapping are "
|
||||
"identical to <literal><component></literal>. The advantage of this "
|
||||
|
@ -674,11 +736,18 @@ msgid ""
|
|||
"Even better, you can access (and change) Hibernate's configuration-time "
|
||||
"metamodel via the <literal>Configuration</literal> object."
|
||||
msgstr ""
|
||||
"La semántica de un mapeo <literal><dynamic-component></literal> es "
|
||||
"ídentica a la de <literal><component></literal>. La ventaja de este "
|
||||
"tipo de mapeos es la habilidad para determinar las propiedades reales del "
|
||||
"bean en tiempo de despliegue, sólo con editar el documento de mapeo. La "
|
||||
"manipulación del documento de mapeo en tiempo de ejecución es también "
|
||||
"posible, usando un analizador DOM. Incluso mejor, puedes acceder (y cambiar) "
|
||||
"el metamodelo de tiempo de configuración de Hibernate por medio del objeto "
|
||||
"La semántica de un mapeo <literal><dynamic-component></literal> "
|
||||
"es ídentica a la de <literal><component></literal>. La ventaja "
|
||||
"de este tipo de mapeos es la habilidad para determinar las propiedades "
|
||||
"reales del bean en tiempo de despliegue, sólo con editar el documento "
|
||||
"de mapeo. La manipulación del documento de mapeo en tiempo de "
|
||||
"ejecución es también posible, usando un analizador DOM. "
|
||||
"Incluso mejor, puedes acceder (y cambiar) el metamodelo de tiempo de "
|
||||
"configuración de Hibernate por medio del objeto "
|
||||
"<literal>Configuration</literal>."
|
||||
|
||||
msgid "ROLES_OF_TRANSLATORS"
|
||||
msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
msgid "CREDIT_FOR_TRANSLATORS"
|
||||
msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,42 +1,30 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2007-10-25 07:47+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: events.xml:5
|
||||
#, no-c-format
|
||||
#: index.docbook:5
|
||||
msgid "Interceptors and events"
|
||||
msgstr "Interceptores y eventos"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:7
|
||||
#, no-c-format
|
||||
#: index.docbook:7
|
||||
msgid ""
|
||||
"It is often useful for the application to react to certain events that occur "
|
||||
"inside Hibernate. This allows implementation of certain kinds of generic "
|
||||
"functionality, and extension of Hibernate functionality."
|
||||
msgstr ""
|
||||
"Frecuentemente es útil para la aplicación reaccionar a ciertos eventos que "
|
||||
"ocurran dentro de Hibernate. Esto permite la implementación de ciertos tipos "
|
||||
"de funcionalidade genérica, y extensión de la funcionalidad de Hibernate."
|
||||
"Frecuentemente es útil para la aplicación reaccionar a ciertos "
|
||||
"eventos que ocurran dentro de Hibernate. Esto permite la implementació"
|
||||
"n de ciertos tipos de funcionalidade genérica, y extensión de "
|
||||
"la funcionalidad de Hibernate."
|
||||
|
||||
#. Tag: title
|
||||
#: events.xml:14
|
||||
#, no-c-format
|
||||
#: index.docbook:14
|
||||
msgid "Interceptors"
|
||||
msgstr "Interceptores"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:16
|
||||
#, no-c-format
|
||||
#: index.docbook:16
|
||||
msgid ""
|
||||
"The <literal>Interceptor</literal> interface provides callbacks from the "
|
||||
"session to the application allowing the application to inspect and/or "
|
||||
|
@ -48,19 +36,17 @@ msgid ""
|
|||
"<literal>lastUpdateTimestamp</literal> property when an <literal>Auditable</"
|
||||
"literal> is updated."
|
||||
msgstr ""
|
||||
"La interface <literal>Interceptor</literal> provee callbacks desde la sesión "
|
||||
"a la aplicación permitiendo a ésta última inspeccionar y/o manipular las "
|
||||
"propiedades de un objeto persistente antes que sea salvado, actualizado, "
|
||||
"borrado o cargado. Un uso posible de esto es seguir la pista de información "
|
||||
"de auditoría. Por ejemplo, el siguiente <literal>Interceptor</literal> "
|
||||
"establece automáticamente el <literal>createTimestamp</literal> cuando un "
|
||||
"<literal>Auditable</literal> es creado y actualiza la propiedad "
|
||||
"<literal>lastUpdateTimestamp</literal> cuando un <literal>Auditable</"
|
||||
"literal> es acutalizado."
|
||||
"La interface <literal>Interceptor</literal> provee callbacks desde la "
|
||||
"sesión a la aplicación permitiendo a ésta última "
|
||||
"inspeccionar y/o manipular las propiedades de un objeto persistente antes "
|
||||
"que sea salvado, actualizado, borrado o cargado. Un uso posible de esto es "
|
||||
"seguir la pista de información de auditoría. Por ejemplo, el "
|
||||
"siguiente <literal>Interceptor</literal> establece automáticamente el "
|
||||
"<literal>createTimestamp</literal> cuando un <literal>Auditable</literal> es "
|
||||
"creado y actualiza la propiedad <literal>lastUpdateTimestamp</literal> "
|
||||
"cuando un <literal>Auditable</literal> es acutalizado."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:27
|
||||
#, no-c-format
|
||||
#: index.docbook:27
|
||||
msgid ""
|
||||
"You may either implement <literal>Interceptor</literal> directly or (better) "
|
||||
"extend <literal>EmptyInterceptor</literal>."
|
||||
|
@ -68,9 +54,7 @@ msgstr ""
|
|||
"UNTRANSLATED! You may either implement <literal>Interceptor</literal> "
|
||||
"directly or (better) extend <literal>EmptyInterceptor</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:32
|
||||
#, no-c-format
|
||||
#: index.docbook:32
|
||||
msgid ""
|
||||
"<![CDATA[package org.hibernate.test;\n"
|
||||
"\n"
|
||||
|
@ -156,10 +140,88 @@ msgid ""
|
|||
"\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[package org.hibernate.test;\n"
|
||||
"\n"
|
||||
"import java.io.Serializable;\n"
|
||||
"import java.util.Date;\n"
|
||||
"import java.util.Iterator;\n"
|
||||
"\n"
|
||||
"import org.hibernate.Interceptor;\n"
|
||||
"import org.hibernate.type.Type;\n"
|
||||
"\n"
|
||||
"public class AuditInterceptor implements Interceptor, Serializable {\n"
|
||||
"\n"
|
||||
" private int updates;\n"
|
||||
" private int creates;\n"
|
||||
"\n"
|
||||
" public void onDelete(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] state,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
" // do nothing\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public boolean onFlushDirty(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] currentState,\n"
|
||||
" Object[] previousState,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
"\n"
|
||||
" if ( entity instanceof Auditable ) {\n"
|
||||
" updates++;\n"
|
||||
" for ( int i=0; i < propertyNames.length; i++ ) {\n"
|
||||
" if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) {\n"
|
||||
" currentState[i] = new Date();\n"
|
||||
" return true;\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public boolean onLoad(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] state,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public boolean onSave(Object entity,\n"
|
||||
" Serializable id,\n"
|
||||
" Object[] state,\n"
|
||||
" String[] propertyNames,\n"
|
||||
" Type[] types) {\n"
|
||||
"\n"
|
||||
" if ( entity instanceof Auditable ) {\n"
|
||||
" creates++;\n"
|
||||
" for ( int i=0; i<propertyNames.length; i++ ) {\n"
|
||||
" if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
|
||||
" state[i] = new Date();\n"
|
||||
" return true;\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public void postFlush(Iterator entities) {\n"
|
||||
" System.out.println(\"Creations: \" + creates + \", Updates: \" + "
|
||||
"updates);\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" public void preFlush(Iterator entities) {\n"
|
||||
" updates=0;\n"
|
||||
" creates=0;\n"
|
||||
" }\n"
|
||||
"\n"
|
||||
" ...\n"
|
||||
"\n"
|
||||
"}]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:34
|
||||
#, no-c-format
|
||||
#: index.docbook:34
|
||||
msgid ""
|
||||
"Interceptors come in two flavors: <literal>Session</literal>-scoped and "
|
||||
"<literal>SessionFactory</literal>-scoped."
|
||||
|
@ -167,9 +229,7 @@ msgstr ""
|
|||
"UNTRANSLATED! Interceptors come in two flavors: <literal>Session</literal>-"
|
||||
"scoped and <literal>SessionFactory</literal>-scoped."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:39
|
||||
#, no-c-format
|
||||
#: index.docbook:39
|
||||
msgid ""
|
||||
"A <literal>Session</literal>-scoped interceptor is specified when a session "
|
||||
"is opened using one of the overloaded SessionFactory.openSession() methods "
|
||||
|
@ -179,15 +239,12 @@ msgstr ""
|
|||
"when a session is opened using one of the overloaded SessionFactory."
|
||||
"openSession() methods accepting an <literal>Interceptor</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:45
|
||||
#, no-c-format
|
||||
#: index.docbook:45
|
||||
msgid "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:47
|
||||
#, no-c-format
|
||||
#: index.docbook:47
|
||||
msgid ""
|
||||
"A <literal>SessionFactory</literal>-scoped interceptor is registered with "
|
||||
"the <literal>Configuration</literal> object prior to building the "
|
||||
|
@ -208,35 +265,28 @@ msgstr ""
|
|||
"session-specific state since multiple sessions will use this interceptor "
|
||||
"(potentially) concurrently."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:56
|
||||
#, no-c-format
|
||||
#: index.docbook:56
|
||||
msgid ""
|
||||
"<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: events.xml:61
|
||||
#, no-c-format
|
||||
#: index.docbook:61
|
||||
msgid "Event system"
|
||||
msgstr "Sistema de eventos"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:63
|
||||
#, no-c-format
|
||||
#: index.docbook:63
|
||||
msgid ""
|
||||
"If you have to react to particular events in your persistence layer, you may "
|
||||
"also use the Hibernate3 <emphasis>event</emphasis> architecture. The event "
|
||||
"system can be used in addition or as a replacement for interceptors."
|
||||
msgstr ""
|
||||
"Si tienes que reaccionar a eventos particulares en tu capa de persistencia, "
|
||||
"puedes también la arquitectura de <emphasis>eventos</emphasis> de "
|
||||
"Hibernate3. El sistema de eventos puede ser usado en adición o como un "
|
||||
"remplazo a los interceptores."
|
||||
"puedes también la arquitectura de <emphasis>eventos</emphasis> de "
|
||||
"Hibernate3. El sistema de eventos puede ser usado en adición o como "
|
||||
"un remplazo a los interceptores."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:69
|
||||
#, no-c-format
|
||||
#: index.docbook:69
|
||||
msgid ""
|
||||
"Essentially all of the methods of the <literal>Session</literal> interface "
|
||||
"correlate to an event. You have a <literal>LoadEvent</literal>, a "
|
||||
|
@ -253,36 +303,34 @@ msgid ""
|
|||
"processing any <literal>load()</literal> requests made of the "
|
||||
"<literal>Session</literal>."
|
||||
msgstr ""
|
||||
"Esencialmente todos los métodos de la interface <literal>Session</literal> "
|
||||
"se correlacionan con un evento. Tienes un <literal>LoadEvent</literal>, un "
|
||||
"<literal>FlushEvent</literal>, etc (consulta el DTD del fichero de "
|
||||
"configuración XML o el paquete <literal>org.hibernate.event</literal> para "
|
||||
"la lista completa de tipos de evento definidos). Cuando se hace una petición "
|
||||
"de uno de estos métodos, la <literal>Session</literal> de Hibernate genera "
|
||||
"un evento apropiado y se lo pasa al oyente (listener) de eventos configurado "
|
||||
"para ese tipo. De fábrica, estos oyentes implementan el mismo procesamiento "
|
||||
"en los que siempre resultan aquellos métodos. Sin embargo, eres libre de "
|
||||
"implementar una personalización de una de las interfaces oyentes (es decir, "
|
||||
"el <literal>LoadEvent</literal> es procesado por la implementación "
|
||||
"Esencialmente todos los métodos de la interface <literal>Session</"
|
||||
"literal> se correlacionan con un evento. Tienes un <literal>LoadEvent</"
|
||||
"literal>, un <literal>FlushEvent</literal>, etc (consulta el DTD del fichero "
|
||||
"de configuración XML o el paquete <literal>org.hibernate.event</"
|
||||
"literal> para la lista completa de tipos de evento definidos). Cuando se "
|
||||
"hace una petición de uno de estos métodos, la "
|
||||
"<literal>Session</literal> de Hibernate genera un evento apropiado y se lo "
|
||||
"pasa al oyente (listener) de eventos configurado para ese tipo. De fá"
|
||||
"brica, estos oyentes implementan el mismo procesamiento en los que siempre "
|
||||
"resultan aquellos métodos. Sin embargo, eres libre de implementar una "
|
||||
"personalización de una de las interfaces oyentes (es decir, el "
|
||||
"<literal>LoadEvent</literal> es procesado por la implementación "
|
||||
"registrada de la interface <literal>LoadEventListener</literal>), en cuyo "
|
||||
"caso su implementación sería responsable de procesar cualquier petición "
|
||||
"<literal>load()</literal> hecha a la <literal>Session</literal>."
|
||||
"caso su implementación sería responsable de procesar cualquier "
|
||||
"petición <literal>load()</literal> hecha a la <literal>Session</"
|
||||
"literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:84
|
||||
#, no-c-format
|
||||
#: index.docbook:84
|
||||
msgid ""
|
||||
"The listeners should be considered effectively singletons; meaning, they are "
|
||||
"shared between requests, and thus should not save any state as instance "
|
||||
"variables."
|
||||
msgstr ""
|
||||
"Los oyentes deben ser considerados efectivamente singletons; quiere decir, "
|
||||
"que son compartidos entre las peticiones, y por lo tanto no guardan ningún "
|
||||
"estado en variables de instancia."
|
||||
"que son compartidos entre las peticiones, y por lo tanto no guardan "
|
||||
"ningún estado en variables de instancia."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:89
|
||||
#, no-c-format
|
||||
#: index.docbook:89
|
||||
msgid ""
|
||||
"A custom listener should implement the appropriate interface for the event "
|
||||
"it wants to process and/or extend one of the convenience base classes (or "
|
||||
|
@ -296,16 +344,15 @@ msgstr ""
|
|||
"Un oyente personalizado debe implementar la interface apropiada para el "
|
||||
"evento que quiere procesar y/o extender una de las clases base de "
|
||||
"conveniencia (o incluso los oyentes de eventos por defecto usados por "
|
||||
"Hibernate de fábrica al ser éstos declarados non-final para este propósito). "
|
||||
"Los oyentes personalizados pueden ser registrados programáticamente a través "
|
||||
"del objeto <literal>Configuration</literal>, o especificados en el XML de "
|
||||
"configuración de Hibernate (la declaración declarativa a través del fichero "
|
||||
"de propiedades no está soportada). He aquí un ejemplo de un oyente "
|
||||
"personalizado de eventos load:"
|
||||
"Hibernate de fábrica al ser éstos declarados non-final para "
|
||||
"este propósito). Los oyentes personalizados pueden ser registrados "
|
||||
"programáticamente a través del objeto <literal>Configuration</"
|
||||
"literal>, o especificados en el XML de configuración de Hibernate (la "
|
||||
"declaración declarativa a través del fichero de propiedades no "
|
||||
"está soportada). He aquí un ejemplo de un oyente personalizado "
|
||||
"de eventos load:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:99
|
||||
#, no-c-format
|
||||
#: index.docbook:99
|
||||
msgid ""
|
||||
"<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
|
||||
" // this is the single method defined by the LoadEventListener interface\n"
|
||||
|
@ -319,20 +366,28 @@ msgid ""
|
|||
" }\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[public class MyLoadListener extends DefaultLoadEventListener {\n"
|
||||
" // this is the single method defined by the LoadEventListener interface\n"
|
||||
" public Object onLoad(LoadEvent event, LoadEventListener.LoadType "
|
||||
"loadType)\n"
|
||||
" throws HibernateException {\n"
|
||||
" if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
|
||||
"getEntityId() ) ) {\n"
|
||||
" throw MySecurityException(\"Unauthorized access\");\n"
|
||||
" }\n"
|
||||
" return super.onLoad(event, loadType);\n"
|
||||
" }\n"
|
||||
"}]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:101
|
||||
#, no-c-format
|
||||
#: index.docbook:101
|
||||
msgid ""
|
||||
"You also need a configuration entry telling Hibernate to use the listener in "
|
||||
"addition to the default listener:"
|
||||
msgstr ""
|
||||
"Necesitas además una entrada de configuración diciéndole a Hibernate que use "
|
||||
"el oyente en vez del oyente por defecto:"
|
||||
"Necesitas además una entrada de configuración dicié"
|
||||
"ndole a Hibernate que use el oyente en vez del oyente por defecto:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:106
|
||||
#, no-c-format
|
||||
#: index.docbook:106
|
||||
msgid ""
|
||||
"<![CDATA[<hibernate-configuration>\n"
|
||||
" <session-factory>\n"
|
||||
|
@ -345,26 +400,29 @@ msgid ""
|
|||
" </session-factory>\n"
|
||||
"</hibernate-configuration>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<hibernate-configuration>\n"
|
||||
" <session-factory>\n"
|
||||
" ...\n"
|
||||
" <listener type=\"load\" class=\"MyLoadListener\"/>\n"
|
||||
" </session-factory>\n"
|
||||
"</hibernate-configuration>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:108
|
||||
#, no-c-format
|
||||
#: index.docbook:108
|
||||
msgid "Instead, you may register it programmatically:"
|
||||
msgstr "En cambio, puedes registrarlo programáticamente:"
|
||||
msgstr "En cambio, puedes registrarlo programáticamente:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:112
|
||||
#, no-c-format
|
||||
#: index.docbook:112
|
||||
msgid ""
|
||||
"<![CDATA[Configuration cfg = new Configuration();\n"
|
||||
"LoadEventListener[] stack = { new MyLoadListener(), new "
|
||||
"DefaultLoadEventListener() };\n"
|
||||
"cfg.EventListeners().setLoadEventListeners(stack);]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Configuration cfg = new Configuration();\n"
|
||||
"cfg.getSessionEventListenerConfig().setLoadEventListener( new MyLoadListener"
|
||||
"() );]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:114
|
||||
#, no-c-format
|
||||
#: index.docbook:114
|
||||
msgid ""
|
||||
"Listeners registered declaratively cannot share instances. If the same class "
|
||||
"name is used in multiple <literal><listener/></literal> elements, each "
|
||||
|
@ -373,14 +431,13 @@ msgid ""
|
|||
"the programmatic registration approach."
|
||||
msgstr ""
|
||||
"Los oyentes registrados declarativamente no pueden compartir instancias. Si "
|
||||
"el mismo nombre de clase es usado en múltiples elementos <literal><"
|
||||
"listener/></literal>, cada referencia resultará en una instancia separada "
|
||||
"de esa clase. Si necesitas la capacidad de compartir instancias de oyentes "
|
||||
"entre tipos de oyente debes usar el enfoque de registración programática."
|
||||
"el mismo nombre de clase es usado en múltiples elementos <literal><"
|
||||
"listener/></literal>, cada referencia resultará en una instancia "
|
||||
"separada de esa clase. Si necesitas la capacidad de compartir instancias de "
|
||||
"oyentes entre tipos de oyente debes usar el enfoque de registración "
|
||||
"programática."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:122
|
||||
#, no-c-format
|
||||
#: index.docbook:122
|
||||
msgid ""
|
||||
"Why implement an interface and define the specific type during "
|
||||
"configuration? Well, a listener implementation could implement multiple "
|
||||
|
@ -388,21 +445,18 @@ msgid ""
|
|||
"registration makes it easier to turn custom listeners on or off during "
|
||||
"configuration."
|
||||
msgstr ""
|
||||
"¿Por qué implementar una interface y definir el tipo espcífico durante la "
|
||||
"configuración? Bueno, una implementación de oyente podría implementar "
|
||||
"múltiples interfaces de oyente de eventos. Teniendo el tipo definido "
|
||||
"adicionalmente durante la registración lo hace más fácil para activar o "
|
||||
"desactivar oyentes personalizados durante la configuración."
|
||||
"¿Por qué implementar una interface y definir el tipo "
|
||||
"espcífico durante la configuración? Bueno, una "
|
||||
"implementación de oyente podría implementar múltiples "
|
||||
"interfaces de oyente de eventos. Teniendo el tipo definido adicionalmente "
|
||||
"durante la registración lo hace más fácil para activar "
|
||||
"o desactivar oyentes personalizados durante la configuración."
|
||||
|
||||
#. Tag: title
|
||||
#: events.xml:132
|
||||
#, no-c-format
|
||||
#: index.docbook:132
|
||||
msgid "Hibernate declarative security"
|
||||
msgstr "Seguridad declarativa de Hibernate"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:133
|
||||
#, no-c-format
|
||||
#: index.docbook:133
|
||||
msgid ""
|
||||
"Usually, declarative security in Hibernate applications is managed in a "
|
||||
"session facade layer. Now, Hibernate3 allows certain actions to be "
|
||||
|
@ -410,23 +464,20 @@ msgid ""
|
|||
"functionality built on top of the event architecture."
|
||||
msgstr ""
|
||||
"Usualmente, la seguridad declarativa en aplicaciones Hibernate es manejada "
|
||||
"en una capa de fachada de sesión. Ahora, Hibernate3 permite que ciertas "
|
||||
"acciones sean permitidas vía JACC, y autorizadas vía JAAS. Esta en una "
|
||||
"funcionalidad opcional construída encima de la arquitectura de eventos."
|
||||
"en una capa de fachada de sesión. Ahora, Hibernate3 permite que "
|
||||
"ciertas acciones sean permitidas vía JACC, y autorizadas vía "
|
||||
"JAAS. Esta en una funcionalidad opcional construída encima de la "
|
||||
"arquitectura de eventos."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:139
|
||||
#, no-c-format
|
||||
#: index.docbook:139
|
||||
msgid ""
|
||||
"First, you must configure the appropriate event listeners, to enable the use "
|
||||
"of JAAS authorization."
|
||||
msgstr ""
|
||||
"Primero, debes configurar los oyentes de eventos apropiados, para habilitar "
|
||||
"el uso de autorización JAAS."
|
||||
"el uso de autorización JAAS."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:144
|
||||
#, no-c-format
|
||||
#: index.docbook:144
|
||||
msgid ""
|
||||
"<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
|
||||
"JACCPreDeleteEventListener\"/>\n"
|
||||
|
@ -437,10 +488,16 @@ msgid ""
|
|||
"<listener type=\"pre-load\" class=\"org.hibernate.secure."
|
||||
"JACCPreLoadEventListener\"/>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
|
||||
"JACCPreDeleteEventListener\"/>\n"
|
||||
"<listener type=\"pre-update\" class=\"org.hibernate.secure."
|
||||
"JACCPreUpdateEventListener\"/>\n"
|
||||
"<listener type=\"pre-insert\" class=\"org.hibernate.secure."
|
||||
"JACCPreInsertEventListener\"/>\n"
|
||||
"<listener type=\"pre-load\" class=\"org.hibernate.secure."
|
||||
"JACCPreLoadEventListener\"/>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:146
|
||||
#, no-c-format
|
||||
#: index.docbook:146
|
||||
msgid ""
|
||||
"Note that <literal><listener type=\"...\" class=\"...\"/></literal> is "
|
||||
"just a shorthand for <literal><event type=\"...\"><listener class="
|
||||
|
@ -452,27 +509,30 @@ msgstr ""
|
|||
"listener class=\"...\"/></event></literal> when there is exactly "
|
||||
"one listener for a particular event type."
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:152
|
||||
#, no-c-format
|
||||
#: index.docbook:152
|
||||
msgid ""
|
||||
"Next, still in <literal>hibernate.cfg.xml</literal>, bind the permissions to "
|
||||
"roles:"
|
||||
msgstr ""
|
||||
"Seguido, aún en <literal>hibernate.cfg.xml</literal>, liga los permisos a "
|
||||
"roles:"
|
||||
"Seguido, aún en <literal>hibernate.cfg.xml</literal>, liga los "
|
||||
"permisos a roles:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: events.xml:156
|
||||
#, no-c-format
|
||||
#: index.docbook:156
|
||||
msgid ""
|
||||
"<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,"
|
||||
"read\"/>\n"
|
||||
"<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,"
|
||||
"read\"/>\n"
|
||||
"<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: events.xml:158
|
||||
#, no-c-format
|
||||
#: index.docbook:158
|
||||
msgid "The role names are the roles understood by your JACC provider."
|
||||
msgstr "Los nombres de role son los roles entendidos por tu proveedor de JACC."
|
||||
|
||||
msgid "ROLES_OF_TRANSLATORS"
|
||||
msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
msgid "CREDIT_FOR_TRANSLATORS"
|
||||
msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
|
|
|
@ -1,36 +1,24 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2007-10-25 07:47+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: example_mappings.xml:20
|
||||
#, no-c-format
|
||||
#: index.docbook:20
|
||||
msgid "Example: Various Mappings"
|
||||
msgstr "Ejemplo: Varios Mapeos"
|
||||
|
||||
#. Tag: para
|
||||
#: example_mappings.xml:22
|
||||
#, no-c-format
|
||||
#: index.docbook:22
|
||||
msgid "This chapters shows off some more complex association mappings."
|
||||
msgstr "Este capítulo muestra mapeos de asociaciones más complejos."
|
||||
msgstr ""
|
||||
"Este capítulo muestra mapeos de asociaciones más complejos."
|
||||
|
||||
#. Tag: title
|
||||
#: example_mappings.xml:27
|
||||
#, no-c-format
|
||||
#: index.docbook:27
|
||||
msgid "Employer/Employee"
|
||||
msgstr "Empleador/Empleado"
|
||||
|
||||
#. Tag: para
|
||||
#: example_mappings.xml:29
|
||||
#, no-c-format
|
||||
#: index.docbook:29
|
||||
msgid ""
|
||||
"The following model of the relationship between <literal>Employer</literal> "
|
||||
"and <literal>Employee</literal> uses an actual entity class "
|
||||
|
@ -38,22 +26,18 @@ msgid ""
|
|||
"because there might be more than one period of employment for the same two "
|
||||
"parties. Components are used to model monetary values and employee names."
|
||||
msgstr ""
|
||||
"El siguiente modelo de la relación entre <literal>Employer</literal> y "
|
||||
"<literal>Employee</literal> usa una clase de entidad real "
|
||||
"(<literal>Employment</literal>) para representar la asociación. Esto se ha "
|
||||
"hecho esto porque podría haber más de un período de empleo para los mismos "
|
||||
"dos participantes. Se usan componentes para modelar valores monetarios y "
|
||||
"nombres de empleado."
|
||||
"El siguiente modelo de la relación entre <literal>Employer</literal> "
|
||||
"y <literal>Employee</literal> usa una clase de entidad real "
|
||||
"(<literal>Employment</literal>) para representar la asociación. Esto "
|
||||
"se ha hecho esto porque podría haber más de un período "
|
||||
"de empleo para los mismos dos participantes. Se usan componentes para "
|
||||
"modelar valores monetarios y nombres de empleado."
|
||||
|
||||
#. Tag: para
|
||||
#: example_mappings.xml:46
|
||||
#, no-c-format
|
||||
#: index.docbook:46
|
||||
msgid "Heres a possible mapping document:"
|
||||
msgstr "He aquí un documento de mapeo posible:"
|
||||
msgstr "He aquí un documento de mapeo posible:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_mappings.xml:50
|
||||
#, no-c-format
|
||||
#: index.docbook:50
|
||||
msgid ""
|
||||
"<![CDATA[<hibernate-mapping>\n"
|
||||
" \n"
|
||||
|
@ -106,18 +90,65 @@ msgid ""
|
|||
"\n"
|
||||
"</hibernate-mapping>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<hibernate-mapping>\n"
|
||||
" \n"
|
||||
" <class name=\"Employer\" table=\"employers\">\n"
|
||||
" <id name=\"id\">\n"
|
||||
" <generator class=\"sequence\">\n"
|
||||
" <param name=\"sequence\">employer_id_seq</param>\n"
|
||||
" </generator>\n"
|
||||
" </id>\n"
|
||||
" <property name=\"name\"/>\n"
|
||||
" </class>\n"
|
||||
"\n"
|
||||
" <class name=\"Employment\" table=\"employment_periods\">\n"
|
||||
"\n"
|
||||
" <id name=\"id\">\n"
|
||||
" <generator class=\"sequence\">\n"
|
||||
" <param name=\"sequence\">employment_id_seq</param>\n"
|
||||
" </generator>\n"
|
||||
" </id>\n"
|
||||
" <property name=\"startDate\" column=\"start_date\"/>\n"
|
||||
" <property name=\"endDate\" column=\"end_date\"/>\n"
|
||||
"\n"
|
||||
" <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
|
||||
" <property name=\"amount\">\n"
|
||||
" <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/>\n"
|
||||
" </property>\n"
|
||||
" <property name=\"currency\" length=\"12\"/>\n"
|
||||
" </component>\n"
|
||||
"\n"
|
||||
" <many-to-one name=\"employer\" column=\"employer_id\" not-null=\"true"
|
||||
"\"/>\n"
|
||||
" <many-to-one name=\"employee\" column=\"employee_id\" not-null=\"true"
|
||||
"\"/>\n"
|
||||
"\n"
|
||||
" </class>\n"
|
||||
"\n"
|
||||
" <class name=\"Employee\" table=\"employees\">\n"
|
||||
" <id name=\"id\">\n"
|
||||
" <generator class=\"sequence\">\n"
|
||||
" <param name=\"sequence\">employee_id_seq</param>\n"
|
||||
" </generator>\n"
|
||||
" </id>\n"
|
||||
" <property name=\"taxfileNumber\"/>\n"
|
||||
" <component name=\"name\" class=\"Name\">\n"
|
||||
" <property name=\"firstName\"/>\n"
|
||||
" <property name=\"initial\"/>\n"
|
||||
" <property name=\"lastName\"/>\n"
|
||||
" </component>\n"
|
||||
" </class>\n"
|
||||
"\n"
|
||||
"</hibernate-mapping>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_mappings.xml:52
|
||||
#, no-c-format
|
||||
#: index.docbook:52
|
||||
msgid ""
|
||||
"And heres the table schema generated by <literal>SchemaExport</literal>."
|
||||
msgstr ""
|
||||
"Y he aquí el esquema de tablas generado por <literal>SchemaExport</literal>."
|
||||
"Y he aquí el esquema de tablas generado por <literal>SchemaExport</"
|
||||
"literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_mappings.xml:56
|
||||
#, no-c-format
|
||||
#: index.docbook:56
|
||||
msgid ""
|
||||
"<![CDATA[create table employers (\n"
|
||||
" id BIGINT not null, \n"
|
||||
|
@ -155,16 +186,47 @@ msgid ""
|
|||
"create sequence employment_id_seq\n"
|
||||
"create sequence employer_id_seq]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[create table employers (\n"
|
||||
" id BIGINT not null, \n"
|
||||
" name VARCHAR(255), \n"
|
||||
" primary key (id)\n"
|
||||
")\n"
|
||||
"\n"
|
||||
"create table employment_periods (\n"
|
||||
" id BIGINT not null,\n"
|
||||
" hourly_rate NUMERIC(12, 2),\n"
|
||||
" currency VARCHAR(12), \n"
|
||||
" employee_id BIGINT not null, \n"
|
||||
" employer_id BIGINT not null, \n"
|
||||
" end_date TIMESTAMP, \n"
|
||||
" start_date TIMESTAMP, \n"
|
||||
" primary key (id)\n"
|
||||
")\n"
|
||||
"\n"
|
||||
"create table employees (\n"
|
||||
" id BIGINT not null, \n"
|
||||
" firstName VARCHAR(255), \n"
|
||||
" initial CHAR(1), \n"
|
||||
" lastName VARCHAR(255), \n"
|
||||
" taxfileNumber VARCHAR(255), \n"
|
||||
" primary key (id)\n"
|
||||
")\n"
|
||||
"\n"
|
||||
"alter table employment_periods \n"
|
||||
" add constraint employment_periodsFK0 foreign key (employer_id) "
|
||||
"references employers\n"
|
||||
"alter table employment_periods \n"
|
||||
" add constraint employment_periodsFK1 foreign key (employee_id) "
|
||||
"references employees\n"
|
||||
"create sequence employee_id_seq\n"
|
||||
"create sequence employment_id_seq\n"
|
||||
"create sequence employer_id_seq]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: example_mappings.xml:61
|
||||
#, no-c-format
|
||||
#: index.docbook:61
|
||||
msgid "Author/Work"
|
||||
msgstr "Autor/Obra"
|
||||
|
||||
#. Tag: para
|
||||
#: example_mappings.xml:63
|
||||
#, no-c-format
|
||||
#: index.docbook:63
|
||||
msgid ""
|
||||
"Consider the following model of the relationships between <literal>Work</"
|
||||
"literal>, <literal>Author</literal> and <literal>Person</literal>. We "
|
||||
|
@ -176,23 +238,20 @@ msgid ""
|
|||
msgstr ""
|
||||
"Considera el siguiente modelo de las relaciones entre <literal>Work</"
|
||||
"literal>, <literal>Author</literal> y <literal>Person</literal>. "
|
||||
"Representamos la relación entre <literal>Work</literal> y <literal>Author</"
|
||||
"literal> como una asociación muchos-a-muchos. Elegimos representar la "
|
||||
"relación entre <literal>Author</literal> y <literal>Person</literal> como "
|
||||
"una asociación uno-a-uno. Otra posibilidad hubiese sido que <literal>Author</"
|
||||
"literal> extendiera <literal>Person</literal>."
|
||||
"Representamos la relación entre <literal>Work</literal> y "
|
||||
"<literal>Author</literal> como una asociación muchos-a-muchos. "
|
||||
"Elegimos representar la relación entre <literal>Author</literal> y "
|
||||
"<literal>Person</literal> como una asociación uno-a-uno. Otra "
|
||||
"posibilidad hubiese sido que <literal>Author</literal> extendiera "
|
||||
"<literal>Person</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: example_mappings.xml:81
|
||||
#, no-c-format
|
||||
#: index.docbook:81
|
||||
msgid ""
|
||||
"The following mapping document correctly represents these relationships:"
|
||||
msgstr ""
|
||||
"El siguiente documento de mapeo representa estas relaciones correctamente:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_mappings.xml:85
|
||||
#, no-c-format
|
||||
#: index.docbook:85
|
||||
msgid ""
|
||||
"<![CDATA[<hibernate-mapping>\n"
|
||||
"\n"
|
||||
|
@ -246,10 +305,59 @@ msgid ""
|
|||
"\n"
|
||||
"</hibernate-mapping>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<hibernate-mapping>\n"
|
||||
"\n"
|
||||
" <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
|
||||
"\n"
|
||||
" <id name=\"id\" column=\"id\">\n"
|
||||
" <generator class=\"native\"/>\n"
|
||||
" </id>\n"
|
||||
" <discriminator column=\"type\" type=\"character\"/>\n"
|
||||
"\n"
|
||||
" <property name=\"title\"/>\n"
|
||||
" <set name=\"authors\" table=\"author_work\">\n"
|
||||
" <key column name=\"work_id\"/>\n"
|
||||
" <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
|
||||
" </set>\n"
|
||||
"\n"
|
||||
" <subclass name=\"Book\" discriminator-value=\"B\">\n"
|
||||
" <property name=\"text\"/>\n"
|
||||
" </subclass>\n"
|
||||
"\n"
|
||||
" <subclass name=\"Song\" discriminator-value=\"S\">\n"
|
||||
" <property name=\"tempo\"/>\n"
|
||||
" <property name=\"genre\"/>\n"
|
||||
" </subclass>\n"
|
||||
"\n"
|
||||
" </class>\n"
|
||||
"\n"
|
||||
" <class name=\"Author\" table=\"authors\">\n"
|
||||
"\n"
|
||||
" <id name=\"id\" column=\"id\">\n"
|
||||
" <!-- The Author must have the same identifier as the Person -->\n"
|
||||
" <generator class=\"assigned\"/> \n"
|
||||
" </id>\n"
|
||||
"\n"
|
||||
" <property name=\"alias\"/>\n"
|
||||
" <one-to-one name=\"person\" constrained=\"true\"/>\n"
|
||||
"\n"
|
||||
" <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
|
||||
" <key column=\"author_id\"/>\n"
|
||||
" <many-to-many class=\"Work\" column=\"work_id\"/>\n"
|
||||
" </set>\n"
|
||||
"\n"
|
||||
" </class>\n"
|
||||
"\n"
|
||||
" <class name=\"Person\" table=\"persons\">\n"
|
||||
" <id name=\"id\" column=\"id\">\n"
|
||||
" <generator class=\"native\"/>\n"
|
||||
" </id>\n"
|
||||
" <property name=\"name\"/>\n"
|
||||
" </class>\n"
|
||||
"\n"
|
||||
"</hibernate-mapping>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_mappings.xml:87
|
||||
#, no-c-format
|
||||
#: index.docbook:87
|
||||
msgid ""
|
||||
"There are four tables in this mapping. <literal>works</literal>, "
|
||||
"<literal>authors</literal> and <literal>persons</literal> hold work, author "
|
||||
|
@ -260,12 +368,10 @@ msgstr ""
|
|||
"Hay cuatro tablas en este mapeo. <literal>works</literal>, <literal>authors</"
|
||||
"literal> y <literal>persons</literal> tienen los datos de obra, autor y "
|
||||
"persona respectivamente. <literal>author_work</literal> es una tabla de "
|
||||
"asociación enlazando autores a obras. He aquí el esquema de tablas, tal como "
|
||||
"fue generado por <literal>SchemaExport</literal>."
|
||||
"asociación enlazando autores a obras. He aquí el esquema de "
|
||||
"tablas, tal como fue generado por <literal>SchemaExport</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_mappings.xml:95
|
||||
#, no-c-format
|
||||
#: index.docbook:95
|
||||
msgid ""
|
||||
"<![CDATA[create table works (\n"
|
||||
" id BIGINT not null generated by default as identity, \n"
|
||||
|
@ -303,16 +409,47 @@ msgid ""
|
|||
"alter table author_work\n"
|
||||
" add constraint author_workFK1 foreign key (work_id) references works]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[create table works (\n"
|
||||
" id BIGINT not null generated by default as identity, \n"
|
||||
" tempo FLOAT, \n"
|
||||
" genre VARCHAR(255), \n"
|
||||
" text INTEGER, \n"
|
||||
" title VARCHAR(255), \n"
|
||||
" type CHAR(1) not null, \n"
|
||||
" primary key (id)\n"
|
||||
")\n"
|
||||
"\n"
|
||||
"create table author_work (\n"
|
||||
" author_id BIGINT not null, \n"
|
||||
" work_id BIGINT not null, \n"
|
||||
" primary key (work_id, author_id)\n"
|
||||
")\n"
|
||||
"\n"
|
||||
"create table authors (\n"
|
||||
" id BIGINT not null generated by default as identity, \n"
|
||||
" alias VARCHAR(255), \n"
|
||||
" primary key (id)\n"
|
||||
")\n"
|
||||
"\n"
|
||||
"create table persons (\n"
|
||||
" id BIGINT not null generated by default as identity, \n"
|
||||
" name VARCHAR(255), \n"
|
||||
" primary key (id)\n"
|
||||
")\n"
|
||||
"\n"
|
||||
"alter table authors \n"
|
||||
" add constraint authorsFK0 foreign key (id) references persons\n"
|
||||
"alter table author_work \n"
|
||||
" add constraint author_workFK0 foreign key (author_id) references "
|
||||
"authors\n"
|
||||
"alter table author_work\n"
|
||||
" add constraint author_workFK1 foreign key (work_id) references works]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: example_mappings.xml:100
|
||||
#, no-c-format
|
||||
#: index.docbook:100
|
||||
msgid "Customer/Order/Product"
|
||||
msgstr "Cliente/Orden/Producto"
|
||||
|
||||
#. Tag: para
|
||||
#: example_mappings.xml:102
|
||||
#, no-c-format
|
||||
#: index.docbook:102
|
||||
msgid ""
|
||||
"Now consider a model of the relationships between <literal>Customer</"
|
||||
"literal>, <literal>Order</literal> and <literal>LineItem</literal> and "
|
||||
|
@ -326,23 +463,20 @@ msgid ""
|
|||
msgstr ""
|
||||
"Ahora considera un modelo de las relaciones entre <literal>Customer</"
|
||||
"literal>, <literal>Order</literal> y <literal>LineItem</literal> y "
|
||||
"<literal>Product</literal>. Hay una asociación uno-a-muchos entre "
|
||||
"<literal>Customer</literal> y <literal>Order</literal>, pero, ¿cómo "
|
||||
"deberíamos representar <literal>Order</literal> / <literal>LineItem</"
|
||||
"literal> / <literal>Product</literal>? He elegido mapear <literal>LineItem</"
|
||||
"literal> como una clase de asociación representando la asociación muchos-a-"
|
||||
"muchos entre <literal>Order</literal> y <literal>Product</literal>. En "
|
||||
"Hibernate, esto se llama un elemento compuesto."
|
||||
"<literal>Product</literal>. Hay una asociación uno-a-muchos entre "
|
||||
"<literal>Customer</literal> y <literal>Order</literal>, pero, ¿"
|
||||
"cómo deberíamos representar <literal>Order</literal> / "
|
||||
"<literal>LineItem</literal> / <literal>Product</literal>? He elegido mapear "
|
||||
"<literal>LineItem</literal> como una clase de asociación "
|
||||
"representando la asociación muchos-a-muchos entre <literal>Order</"
|
||||
"literal> y <literal>Product</literal>. En Hibernate, esto se llama un "
|
||||
"elemento compuesto."
|
||||
|
||||
#. Tag: para
|
||||
#: example_mappings.xml:122
|
||||
#, no-c-format
|
||||
#: index.docbook:122
|
||||
msgid "The mapping document:"
|
||||
msgstr "El documento de mapeo:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_mappings.xml:126
|
||||
#, no-c-format
|
||||
#: index.docbook:126
|
||||
msgid ""
|
||||
"<![CDATA[<hibernate-mapping>\n"
|
||||
"\n"
|
||||
|
@ -382,10 +516,45 @@ msgid ""
|
|||
"\n"
|
||||
"</hibernate-mapping>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<hibernate-mapping>\n"
|
||||
"\n"
|
||||
" <class name=\"Customer\" table=\"customers\">\n"
|
||||
" <id name=\"id\">\n"
|
||||
" <generator class=\"native\"/>\n"
|
||||
" </id>\n"
|
||||
" <property name=\"name\"/>\n"
|
||||
" <set name=\"orders\" inverse=\"true\">\n"
|
||||
" <key column=\"customer_id\"/>\n"
|
||||
" <one-to-many class=\"Order\"/>\n"
|
||||
" </set>\n"
|
||||
" </class>\n"
|
||||
"\n"
|
||||
" <class name=\"Order\" table=\"orders\">\n"
|
||||
" <id name=\"id\">\n"
|
||||
" <generator class=\"native\"/>\n"
|
||||
" </id>\n"
|
||||
" <property name=\"date\"/>\n"
|
||||
" <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
|
||||
" <list name=\"lineItems\" table=\"line_items\">\n"
|
||||
" <key column=\"order_id\"/>\n"
|
||||
" <list-index column=\"line_number\"/>\n"
|
||||
" <composite-element class=\"LineItem\">\n"
|
||||
" <property name=\"quantity\"/>\n"
|
||||
" <many-to-one name=\"product\" column=\"product_id\"/>\n"
|
||||
" </composite-element>\n"
|
||||
" </list>\n"
|
||||
" </class>\n"
|
||||
"\n"
|
||||
" <class name=\"Product\" table=\"products\">\n"
|
||||
" <id name=\"id\">\n"
|
||||
" <generator class=\"native\"/>\n"
|
||||
" </id>\n"
|
||||
" <property name=\"serialNumber\"/>\n"
|
||||
" </class>\n"
|
||||
"\n"
|
||||
"</hibernate-mapping>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_mappings.xml:128
|
||||
#, no-c-format
|
||||
#: index.docbook:128
|
||||
msgid ""
|
||||
"<literal>customers</literal>, <literal>orders</literal>, "
|
||||
"<literal>line_items</literal> and <literal>products</literal> hold customer, "
|
||||
|
@ -394,13 +563,11 @@ msgid ""
|
|||
msgstr ""
|
||||
"<literal>customers</literal>, <literal>orders</literal>, "
|
||||
"<literal>line_items</literal> y <literal>products</literal> tienen los datos "
|
||||
"de cliente, orden, ítem de línea de orden y producto respectivamente. Además "
|
||||
"<literal>line_items</literal> actúa como una tabla de asociación enlazando "
|
||||
"órdenes con productos."
|
||||
"de cliente, orden, ítem de línea de orden y producto "
|
||||
"respectivamente. Además <literal>line_items</literal> actúa "
|
||||
"como una tabla de asociación enlazando órdenes con productos."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_mappings.xml:135
|
||||
#, no-c-format
|
||||
#: index.docbook:135
|
||||
msgid ""
|
||||
"<![CDATA[create table customers (\n"
|
||||
" id BIGINT not null generated by default as identity, \n"
|
||||
|
@ -437,40 +604,65 @@ msgid ""
|
|||
"alter table line_items\n"
|
||||
" add constraint line_itemsFK1 foreign key (order_id) references orders]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[create table customers (\n"
|
||||
" id BIGINT not null generated by default as identity, \n"
|
||||
" name VARCHAR(255), \n"
|
||||
" primary key (id)\n"
|
||||
")\n"
|
||||
"\n"
|
||||
"create table orders (\n"
|
||||
" id BIGINT not null generated by default as identity, \n"
|
||||
" customer_id BIGINT, \n"
|
||||
" date TIMESTAMP, \n"
|
||||
" primary key (id)\n"
|
||||
")\n"
|
||||
"\n"
|
||||
"create table line_items (\n"
|
||||
" line_number INTEGER not null, \n"
|
||||
" order_id BIGINT not null, \n"
|
||||
" product_id BIGINT, \n"
|
||||
" quantity INTEGER, \n"
|
||||
" primary key (order_id, line_number)\n"
|
||||
")\n"
|
||||
"\n"
|
||||
"create table products (\n"
|
||||
" id BIGINT not null generated by default as identity, \n"
|
||||
" serialNumber VARCHAR(255), \n"
|
||||
" primary key (id)\n"
|
||||
")\n"
|
||||
"\n"
|
||||
"alter table orders \n"
|
||||
" add constraint ordersFK0 foreign key (customer_id) references customers\n"
|
||||
"alter table line_items\n"
|
||||
" add constraint line_itemsFK0 foreign key (product_id) references "
|
||||
"products\n"
|
||||
"alter table line_items\n"
|
||||
" add constraint line_itemsFK1 foreign key (order_id) references orders]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: example_mappings.xml:140
|
||||
#, no-c-format
|
||||
#: index.docbook:140
|
||||
msgid "Miscellaneous example mappings"
|
||||
msgstr "Mapeos misceláneos de ejemplo"
|
||||
msgstr "Mapeos misceláneos de ejemplo"
|
||||
|
||||
#. Tag: para
|
||||
#: example_mappings.xml:142
|
||||
#, no-c-format
|
||||
#: index.docbook:142
|
||||
msgid ""
|
||||
"These examples are all taken from the Hibernate test suite. You will find "
|
||||
"many other useful example mappings there. Look in the <literal>test</"
|
||||
"literal> folder of the Hibernate distribution."
|
||||
msgstr ""
|
||||
"Todos estos ejemplos están tomados de la batería de pruebas de Hibernate. "
|
||||
"Encontrarás muchos otros mapeos de ejemplo útiles allí. Mira en la carpeta "
|
||||
"<literal>test</literal> de la distribución de Hibernate."
|
||||
"Todos estos ejemplos están tomados de la batería de pruebas de "
|
||||
"Hibernate. Encontrarás muchos otros mapeos de ejemplo útiles "
|
||||
"allí. Mira en la carpeta <literal>test</literal> de la "
|
||||
"distribución de Hibernate."
|
||||
|
||||
#. Tag: para
|
||||
#: example_mappings.xml:148
|
||||
#, no-c-format
|
||||
#: index.docbook:148
|
||||
msgid "TODO: put words around this stuff"
|
||||
msgstr "POR HACER: poner palabras alrededor de este material"
|
||||
|
||||
#. Tag: title
|
||||
#: example_mappings.xml:151
|
||||
#, no-c-format
|
||||
#: index.docbook:151
|
||||
msgid "\"Typed\" one-to-one association"
|
||||
msgstr "Asociación uno-a-uno \"Tipificada\""
|
||||
msgstr "Asociación uno-a-uno \"Tipificada\""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_mappings.xml:152
|
||||
#, no-c-format
|
||||
#: index.docbook:152
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"Person\">\n"
|
||||
" <id name=\"name\"/>\n"
|
||||
|
@ -499,16 +691,38 @@ msgid ""
|
|||
" <property name=\"zip\"/>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"Person\">\n"
|
||||
" <id name=\"name\"/>\n"
|
||||
" <one-to-one name=\"address\" \n"
|
||||
" cascade=\"all\">\n"
|
||||
" <formula>name</formula>\n"
|
||||
" <formula>'HOME'</formula>\n"
|
||||
" </one-to-one>\n"
|
||||
" <one-to-one name=\"mailingAddress\" \n"
|
||||
" cascade=\"all\">\n"
|
||||
" <formula>name</formula>\n"
|
||||
" <formula>'MAILING'</formula>\n"
|
||||
" </one-to-one>\n"
|
||||
"</class>\n"
|
||||
"\n"
|
||||
"<class name=\"Address\" batch-size=\"2\" \n"
|
||||
" check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
|
||||
" <composite-id>\n"
|
||||
" <key-many-to-one name=\"person\" \n"
|
||||
" column=\"personName\"/>\n"
|
||||
" <key-property name=\"type\" \n"
|
||||
" column=\"addressType\"/>\n"
|
||||
" </composite-id>\n"
|
||||
" <property name=\"street\" type=\"text\"/>\n"
|
||||
" <property name=\"state\"/>\n"
|
||||
" <property name=\"zip\"/>\n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: example_mappings.xml:156
|
||||
#, no-c-format
|
||||
#: index.docbook:156
|
||||
msgid "Composite key example"
|
||||
msgstr "Ejemplo de clave compuesta"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_mappings.xml:157
|
||||
#, no-c-format
|
||||
#: index.docbook:157
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"Customer\">\n"
|
||||
"\n"
|
||||
|
@ -624,16 +838,125 @@ msgid ""
|
|||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"Customer\">\n"
|
||||
"\n"
|
||||
" <id name=\"customerId\"\n"
|
||||
" length=\"10\">\n"
|
||||
" <generator class=\"assigned\"/>\n"
|
||||
" </id>\n"
|
||||
"\n"
|
||||
" <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
|
||||
" <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
|
||||
"\n"
|
||||
" <list name=\"orders\"\n"
|
||||
" inverse=\"true\"\n"
|
||||
" cascade=\"save-update\">\n"
|
||||
" <key column=\"customerId\"/>\n"
|
||||
" <index column=\"orderNumber\"/>\n"
|
||||
" <one-to-many class=\"Order\"/>\n"
|
||||
" </list>\n"
|
||||
"\n"
|
||||
"</class>\n"
|
||||
"\n"
|
||||
"<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
|
||||
" <synchronize table=\"LineItem\"/>\n"
|
||||
" <synchronize table=\"Product\"/>\n"
|
||||
" \n"
|
||||
" <composite-id name=\"id\" \n"
|
||||
" class=\"Order$Id\">\n"
|
||||
" <key-property name=\"customerId\" length=\"10\"/>\n"
|
||||
" <key-property name=\"orderNumber\"/>\n"
|
||||
" </composite-id>\n"
|
||||
" \n"
|
||||
" <property name=\"orderDate\" \n"
|
||||
" type=\"calendar_date\"\n"
|
||||
" not-null=\"true\"/>\n"
|
||||
" \n"
|
||||
" <property name=\"total\">\n"
|
||||
" <formula>\n"
|
||||
" ( select sum(li.quantity*p.price) \n"
|
||||
" from LineItem li, Product p \n"
|
||||
" where li.productId = p.productId \n"
|
||||
" and li.customerId = customerId \n"
|
||||
" and li.orderNumber = orderNumber )\n"
|
||||
" </formula>\n"
|
||||
" </property>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"customer\"\n"
|
||||
" column=\"customerId\"\n"
|
||||
" insert=\"false\"\n"
|
||||
" update=\"false\" \n"
|
||||
" not-null=\"true\"/>\n"
|
||||
" \n"
|
||||
" <bag name=\"lineItems\"\n"
|
||||
" fetch=\"join\" \n"
|
||||
" inverse=\"true\"\n"
|
||||
" cascade=\"save-update\">\n"
|
||||
" <key>\n"
|
||||
" <column name=\"customerId\"/>\n"
|
||||
" <column name=\"orderNumber\"/>\n"
|
||||
" </key>\n"
|
||||
" <one-to-many class=\"LineItem\"/>\n"
|
||||
" </bag>\n"
|
||||
" \n"
|
||||
"</class>\n"
|
||||
" \n"
|
||||
"<class name=\"LineItem\">\n"
|
||||
" \n"
|
||||
" <composite-id name=\"id\" \n"
|
||||
" class=\"LineItem$Id\">\n"
|
||||
" <key-property name=\"customerId\" length=\"10\"/>\n"
|
||||
" <key-property name=\"orderNumber\"/>\n"
|
||||
" <key-property name=\"productId\" length=\"10\"/>\n"
|
||||
" </composite-id>\n"
|
||||
" \n"
|
||||
" <property name=\"quantity\"/>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"order\"\n"
|
||||
" insert=\"false\"\n"
|
||||
" update=\"false\" \n"
|
||||
" not-null=\"true\">\n"
|
||||
" <column name=\"customerId\"/>\n"
|
||||
" <column name=\"orderNumber\"/>\n"
|
||||
" </many-to-one>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"product\"\n"
|
||||
" insert=\"false\"\n"
|
||||
" update=\"false\" \n"
|
||||
" not-null=\"true\"\n"
|
||||
" column=\"productId\"/>\n"
|
||||
" \n"
|
||||
"</class>\n"
|
||||
"\n"
|
||||
"<class name=\"Product\">\n"
|
||||
" <synchronize table=\"LineItem\"/>\n"
|
||||
"\n"
|
||||
" <id name=\"productId\"\n"
|
||||
" length=\"10\">\n"
|
||||
" <generator class=\"assigned\"/>\n"
|
||||
" </id>\n"
|
||||
" \n"
|
||||
" <property name=\"description\" \n"
|
||||
" not-null=\"true\" \n"
|
||||
" length=\"200\"/>\n"
|
||||
" <property name=\"price\" length=\"3\"/>\n"
|
||||
" <property name=\"numberAvailable\"/>\n"
|
||||
" \n"
|
||||
" <property name=\"numberOrdered\">\n"
|
||||
" <formula>\n"
|
||||
" ( select sum(li.quantity) \n"
|
||||
" from LineItem li \n"
|
||||
" where li.productId = productId )\n"
|
||||
" </formula>\n"
|
||||
" </property>\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: example_mappings.xml:161
|
||||
#, no-c-format
|
||||
#: index.docbook:161
|
||||
msgid "Many-to-many with shared composite key attribute"
|
||||
msgstr "Muchos-a-muchos con atributo de clave compuesta compartido"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_mappings.xml:162
|
||||
#, no-c-format
|
||||
#: index.docbook:162
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"User\" table=\"`User`\">\n"
|
||||
" <composite-id>\n"
|
||||
|
@ -671,16 +994,47 @@ msgid ""
|
|||
"</class>\n"
|
||||
"]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"User\" table=\"`User`\">\n"
|
||||
" <composite-id>\n"
|
||||
" <key-property name=\"name\"/>\n"
|
||||
" <key-property name=\"org\"/>\n"
|
||||
" </composite-id>\n"
|
||||
" <set name=\"groups\" table=\"UserGroup\">\n"
|
||||
" <key>\n"
|
||||
" <column name=\"userName\"/>\n"
|
||||
" <column name=\"org\"/>\n"
|
||||
" </key>\n"
|
||||
" <many-to-many class=\"Group\">\n"
|
||||
" <column name=\"groupName\"/>\n"
|
||||
" <formula>org</formula>\n"
|
||||
" </many-to-many>\n"
|
||||
" </set>\n"
|
||||
"</class>\n"
|
||||
" \n"
|
||||
"<class name=\"Group\" table=\"`Group`\">\n"
|
||||
" <composite-id>\n"
|
||||
" <key-property name=\"name\"/>\n"
|
||||
" <key-property name=\"org\"/>\n"
|
||||
" </composite-id>\n"
|
||||
" <property name=\"description\"/>\n"
|
||||
" <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
|
||||
" <key>\n"
|
||||
" <column name=\"groupName\"/>\n"
|
||||
" <column name=\"org\"/>\n"
|
||||
" </key>\n"
|
||||
" <many-to-many class=\"User\">\n"
|
||||
" <column name=\"userName\"/>\n"
|
||||
" <formula>org</formula>\n"
|
||||
" </many-to-many>\n"
|
||||
" </set>\n"
|
||||
"</class>\n"
|
||||
"]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: example_mappings.xml:166
|
||||
#, no-c-format
|
||||
#: index.docbook:166
|
||||
msgid "Content based discrimination"
|
||||
msgstr "Discriminación basada en contenido"
|
||||
msgstr "Discriminación basada en contenido"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_mappings.xml:167
|
||||
#, no-c-format
|
||||
#: index.docbook:167
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"Person\"\n"
|
||||
" discriminator-value=\"P\">\n"
|
||||
|
@ -733,16 +1087,62 @@ msgid ""
|
|||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"Person\"\n"
|
||||
" discriminator-value=\"P\">\n"
|
||||
" \n"
|
||||
" <id name=\"id\" \n"
|
||||
" column=\"person_id\" \n"
|
||||
" unsaved-value=\"0\">\n"
|
||||
" <generator class=\"native\"/>\n"
|
||||
" </id>\n"
|
||||
" \n"
|
||||
" \n"
|
||||
" <discriminator \n"
|
||||
" type=\"character\">\n"
|
||||
" <formula>\n"
|
||||
" case \n"
|
||||
" when title is not null then 'E' \n"
|
||||
" when salesperson is not null then 'C' \n"
|
||||
" else 'P' \n"
|
||||
" end\n"
|
||||
" </formula>\n"
|
||||
" </discriminator>\n"
|
||||
"\n"
|
||||
" <property name=\"name\" \n"
|
||||
" not-null=\"true\"\n"
|
||||
" length=\"80\"/>\n"
|
||||
" \n"
|
||||
" <property name=\"sex\" \n"
|
||||
" not-null=\"true\"\n"
|
||||
" update=\"false\"/>\n"
|
||||
" \n"
|
||||
" <component name=\"address\">\n"
|
||||
" <property name=\"address\"/>\n"
|
||||
" <property name=\"zip\"/>\n"
|
||||
" <property name=\"country\"/>\n"
|
||||
" </component>\n"
|
||||
" \n"
|
||||
" <subclass name=\"Employee\" \n"
|
||||
" discriminator-value=\"E\">\n"
|
||||
" <property name=\"title\"\n"
|
||||
" length=\"20\"/>\n"
|
||||
" <property name=\"salary\"/>\n"
|
||||
" <many-to-one name=\"manager\"/>\n"
|
||||
" </subclass>\n"
|
||||
" \n"
|
||||
" <subclass name=\"Customer\" \n"
|
||||
" discriminator-value=\"C\">\n"
|
||||
" <property name=\"comments\"/>\n"
|
||||
" <many-to-one name=\"salesperson\"/>\n"
|
||||
" </subclass>\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: example_mappings.xml:171
|
||||
#, no-c-format
|
||||
#: index.docbook:171
|
||||
msgid "Associations on alternate keys"
|
||||
msgstr "Asociaciones sobre claves alternativas"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_mappings.xml:172
|
||||
#, no-c-format
|
||||
#: index.docbook:172
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"Person\">\n"
|
||||
" \n"
|
||||
|
@ -794,3 +1194,58 @@ msgid ""
|
|||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"Person\">\n"
|
||||
" \n"
|
||||
" <id name=\"id\">\n"
|
||||
" <generator class=\"hilo\"/>\n"
|
||||
" </id>\n"
|
||||
" \n"
|
||||
" <property name=\"name\" length=\"100\"/>\n"
|
||||
" \n"
|
||||
" <one-to-one name=\"address\" \n"
|
||||
" property-ref=\"person\"\n"
|
||||
" cascade=\"all\"\n"
|
||||
" fetch=\"join\"/>\n"
|
||||
" \n"
|
||||
" <set name=\"accounts\" \n"
|
||||
" inverse=\"true\">\n"
|
||||
" <key column=\"userId\"\n"
|
||||
" property-ref=\"userId\"/>\n"
|
||||
" <one-to-many class=\"Account\"/>\n"
|
||||
" </set>\n"
|
||||
" \n"
|
||||
" <property name=\"userId\" length=\"8\"/>\n"
|
||||
"\n"
|
||||
"</class>\n"
|
||||
"\n"
|
||||
"<class name=\"Address\">\n"
|
||||
"\n"
|
||||
" <id name=\"id\">\n"
|
||||
" <generator class=\"hilo\"/>\n"
|
||||
" </id>\n"
|
||||
"\n"
|
||||
" <property name=\"address\" length=\"300\"/>\n"
|
||||
" <property name=\"zip\" length=\"5\"/>\n"
|
||||
" <property name=\"country\" length=\"25\"/>\n"
|
||||
" <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
|
||||
"\n"
|
||||
"</class>\n"
|
||||
"\n"
|
||||
"<class name=\"Account\">\n"
|
||||
" <id name=\"accountId\" length=\"32\">\n"
|
||||
" <generator class=\"uuid.hex\"/>\n"
|
||||
" </id>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"user\"\n"
|
||||
" column=\"userId\"\n"
|
||||
" property-ref=\"userId\"/>\n"
|
||||
" \n"
|
||||
" <property name=\"type\" not-null=\"true\"/>\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
|
||||
msgid "ROLES_OF_TRANSLATORS"
|
||||
msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
msgid "CREDIT_FOR_TRANSLATORS"
|
||||
msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
|
|
|
@ -1,24 +1,15 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2007-10-25 07:47+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:5
|
||||
#, no-c-format
|
||||
#: index.docbook:5
|
||||
msgid "Example: Parent/Child"
|
||||
msgstr "Ejemplo: Padre/Hijo"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:7
|
||||
#, no-c-format
|
||||
#: index.docbook:7
|
||||
msgid ""
|
||||
"One of the very first things that new users try to do with Hibernate is to "
|
||||
"model a parent / child type relationship. There are two different approaches "
|
||||
|
@ -35,52 +26,46 @@ msgid ""
|
|||
"model a parent / child relationship efficiently and elegantly. It's not at "
|
||||
"all difficult!"
|
||||
msgstr ""
|
||||
"Una de las primerísimas cosas que los usuarios nuevos intentan hacer con "
|
||||
"Hibernate es modelar una relación de tipo padre / hijo. Para esto hay dos "
|
||||
"enfoques diferentes. Por varias razones, el enfoque más conveniente, "
|
||||
"especialmente para usuarios nuevos, es modelar tanto <literal>Parent</"
|
||||
"literal> como <literal>Child</literal> como clases de entidad con una "
|
||||
"asociación <literal><one-to-many></literal> desde <literal>Parent</"
|
||||
"literal> a <literal>Child</literal>. (El enfoque alternativo es declarar el "
|
||||
"<literal>Child</literal> como un <literal><composite-element></"
|
||||
"literal>.) Ahora, resulta que la semántica por defecto de una asociación uno "
|
||||
"a muchos (en Hibernate) es mucho menos cercana a la semántica usual de una "
|
||||
"relación padre / hijo que aquellas de un mapeo de elementos compuestos. "
|
||||
"Explicaremos cómo usar una <emphasis>asociación uno a muchos bidireccional "
|
||||
"con tratamiento en cascada</emphasis> para modelar una relación padre / hijo "
|
||||
"eficiente y elegantemente. ¡No es para nada difícil!"
|
||||
"Una de las primerísimas cosas que los usuarios nuevos intentan hacer "
|
||||
"con Hibernate es modelar una relación de tipo padre / hijo. Para esto "
|
||||
"hay dos enfoques diferentes. Por varias razones, el enfoque más "
|
||||
"conveniente, especialmente para usuarios nuevos, es modelar tanto "
|
||||
"<literal>Parent</literal> como <literal>Child</literal> como clases de "
|
||||
"entidad con una asociación <literal><one-to-many></literal> "
|
||||
"desde <literal>Parent</literal> a <literal>Child</literal>. (El enfoque "
|
||||
"alternativo es declarar el <literal>Child</literal> como un <literal><"
|
||||
"composite-element></literal>.) Ahora, resulta que la semántica por "
|
||||
"defecto de una asociación uno a muchos (en Hibernate) es mucho menos "
|
||||
"cercana a la semántica usual de una relación padre / hijo que "
|
||||
"aquellas de un mapeo de elementos compuestos. Explicaremos cómo usar "
|
||||
"una <emphasis>asociación uno a muchos bidireccional con tratamiento "
|
||||
"en cascada</emphasis> para modelar una relación padre / hijo "
|
||||
"eficiente y elegantemente. ¡No es para nada difícil!"
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:21
|
||||
#, no-c-format
|
||||
#: index.docbook:21
|
||||
msgid "A note about collections"
|
||||
msgstr "Una nota sobre las colecciones"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:23
|
||||
#, no-c-format
|
||||
#: index.docbook:23
|
||||
msgid ""
|
||||
"Hibernate collections are considered to be a logical part of their owning "
|
||||
"entity; never of the contained entities. This is a crucial distinction! It "
|
||||
"has the following consequences:"
|
||||
msgstr ""
|
||||
"Se considera que las colecciones de Hibernate son una parte lógica de la "
|
||||
"entidad que las posee; nunca de las entidades contenidas. ¡Esta es una "
|
||||
"distinción crucial! Esto tiene las siguientes consecuencias:"
|
||||
"Se considera que las colecciones de Hibernate son una parte lógica de "
|
||||
"la entidad que las posee; nunca de las entidades contenidas. ¡Esta es "
|
||||
"una distinción crucial! Esto tiene las siguientes consecuencias:"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:30
|
||||
#, no-c-format
|
||||
#: index.docbook:30
|
||||
msgid ""
|
||||
"When we remove / add an object from / to a collection, the version number of "
|
||||
"the collection owner is incremented."
|
||||
msgstr ""
|
||||
"Cuando se quita / añade un objeto desde / a una colección, se incrementa el "
|
||||
"número de versión del dueño de la colección."
|
||||
"Cuando se quita / añade un objeto desde / a una colección, se "
|
||||
"incrementa el número de versión del dueño de la "
|
||||
"colección."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:36
|
||||
#, no-c-format
|
||||
#: index.docbook:36
|
||||
msgid ""
|
||||
"If an object that was removed from a collection is an instance of a value "
|
||||
"type (eg, a composite element), that object will cease to be persistent and "
|
||||
|
@ -88,15 +73,13 @@ msgid ""
|
|||
"value type instance to the collection will cause its state to be immediately "
|
||||
"persistent."
|
||||
msgstr ""
|
||||
"Si un objeto que fue quitado de una colección es una instancia de un tipo de "
|
||||
"valor (por ejemplo, un elemento compuesto), ese objeta cesará de ser "
|
||||
"persistente y su estado será completamente quitado de la base de datos. "
|
||||
"Asimismo, añadir una instancia de tipo de valor a la colección causará que "
|
||||
"su estado sea inmediatamente persistente."
|
||||
"Si un objeto que fue quitado de una colección es una instancia de un "
|
||||
"tipo de valor (por ejemplo, un elemento compuesto), ese objeta cesará "
|
||||
"de ser persistente y su estado será completamente quitado de la base "
|
||||
"de datos. Asimismo, añadir una instancia de tipo de valor a la "
|
||||
"colección causará que su estado sea inmediatamente persistente."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:44
|
||||
#, no-c-format
|
||||
#: index.docbook:44
|
||||
msgid ""
|
||||
"On the other hand, if an entity is removed from a collection (a one-to-many "
|
||||
"or many-to-many association), it will not be deleted, by default. This "
|
||||
|
@ -105,16 +88,14 @@ msgid ""
|
|||
"adding an entity to a collection does not cause that entity to become "
|
||||
"persistent, by default."
|
||||
msgstr ""
|
||||
"Por otro lado, si se quita una entidad de una colección (una asociación uno-"
|
||||
"a-muchos o muchos-a-muchos), no será borrado, por defecto. Este "
|
||||
"comportamiento es completamente consistente. ¡Un cambio en el estado interno "
|
||||
"de otra entidad no hace desaparecer la entidad asociada! Asimismo, añadir "
|
||||
"una entidad a una colección no causa que la entidad se vuelva persistente, "
|
||||
"por defecto."
|
||||
"Por otro lado, si se quita una entidad de una colección (una "
|
||||
"asociación uno-a-muchos o muchos-a-muchos), no será borrado, "
|
||||
"por defecto. Este comportamiento es completamente consistente. ¡Un "
|
||||
"cambio en el estado interno de otra entidad no hace desaparecer la entidad "
|
||||
"asociada! Asimismo, añadir una entidad a una colección no "
|
||||
"causa que la entidad se vuelva persistente, por defecto."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:54
|
||||
#, no-c-format
|
||||
#: index.docbook:54
|
||||
msgid ""
|
||||
"Instead, the default behaviour is that adding an entity to a collection "
|
||||
"merely creates a link between the two entities, while removing it removes "
|
||||
|
@ -122,47 +103,43 @@ msgid ""
|
|||
"appropriate at all is the case of a parent / child relationship, where the "
|
||||
"life of the child is bound to the life cycle of the parent."
|
||||
msgstr ""
|
||||
"En cambio, el comportamiento por defecto es que al añadir una entidad a una "
|
||||
"colección se crea meramente un enlace entre las dos entidades, mientras que "
|
||||
"al quitarla se quita el enlace. Esto es muy apropiado para todos los tipos "
|
||||
"de casos. Donde no es para nada apropiado es en el caso de una relación "
|
||||
"padre / hijo. donde la vida del hijo está ligada al ciclo de vida del padre."
|
||||
"En cambio, el comportamiento por defecto es que al añadir una entidad "
|
||||
"a una colección se crea meramente un enlace entre las dos entidades, "
|
||||
"mientras que al quitarla se quita el enlace. Esto es muy apropiado para "
|
||||
"todos los tipos de casos. Donde no es para nada apropiado es en el caso de "
|
||||
"una relación padre / hijo. donde la vida del hijo está ligada "
|
||||
"al ciclo de vida del padre."
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:64
|
||||
#, no-c-format
|
||||
#: index.docbook:64
|
||||
msgid "Bidirectional one-to-many"
|
||||
msgstr "Uno-a-muchos bidirectional"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:66
|
||||
#, no-c-format
|
||||
#: index.docbook:66
|
||||
msgid ""
|
||||
"Suppose we start with a simple <literal><one-to-many></literal> "
|
||||
"association from <literal>Parent</literal> to <literal>Child</literal>."
|
||||
msgstr ""
|
||||
"Supón que empezamos con una asociación simple <literal><one-to-many></"
|
||||
"literal> desde <literal>Parent</literal> a <literal>Child</literal>."
|
||||
"Supón que empezamos con una asociación simple <literal><one-"
|
||||
"to-many></literal> desde <literal>Parent</literal> a <literal>Child</"
|
||||
"literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:71
|
||||
#, no-c-format
|
||||
#: index.docbook:71
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"children\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:73
|
||||
#, no-c-format
|
||||
#: index.docbook:73
|
||||
msgid "If we were to execute the following code"
|
||||
msgstr "Si ejecutásemos el siguiente código"
|
||||
msgstr "Si ejecutásemos el siguiente código"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:77
|
||||
#, no-c-format
|
||||
#: index.docbook:77
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = .....;\n"
|
||||
"Child c = new Child();\n"
|
||||
|
@ -170,24 +147,23 @@ msgid ""
|
|||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = .....;\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.getChildren().add(c);\n"
|
||||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:79
|
||||
#, no-c-format
|
||||
#: index.docbook:79
|
||||
msgid "Hibernate would issue two SQL statements:"
|
||||
msgstr "Hibernate publicaría dos sentencias SQL:"
|
||||
msgstr "Hibernate publicaría dos sentencias SQL:"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:85
|
||||
#, no-c-format
|
||||
#: index.docbook:85
|
||||
msgid ""
|
||||
"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
|
||||
msgstr ""
|
||||
"un <literal>INSERT</literal> para crear el registro de <literal>c</literal>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:88
|
||||
#, no-c-format
|
||||
#: index.docbook:88
|
||||
msgid ""
|
||||
"an <literal>UPDATE</literal> to create the link from <literal>p</literal> to "
|
||||
"<literal>c</literal>"
|
||||
|
@ -195,39 +171,36 @@ msgstr ""
|
|||
"un <literal>UPDATE</literal> para crear el enlace desde <literal>p</literal> "
|
||||
"a <literal>c</literal>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:95
|
||||
#, no-c-format
|
||||
#: index.docbook:95
|
||||
msgid ""
|
||||
"This is not only inefficient, but also violates any <literal>NOT NULL</"
|
||||
"literal> constraint on the <literal>parent_id</literal> column. We can fix "
|
||||
"the nullability constraint violation by specifying <literal>not-null=\"true"
|
||||
"\"</literal> in the collection mapping:"
|
||||
msgstr ""
|
||||
"Esto no es sólo ineficiente, sino que además viola cualquier restricción "
|
||||
"<literal>NOT NULL</literal> en la columna <literal>parent_id</literal>. "
|
||||
"Podemos reparar la violación de restricción de nulabilidad especificando "
|
||||
"<literal>not-null=\"true\"</literal> en el mapeo de la colección:"
|
||||
"Esto no es sólo ineficiente, sino que además viola cualquier "
|
||||
"restricción <literal>NOT NULL</literal> en la columna "
|
||||
"<literal>parent_id</literal>. Podemos reparar la violación de "
|
||||
"restricción de nulabilidad especificando <literal>not-null=\"true\"</"
|
||||
"literal> en el mapeo de la colección:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:101
|
||||
#, no-c-format
|
||||
#: index.docbook:101
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\">\n"
|
||||
" <key column=\"parent_id\" not-null=\"true\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"children\">\n"
|
||||
" <key column=\"parent_id\" not-null=\"true\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:103
|
||||
#, no-c-format
|
||||
#: index.docbook:103
|
||||
msgid "However, this is not the recommended solution."
|
||||
msgstr "Sin embargo, esta no es la solución recomendada."
|
||||
msgstr "Sin embargo, esta no es la solución recomendada."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:106
|
||||
#, no-c-format
|
||||
#: index.docbook:106
|
||||
msgid ""
|
||||
"The underlying cause of this behaviour is that the link (the foreign key "
|
||||
"<literal>parent_id</literal>) from <literal>p</literal> to <literal>c</"
|
||||
|
@ -235,63 +208,58 @@ msgid ""
|
|||
"object and is therefore not created in the <literal>INSERT</literal>. So the "
|
||||
"solution is to make the link part of the <literal>Child</literal> mapping."
|
||||
msgstr ""
|
||||
"El caso subyacente de este comportamiento es que el enlace (la clave foránea "
|
||||
"<literal>parent_id</literal>) de <literal>p</literal> a <literal>c</literal> "
|
||||
"no es considerado parte del estado del objeto <literal>Child</literal> y por "
|
||||
"lo tanto no es creada en el <literal>INSERT</literal>. De modo que la "
|
||||
"solución es hacer el enlace parte del mapeo del <literal>Child</literal>."
|
||||
"El caso subyacente de este comportamiento es que el enlace (la clave "
|
||||
"foránea <literal>parent_id</literal>) de <literal>p</literal> a "
|
||||
"<literal>c</literal> no es considerado parte del estado del objeto "
|
||||
"<literal>Child</literal> y por lo tanto no es creada en el <literal>INSERT</"
|
||||
"literal>. De modo que la solución es hacer el enlace parte del mapeo "
|
||||
"del <literal>Child</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:113
|
||||
#, no-c-format
|
||||
#: index.docbook:113
|
||||
msgid ""
|
||||
"<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/"
|
||||
">]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/"
|
||||
">]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:115
|
||||
#, no-c-format
|
||||
#: index.docbook:115
|
||||
msgid ""
|
||||
"(We also need to add the <literal>parent</literal> property to the "
|
||||
"<literal>Child</literal> class.)"
|
||||
msgstr ""
|
||||
"(Necesitamos además añadir la propiedad <literal>parent</literal> a la clase "
|
||||
"<literal>Child</literal>.)"
|
||||
"(Necesitamos además añadir la propiedad <literal>parent</"
|
||||
"literal> a la clase <literal>Child</literal>.)"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:119
|
||||
#, no-c-format
|
||||
#: index.docbook:119
|
||||
msgid ""
|
||||
"Now that the <literal>Child</literal> entity is managing the state of the "
|
||||
"link, we tell the collection not to update the link. We use the "
|
||||
"<literal>inverse</literal> attribute."
|
||||
msgstr ""
|
||||
"Ahora que la entidad <literal>Child</literal> está gestionando el estado del "
|
||||
"enlace, le decimos a la colección que no actualice el enlace. Usamos el "
|
||||
"atributo <literal>inverse</literal>."
|
||||
"Ahora que la entidad <literal>Child</literal> está gestionando el "
|
||||
"estado del enlace, le decimos a la colección que no actualice el "
|
||||
"enlace. Usamos el atributo <literal>inverse</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:124
|
||||
#, no-c-format
|
||||
#: index.docbook:124
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:126
|
||||
#, no-c-format
|
||||
#: index.docbook:126
|
||||
msgid "The following code would be used to add a new <literal>Child</literal>"
|
||||
msgstr ""
|
||||
"El siguiente código podría ser usado para añadir un nuevo <literal>Child</"
|
||||
"literal>"
|
||||
"El siguiente código podría ser usado para añadir un "
|
||||
"nuevo <literal>Child</literal>"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:130
|
||||
#, no-c-format
|
||||
#: index.docbook:130
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
|
@ -300,42 +268,46 @@ msgid ""
|
|||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"c.setParent(p);\n"
|
||||
"p.getChildren().add(c);\n"
|
||||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:132
|
||||
#, no-c-format
|
||||
#: index.docbook:132
|
||||
msgid "And now, only one SQL <literal>INSERT</literal> would be issued!"
|
||||
msgstr "Y ahora, ¡Sólo se publicaría un <literal>INSERT</literal> de SQL!"
|
||||
msgstr ""
|
||||
"Y ahora, ¡Sólo se publicaría un <literal>INSERT</"
|
||||
"literal> de SQL!"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:136
|
||||
#, no-c-format
|
||||
#: index.docbook:136
|
||||
msgid ""
|
||||
"To tighten things up a bit, we could create an <literal>addChild()</literal> "
|
||||
"method of <literal>Parent</literal>."
|
||||
msgstr ""
|
||||
"Para ajustar un poco más las cosas, podríamos crear un método "
|
||||
"<literal>addChild()</literal> en <literal>Parent</literal>."
|
||||
"Para ajustar un poco más las cosas, podríamos crear un "
|
||||
"método <literal>addChild()</literal> en <literal>Parent</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:141
|
||||
#, no-c-format
|
||||
#: index.docbook:141
|
||||
msgid ""
|
||||
"<![CDATA[public void addChild(Child c) {\n"
|
||||
" c.setParent(this);\n"
|
||||
" children.add(c);\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[public void addChild(Child c) {\n"
|
||||
" c.setParent(this);\n"
|
||||
" children.add(c);\n"
|
||||
"}]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:143
|
||||
#, no-c-format
|
||||
#: index.docbook:143
|
||||
msgid "Now, the code to add a <literal>Child</literal> looks like"
|
||||
msgstr "Ahora, el código para añadir un <literal>Child</literal> se ve así"
|
||||
msgstr ""
|
||||
"Ahora, el código para añadir un <literal>Child</literal> se ve "
|
||||
"así"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:147
|
||||
#, no-c-format
|
||||
#: index.docbook:147
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
|
@ -343,52 +315,53 @@ msgid ""
|
|||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.addChild(c);\n"
|
||||
"session.save(c);\n"
|
||||
"session.flush();]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:152
|
||||
#, no-c-format
|
||||
#: index.docbook:152
|
||||
msgid "Cascading life cycle"
|
||||
msgstr "Ciclo de vida en cascada"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:154
|
||||
#, no-c-format
|
||||
#: index.docbook:154
|
||||
msgid ""
|
||||
"The explicit call to <literal>save()</literal> is still annoying. We will "
|
||||
"address this by using cascades."
|
||||
msgstr ""
|
||||
"La llamada explícita a <literal>save()</literal> es aún molesta. Apuntaremos "
|
||||
"a esto usando tratamientos en cascada."
|
||||
"La llamada explícita a <literal>save()</literal> es aún "
|
||||
"molesta. Apuntaremos a esto usando tratamientos en cascada."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:159
|
||||
#, no-c-format
|
||||
#: index.docbook:159
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:161
|
||||
#, no-c-format
|
||||
#: index.docbook:161
|
||||
msgid "This simplifies the code above to"
|
||||
msgstr "Esto simplifica el código anterior a"
|
||||
msgstr "Esto simplifica el código anterior a"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:165
|
||||
#, no-c-format
|
||||
#: index.docbook:165
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.addChild(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = new Child();\n"
|
||||
"p.addChild(c);\n"
|
||||
"session.flush();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:167
|
||||
#, no-c-format
|
||||
#: index.docbook:167
|
||||
msgid ""
|
||||
"Similarly, we don't need to iterate over the children when saving or "
|
||||
"deleting a <literal>Parent</literal>. The following removes <literal>p</"
|
||||
|
@ -398,24 +371,21 @@ msgstr ""
|
|||
"<literal>Parent</literal>. Lo siguiente quita <literal>p</literal> y todos "
|
||||
"sus hijos de la base de datos."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:172
|
||||
#, no-c-format
|
||||
#: index.docbook:172
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"session.delete(p);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"session.delete(p);\n"
|
||||
"session.flush();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:174
|
||||
#, no-c-format
|
||||
#: index.docbook:174
|
||||
msgid "However, this code"
|
||||
msgstr "Sin embargo, este código"
|
||||
msgstr "Sin embargo, este código"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:178
|
||||
#, no-c-format
|
||||
#: index.docbook:178
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = (Child) p.getChildren().iterator().next();\n"
|
||||
|
@ -423,24 +393,26 @@ msgid ""
|
|||
"c.setParent(null);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = (Child) p.getChildren().iterator().next();\n"
|
||||
"p.getChildren().remove(c);\n"
|
||||
"c.setParent(null);\n"
|
||||
"session.flush();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:180
|
||||
#, no-c-format
|
||||
#: index.docbook:180
|
||||
msgid ""
|
||||
"will not remove <literal>c</literal> from the database; it will ony remove "
|
||||
"the link to <literal>p</literal> (and cause a <literal>NOT NULL</literal> "
|
||||
"constraint violation, in this case). You need to explicitly <literal>delete()"
|
||||
"</literal> the <literal>Child</literal>."
|
||||
msgstr ""
|
||||
"no quitará <literal>c</literal> de la base de datos; sólo quitará el enlace "
|
||||
"a <literal>p</literal> (y causará una violación a una restricción "
|
||||
"<literal>NOT NULL</literal>). Necesitas borrar el hijo explícitamente "
|
||||
"llamando a <literal>delete()</literal>."
|
||||
"no quitará <literal>c</literal> de la base de datos; sólo "
|
||||
"quitará el enlace a <literal>p</literal> (y causará una "
|
||||
"violación a una restricción <literal>NOT NULL</literal>). "
|
||||
"Necesitas borrar el hijo explícitamente llamando a <literal>delete()</"
|
||||
"literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:186
|
||||
#, no-c-format
|
||||
#: index.docbook:186
|
||||
msgid ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = (Child) p.getChildren().iterator().next();\n"
|
||||
|
@ -448,10 +420,13 @@ msgid ""
|
|||
"session.delete(c);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
|
||||
"Child c = (Child) p.getChildren().iterator().next();\n"
|
||||
"p.getChildren().remove(c);\n"
|
||||
"session.delete(c);\n"
|
||||
"session.flush();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:188
|
||||
#, no-c-format
|
||||
#: index.docbook:188
|
||||
msgid ""
|
||||
"Now, in our case, a <literal>Child</literal> can't really exist without its "
|
||||
"parent. So if we remove a <literal>Child</literal> from the collection, we "
|
||||
|
@ -460,12 +435,10 @@ msgid ""
|
|||
msgstr ""
|
||||
"Ahora, en nuestro caso, un <literal>Child</literal> no puede existir "
|
||||
"realmente sin su padre. De modo que si quitamos un <literal>Child</literal> "
|
||||
"de la colección, realmente queremos que sea borrado. Para esto, debemos usar "
|
||||
"<literal>cascade=\"all-delete-orphan\"</literal>."
|
||||
"de la colección, realmente queremos que sea borrado. Para esto, "
|
||||
"debemos usar <literal>cascade=\"all-delete-orphan\"</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:194
|
||||
#, no-c-format
|
||||
#: index.docbook:194
|
||||
msgid ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-orphan"
|
||||
"\">\n"
|
||||
|
@ -473,10 +446,13 @@ msgid ""
|
|||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-orphan"
|
||||
"\">\n"
|
||||
" <key column=\"parent_id\"/>\n"
|
||||
" <one-to-many class=\"Child\"/>\n"
|
||||
"</set>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:196
|
||||
#, no-c-format
|
||||
#: index.docbook:196
|
||||
msgid ""
|
||||
"Note: even though the collection mapping specifies <literal>inverse=\"true"
|
||||
"\"</literal>, cascades are still processed by iterating the collection "
|
||||
|
@ -484,21 +460,18 @@ msgid ""
|
|||
"cascade, you must add it to the collection. It is not enough to simply call "
|
||||
"<literal>setParent()</literal>."
|
||||
msgstr ""
|
||||
"Nota: aunque el mapeo de la colección especifique <literal>inverse=\"true\"</"
|
||||
"literal>, el tratamiento en cascada se procesa aún al iterar los elementos "
|
||||
"de colección. De modo que si requieres que un objeto sea salvado, borrado o "
|
||||
"actualizado en cascada, debes añadirlo a la colección. No es suficiente con "
|
||||
"simplemente llamar a <literal>setParent()</literal>."
|
||||
"Nota: aunque el mapeo de la colección especifique <literal>inverse="
|
||||
"\"true\"</literal>, el tratamiento en cascada se procesa aún al "
|
||||
"iterar los elementos de colección. De modo que si requieres que un "
|
||||
"objeto sea salvado, borrado o actualizado en cascada, debes añadirlo "
|
||||
"a la colección. No es suficiente con simplemente llamar a "
|
||||
"<literal>setParent()</literal>."
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:206
|
||||
#, no-c-format
|
||||
#: index.docbook:206
|
||||
msgid "Cascades and <literal>unsaved-value</literal>"
|
||||
msgstr "Tratamiento en cascada y <literal>unsaved-value</literal>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:208
|
||||
#, no-c-format
|
||||
#: index.docbook:208
|
||||
msgid ""
|
||||
"Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
|
||||
"literal>, made some changes in a UI action and wish to persist these changes "
|
||||
|
@ -513,23 +486,23 @@ msgid ""
|
|||
"\"/>.) <emphasis>In Hibernate3, it is no longer necessary to specify an "
|
||||
"<literal>unsaved-value</literal> explicitly.</emphasis>"
|
||||
msgstr ""
|
||||
"Supón que hemos cargado un <literal>Parent</literal> en una "
|
||||
"<literal>Session</literal>, hemos hecho algunos cambios en una acción de UI "
|
||||
"y deseamos hacer persistentes estos cambios en una nueva sesión llamando a "
|
||||
"<literal>update()</literal>. El <literal>Parent</literal> contendrá una "
|
||||
"colección de hijos y, ya que está habilitado el tratamiento en cascada, "
|
||||
"Hibernate necesita saber qué hijos están recién instanciados y cuáles "
|
||||
"representan filas existentes en la base de datos. Asumamos que tanto "
|
||||
"<literal>Parent</literal> como <literal>Child</literal> tienen propiedades "
|
||||
"identificadoras generadas de tipo <literal>Long</literal>. Hibernate usará "
|
||||
"el identificador y el valor de la propiedad de versión/timestamp para "
|
||||
"determinar cuáles de los hijos son nuevos. (Ver <xref linkend=\"objectstate-"
|
||||
"saveorupdate\"/>.) <emphasis>En Hibernate3, no es más necesario especificar "
|
||||
"un <literal>unsaved-value</literal> explícitamente.</emphasis>"
|
||||
"Supón que hemos cargado un <literal>Parent</literal> en una "
|
||||
"<literal>Session</literal>, hemos hecho algunos cambios en una acción "
|
||||
"de UI y deseamos hacer persistentes estos cambios en una nueva sesión "
|
||||
"llamando a <literal>update()</literal>. El <literal>Parent</literal> "
|
||||
"contendrá una colección de hijos y, ya que está "
|
||||
"habilitado el tratamiento en cascada, Hibernate necesita saber qué "
|
||||
"hijos están recién instanciados y cuáles representan "
|
||||
"filas existentes en la base de datos. Asumamos que tanto <literal>Parent</"
|
||||
"literal> como <literal>Child</literal> tienen propiedades identificadoras "
|
||||
"generadas de tipo <literal>Long</literal>. Hibernate usará el "
|
||||
"identificador y el valor de la propiedad de versión/timestamp para "
|
||||
"determinar cuáles de los hijos son nuevos. (Ver <xref linkend="
|
||||
"\"objectstate-saveorupdate\"/>.) <emphasis>En Hibernate3, no es más "
|
||||
"necesario especificar un <literal>unsaved-value</literal> explí"
|
||||
"citamente.</emphasis>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:220
|
||||
#, no-c-format
|
||||
#: index.docbook:220
|
||||
msgid ""
|
||||
"The following code will update <literal>parent</literal> and <literal>child</"
|
||||
"literal> and insert <literal>newChild</literal>."
|
||||
|
@ -537,9 +510,7 @@ msgstr ""
|
|||
"The following code will update <literal>parent</literal> and <literal>child</"
|
||||
"literal> and insert <literal>newChild</literal>."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_parentchild.xml:225
|
||||
#, no-c-format
|
||||
#: index.docbook:225
|
||||
msgid ""
|
||||
"<![CDATA[//parent and child were both loaded in a previous session\n"
|
||||
"parent.addChild(child);\n"
|
||||
|
@ -548,10 +519,14 @@ msgid ""
|
|||
"session.update(parent);\n"
|
||||
"session.flush();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[//parent and child were both loaded in a previous session\n"
|
||||
"parent.addChild(child);\n"
|
||||
"Child newChild = new Child();\n"
|
||||
"parent.addChild(newChild);\n"
|
||||
"session.update(parent);\n"
|
||||
"session.flush();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:227
|
||||
#, no-c-format
|
||||
#: index.docbook:227
|
||||
msgid ""
|
||||
"Well, that's all very well for the case of a generated identifier, but what "
|
||||
"about assigned identifiers and composite identifiers? This is more "
|
||||
|
@ -562,36 +537,32 @@ msgid ""
|
|||
"the second-level cache or, worst case, the database, to see if the row "
|
||||
"exists."
|
||||
msgstr ""
|
||||
"Bueno, todo eso está muy bien para el caso de un identificador generado, "
|
||||
"pero ¿qué de los identificadores asignados y de los identificadores "
|
||||
"compuestos? Esto es más difícil, ya que Hibernate no puede usar la propiedad "
|
||||
"identificadora para distinguir entre un objeto recién instanciado (con un "
|
||||
"identificador asignado por el usuario) y un objeto cargado en una sesión "
|
||||
"previa. En este caso, Hibernate bien usará la propiedad de versión o "
|
||||
"timestamp, o bien consultará realmente el caché de segundo nivel, o bien, en "
|
||||
"el peor de los casos, la base de datos, para ver si existe la fila."
|
||||
"Bueno, todo eso está muy bien para el caso de un identificador "
|
||||
"generado, pero ¿qué de los identificadores asignados y de los "
|
||||
"identificadores compuestos? Esto es más difícil, ya que "
|
||||
"Hibernate no puede usar la propiedad identificadora para distinguir entre un "
|
||||
"objeto recién instanciado (con un identificador asignado por el "
|
||||
"usuario) y un objeto cargado en una sesión previa. En este caso, "
|
||||
"Hibernate bien usará la propiedad de versión o timestamp, o "
|
||||
"bien consultará realmente el caché de segundo nivel, o bien, "
|
||||
"en el peor de los casos, la base de datos, para ver si existe la fila."
|
||||
|
||||
#. Tag: title
|
||||
#: example_parentchild.xml:260
|
||||
#, no-c-format
|
||||
#: index.docbook:260
|
||||
msgid "Conclusion"
|
||||
msgstr "Conclusión"
|
||||
msgstr "Conclusión"
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:262
|
||||
#, no-c-format
|
||||
#: index.docbook:262
|
||||
msgid ""
|
||||
"There is quite a bit to digest here and it might look confusing first time "
|
||||
"around. However, in practice, it all works out very nicely. Most Hibernate "
|
||||
"applications use the parent / child pattern in many places."
|
||||
msgstr ""
|
||||
"Hay que resumir un poco aquí y podría parecer confuso a la primera vez. Sin "
|
||||
"embargo, en la práctica, todo funciona muy agradablemente. La mayoría de las "
|
||||
"aplicaciones de Hibernate usan el patrón padre / hijo en muchos sitios."
|
||||
"Hay que resumir un poco aquí y podría parecer confuso a la "
|
||||
"primera vez. Sin embargo, en la práctica, todo funciona muy "
|
||||
"agradablemente. La mayoría de las aplicaciones de Hibernate usan el "
|
||||
"patrón padre / hijo en muchos sitios."
|
||||
|
||||
#. Tag: para
|
||||
#: example_parentchild.xml:267
|
||||
#, no-c-format
|
||||
#: index.docbook:267
|
||||
msgid ""
|
||||
"We mentioned an alternative in the first paragraph. None of the above issues "
|
||||
"exist in the case of <literal><composite-element></literal> mappings, "
|
||||
|
@ -600,10 +571,16 @@ msgid ""
|
|||
"composite elements may not own collections, and they should not be the child "
|
||||
"of any entity other than the unique parent."
|
||||
msgstr ""
|
||||
"Hemos mencionado una alternativa en el primer párrafo. Ninguno de los temas "
|
||||
"anteriores existe en el caso de los mapeos <literal><composite-element>"
|
||||
"</literal>, que tienen exactamente la semántica de una relación padre / "
|
||||
"hijo. Desafortunadamente, hay dos grandes limitaciones para las clases de "
|
||||
"elementos compuestos: los elementos compuestos no pueden poseer sus propias "
|
||||
"colecciones, y no deben ser el hijo de cualquier otra entidad que no sea su "
|
||||
"padre único."
|
||||
"Hemos mencionado una alternativa en el primer párrafo. Ninguno de los "
|
||||
"temas anteriores existe en el caso de los mapeos <literal><composite-"
|
||||
"element></literal>, que tienen exactamente la semántica de una "
|
||||
"relación padre / hijo. Desafortunadamente, hay dos grandes "
|
||||
"limitaciones para las clases de elementos compuestos: los elementos "
|
||||
"compuestos no pueden poseer sus propias colecciones, y no deben ser el hijo "
|
||||
"de cualquier otra entidad que no sea su padre único."
|
||||
|
||||
msgid "ROLES_OF_TRANSLATORS"
|
||||
msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
msgid "CREDIT_FOR_TRANSLATORS"
|
||||
msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
|
|
|
@ -1,42 +1,29 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2007-10-25 07:47+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: example_weblog.xml:5
|
||||
#, no-c-format
|
||||
#: index.docbook:5
|
||||
msgid "Example: Weblog Application"
|
||||
msgstr "Ejemplo: Aplicación de Weblog"
|
||||
msgstr "Ejemplo: Aplicación de Weblog"
|
||||
|
||||
#. Tag: title
|
||||
#: example_weblog.xml:8
|
||||
#, no-c-format
|
||||
#: index.docbook:8
|
||||
msgid "Persistent Classes"
|
||||
msgstr "Clases Persistentes"
|
||||
|
||||
#. Tag: para
|
||||
#: example_weblog.xml:10
|
||||
#, no-c-format
|
||||
#: index.docbook:10
|
||||
msgid ""
|
||||
"The persistent classes represent a weblog, and an item posted in a weblog. "
|
||||
"They are to be modelled as a standard parent/child relationship, but we will "
|
||||
"use an ordered bag, instead of a set."
|
||||
msgstr ""
|
||||
"Las clases persistentes representan un weblog, y un ítem enviado a un "
|
||||
"weblog. Van a ser modelados como una relación padre/hijo estñndar, pero "
|
||||
"usaremos un bag ordenado, en vez de un conjunto (set)."
|
||||
"Las clases persistentes representan un weblog, y un ítem enviado a un "
|
||||
"weblog. Van a ser modelados como una relación padre/hijo estñ"
|
||||
"ndar, pero usaremos un bag ordenado, en vez de un conjunto (set)."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_weblog.xml:16
|
||||
#, no-c-format
|
||||
#: index.docbook:16
|
||||
msgid ""
|
||||
"<![CDATA[package eg;\n"
|
||||
"\n"
|
||||
|
@ -67,10 +54,36 @@ msgid ""
|
|||
" }\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[package eg;\n"
|
||||
"\n"
|
||||
"import java.util.List;\n"
|
||||
"\n"
|
||||
"public class Blog {\n"
|
||||
" private Long _id;\n"
|
||||
" private String _name;\n"
|
||||
" private List _items;\n"
|
||||
"\n"
|
||||
" public Long getId() {\n"
|
||||
" return _id;\n"
|
||||
" }\n"
|
||||
" public List getItems() {\n"
|
||||
" return _items;\n"
|
||||
" }\n"
|
||||
" public String getName() {\n"
|
||||
" return _name;\n"
|
||||
" }\n"
|
||||
" public void setId(Long long1) {\n"
|
||||
" _id = long1;\n"
|
||||
" }\n"
|
||||
" public void setItems(List list) {\n"
|
||||
" _items = list;\n"
|
||||
" }\n"
|
||||
" public void setName(String string) {\n"
|
||||
" _name = string;\n"
|
||||
" }\n"
|
||||
"}]]>"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_weblog.xml:18
|
||||
#, no-c-format
|
||||
#: index.docbook:18
|
||||
msgid ""
|
||||
"<![CDATA[package eg;\n"
|
||||
"\n"
|
||||
|
@ -116,22 +129,59 @@ msgid ""
|
|||
" }\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[package eg;\n"
|
||||
"\n"
|
||||
"import java.text.DateFormat;\n"
|
||||
"import java.util.Calendar;\n"
|
||||
"\n"
|
||||
"public class BlogItem {\n"
|
||||
" private Long _id;\n"
|
||||
" private Calendar _datetime;\n"
|
||||
" private String _text;\n"
|
||||
" private String _title;\n"
|
||||
" private Blog _blog;\n"
|
||||
"\n"
|
||||
" public Blog getBlog() {\n"
|
||||
" return _blog;\n"
|
||||
" }\n"
|
||||
" public Calendar getDatetime() {\n"
|
||||
" return _datetime;\n"
|
||||
" }\n"
|
||||
" public Long getId() {\n"
|
||||
" return _id;\n"
|
||||
" }\n"
|
||||
" public String getText() {\n"
|
||||
" return _text;\n"
|
||||
" }\n"
|
||||
" public String getTitle() {\n"
|
||||
" return _title;\n"
|
||||
" }\n"
|
||||
" public void setBlog(Blog blog) {\n"
|
||||
" _blog = blog;\n"
|
||||
" }\n"
|
||||
" public void setDatetime(Calendar calendar) {\n"
|
||||
" _datetime = calendar;\n"
|
||||
" }\n"
|
||||
" public void setId(Long long1) {\n"
|
||||
" _id = long1;\n"
|
||||
" }\n"
|
||||
" public void setText(String string) {\n"
|
||||
" _text = string;\n"
|
||||
" }\n"
|
||||
" public void setTitle(String string) {\n"
|
||||
" _title = string;\n"
|
||||
" }\n"
|
||||
"}]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: example_weblog.xml:23
|
||||
#, no-c-format
|
||||
#: index.docbook:23
|
||||
msgid "Hibernate Mappings"
|
||||
msgstr "Mapeos de Hibernate"
|
||||
|
||||
#. Tag: para
|
||||
#: example_weblog.xml:25
|
||||
#, no-c-format
|
||||
#: index.docbook:25
|
||||
msgid "The XML mappings should now be quite straightforward."
|
||||
msgstr "Los mapeos XML ahora deben ser absolutamente directos."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_weblog.xml:29
|
||||
#, no-c-format
|
||||
#: index.docbook:29
|
||||
msgid ""
|
||||
"<![CDATA[<?xml version=\"1.0\"?>\n"
|
||||
"<!DOCTYPE hibernate-mapping PUBLIC\n"
|
||||
|
@ -173,10 +223,47 @@ msgid ""
|
|||
"\n"
|
||||
"</hibernate-mapping>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<?xml version=\"1.0\"?>\n"
|
||||
"<!DOCTYPE hibernate-mapping PUBLIC\n"
|
||||
" \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
|
||||
" \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
|
||||
"\n"
|
||||
"<hibernate-mapping package=\"eg\">\n"
|
||||
"\n"
|
||||
" <class\n"
|
||||
" name=\"Blog\"\n"
|
||||
" table=\"BLOGS\">\n"
|
||||
"\n"
|
||||
" <id\n"
|
||||
" name=\"id\"\n"
|
||||
" column=\"BLOG_ID\">\n"
|
||||
"\n"
|
||||
" <generator class=\"native\"/>\n"
|
||||
"\n"
|
||||
" </id>\n"
|
||||
"\n"
|
||||
" <property\n"
|
||||
" name=\"name\"\n"
|
||||
" column=\"NAME\"\n"
|
||||
" not-null=\"true\"\n"
|
||||
" unique=\"true\"/>\n"
|
||||
"\n"
|
||||
" <bag\n"
|
||||
" name=\"items\"\n"
|
||||
" inverse=\"true\"\n"
|
||||
" order-by=\"DATE_TIME\"\n"
|
||||
" cascade=\"all\">\n"
|
||||
"\n"
|
||||
" <key column=\"BLOG_ID\"/>\n"
|
||||
" <one-to-many class=\"BlogItem\"/>\n"
|
||||
"\n"
|
||||
" </bag>\n"
|
||||
"\n"
|
||||
" </class>\n"
|
||||
"\n"
|
||||
"</hibernate-mapping>]]>"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_weblog.xml:31
|
||||
#, no-c-format
|
||||
#: index.docbook:31
|
||||
msgid ""
|
||||
"<![CDATA[<?xml version=\"1.0\"?>\n"
|
||||
"<!DOCTYPE hibernate-mapping PUBLIC\n"
|
||||
|
@ -222,16 +309,55 @@ msgid ""
|
|||
"\n"
|
||||
"</hibernate-mapping>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<?xml version=\"1.0\"?>\n"
|
||||
"<!DOCTYPE hibernate-mapping PUBLIC\n"
|
||||
" \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
|
||||
" \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
|
||||
"\n"
|
||||
"<hibernate-mapping package=\"eg\">\n"
|
||||
"\n"
|
||||
" <class\n"
|
||||
" name=\"BlogItem\"\n"
|
||||
" table=\"BLOG_ITEMS\"\n"
|
||||
" dynamic-update=\"true\">\n"
|
||||
"\n"
|
||||
" <id\n"
|
||||
" name=\"id\"\n"
|
||||
" column=\"BLOG_ITEM_ID\">\n"
|
||||
"\n"
|
||||
" <generator class=\"native\"/>\n"
|
||||
"\n"
|
||||
" </id>\n"
|
||||
"\n"
|
||||
" <property\n"
|
||||
" name=\"title\"\n"
|
||||
" column=\"TITLE\"\n"
|
||||
" not-null=\"true\"/>\n"
|
||||
"\n"
|
||||
" <property\n"
|
||||
" name=\"text\"\n"
|
||||
" column=\"TEXT\"\n"
|
||||
" not-null=\"true\"/>\n"
|
||||
"\n"
|
||||
" <property\n"
|
||||
" name=\"datetime\"\n"
|
||||
" column=\"DATE_TIME\"\n"
|
||||
" not-null=\"true\"/>\n"
|
||||
"\n"
|
||||
" <many-to-one\n"
|
||||
" name=\"blog\"\n"
|
||||
" column=\"BLOG_ID\"\n"
|
||||
" not-null=\"true\"/>\n"
|
||||
"\n"
|
||||
" </class>\n"
|
||||
"\n"
|
||||
"</hibernate-mapping>]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: example_weblog.xml:36
|
||||
#, no-c-format
|
||||
#: index.docbook:36
|
||||
msgid "Hibernate Code"
|
||||
msgstr "Código Hibernate"
|
||||
msgstr "Código Hibernate"
|
||||
|
||||
#. Tag: para
|
||||
#: example_weblog.xml:38
|
||||
#, no-c-format
|
||||
#: index.docbook:38
|
||||
msgid ""
|
||||
"The following class demonstrates some of the kinds of things we can do with "
|
||||
"these classes, using Hibernate."
|
||||
|
@ -239,9 +365,7 @@ msgstr ""
|
|||
"La siguiente clase demuestra algunos de los tipos de cosas que podemos haces "
|
||||
"con estas clases, usando Hibernate."
|
||||
|
||||
#. Tag: programlisting
|
||||
#: example_weblog.xml:43
|
||||
#, no-c-format
|
||||
#: index.docbook:43
|
||||
msgid ""
|
||||
"<![CDATA[package eg;\n"
|
||||
"\n"
|
||||
|
@ -482,3 +606,247 @@ msgid ""
|
|||
" }\n"
|
||||
"}]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[package eg;\n"
|
||||
"\n"
|
||||
"import java.util.ArrayList;\n"
|
||||
"import java.util.Calendar;\n"
|
||||
"import java.util.Iterator;\n"
|
||||
"import java.util.List;\n"
|
||||
"\n"
|
||||
"import org.hibernate.HibernateException;\n"
|
||||
"import org.hibernate.Query;\n"
|
||||
"import org.hibernate.Session;\n"
|
||||
"import org.hibernate.SessionFactory;\n"
|
||||
"import org.hibernate.Transaction;\n"
|
||||
"import org.hibernate.cfg.Configuration;\n"
|
||||
"import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
|
||||
"\n"
|
||||
"public class BlogMain {\n"
|
||||
" \n"
|
||||
" private SessionFactory _sessions;\n"
|
||||
" \n"
|
||||
" public void configure() throws HibernateException {\n"
|
||||
" _sessions = new Configuration()\n"
|
||||
" .addClass(Blog.class)\n"
|
||||
" .addClass(BlogItem.class)\n"
|
||||
" .buildSessionFactory();\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" public void exportTables() throws HibernateException {\n"
|
||||
" Configuration cfg = new Configuration()\n"
|
||||
" .addClass(Blog.class)\n"
|
||||
" .addClass(BlogItem.class);\n"
|
||||
" new SchemaExport(cfg).create(true, true);\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" public Blog createBlog(String name) throws HibernateException {\n"
|
||||
" \n"
|
||||
" Blog blog = new Blog();\n"
|
||||
" blog.setName(name);\n"
|
||||
" blog.setItems( new ArrayList() );\n"
|
||||
" \n"
|
||||
" Session session = _sessions.openSession();\n"
|
||||
" Transaction tx = null;\n"
|
||||
" try {\n"
|
||||
" tx = session.beginTransaction();\n"
|
||||
" session.persist(blog);\n"
|
||||
" tx.commit();\n"
|
||||
" }\n"
|
||||
" catch (HibernateException he) {\n"
|
||||
" if (tx!=null) tx.rollback();\n"
|
||||
" throw he;\n"
|
||||
" }\n"
|
||||
" finally {\n"
|
||||
" session.close();\n"
|
||||
" }\n"
|
||||
" return blog;\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" public BlogItem createBlogItem(Blog blog, String title, String text)\n"
|
||||
" throws HibernateException {\n"
|
||||
" \n"
|
||||
" BlogItem item = new BlogItem();\n"
|
||||
" item.setTitle(title);\n"
|
||||
" item.setText(text);\n"
|
||||
" item.setBlog(blog);\n"
|
||||
" item.setDatetime( Calendar.getInstance() );\n"
|
||||
" blog.getItems().add(item);\n"
|
||||
" \n"
|
||||
" Session session = _sessions.openSession();\n"
|
||||
" Transaction tx = null;\n"
|
||||
" try {\n"
|
||||
" tx = session.beginTransaction();\n"
|
||||
" session.update(blog);\n"
|
||||
" tx.commit();\n"
|
||||
" }\n"
|
||||
" catch (HibernateException he) {\n"
|
||||
" if (tx!=null) tx.rollback();\n"
|
||||
" throw he;\n"
|
||||
" }\n"
|
||||
" finally {\n"
|
||||
" session.close();\n"
|
||||
" }\n"
|
||||
" return item;\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" public BlogItem createBlogItem(Long blogid, String title, String text)\n"
|
||||
" throws HibernateException {\n"
|
||||
" \n"
|
||||
" BlogItem item = new BlogItem();\n"
|
||||
" item.setTitle(title);\n"
|
||||
" item.setText(text);\n"
|
||||
" item.setDatetime( Calendar.getInstance() );\n"
|
||||
" \n"
|
||||
" Session session = _sessions.openSession();\n"
|
||||
" Transaction tx = null;\n"
|
||||
" try {\n"
|
||||
" tx = session.beginTransaction();\n"
|
||||
" Blog blog = (Blog) session.load(Blog.class, blogid);\n"
|
||||
" item.setBlog(blog);\n"
|
||||
" blog.getItems().add(item);\n"
|
||||
" tx.commit();\n"
|
||||
" }\n"
|
||||
" catch (HibernateException he) {\n"
|
||||
" if (tx!=null) tx.rollback();\n"
|
||||
" throw he;\n"
|
||||
" }\n"
|
||||
" finally {\n"
|
||||
" session.close();\n"
|
||||
" }\n"
|
||||
" return item;\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" public void updateBlogItem(BlogItem item, String text)\n"
|
||||
" throws HibernateException {\n"
|
||||
" \n"
|
||||
" item.setText(text);\n"
|
||||
" \n"
|
||||
" Session session = _sessions.openSession();\n"
|
||||
" Transaction tx = null;\n"
|
||||
" try {\n"
|
||||
" tx = session.beginTransaction();\n"
|
||||
" session.update(item);\n"
|
||||
" tx.commit();\n"
|
||||
" }\n"
|
||||
" catch (HibernateException he) {\n"
|
||||
" if (tx!=null) tx.rollback();\n"
|
||||
" throw he;\n"
|
||||
" }\n"
|
||||
" finally {\n"
|
||||
" session.close();\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" public void updateBlogItem(Long itemid, String text)\n"
|
||||
" throws HibernateException {\n"
|
||||
" \n"
|
||||
" Session session = _sessions.openSession();\n"
|
||||
" Transaction tx = null;\n"
|
||||
" try {\n"
|
||||
" tx = session.beginTransaction();\n"
|
||||
" BlogItem item = (BlogItem) session.load(BlogItem.class, "
|
||||
"itemid);\n"
|
||||
" item.setText(text);\n"
|
||||
" tx.commit();\n"
|
||||
" }\n"
|
||||
" catch (HibernateException he) {\n"
|
||||
" if (tx!=null) tx.rollback();\n"
|
||||
" throw he;\n"
|
||||
" }\n"
|
||||
" finally {\n"
|
||||
" session.close();\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" public List listAllBlogNamesAndItemCounts(int max)\n"
|
||||
" throws HibernateException {\n"
|
||||
" \n"
|
||||
" Session session = _sessions.openSession();\n"
|
||||
" Transaction tx = null;\n"
|
||||
" List result = null;\n"
|
||||
" try {\n"
|
||||
" tx = session.beginTransaction();\n"
|
||||
" Query q = session.createQuery(\n"
|
||||
" \"select blog.id, blog.name, count(blogItem) \" +\n"
|
||||
" \"from Blog as blog \" +\n"
|
||||
" \"left outer join blog.items as blogItem \" +\n"
|
||||
" \"group by blog.name, blog.id \" +\n"
|
||||
" \"order by max(blogItem.datetime)\"\n"
|
||||
" );\n"
|
||||
" q.setMaxResults(max);\n"
|
||||
" result = q.list();\n"
|
||||
" tx.commit();\n"
|
||||
" }\n"
|
||||
" catch (HibernateException he) {\n"
|
||||
" if (tx!=null) tx.rollback();\n"
|
||||
" throw he;\n"
|
||||
" }\n"
|
||||
" finally {\n"
|
||||
" session.close();\n"
|
||||
" }\n"
|
||||
" return result;\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" public Blog getBlogAndAllItems(Long blogid)\n"
|
||||
" throws HibernateException {\n"
|
||||
" \n"
|
||||
" Session session = _sessions.openSession();\n"
|
||||
" Transaction tx = null;\n"
|
||||
" Blog blog = null;\n"
|
||||
" try {\n"
|
||||
" tx = session.beginTransaction();\n"
|
||||
" Query q = session.createQuery(\n"
|
||||
" \"from Blog as blog \" +\n"
|
||||
" \"left outer join fetch blog.items \" +\n"
|
||||
" \"where blog.id = :blogid\"\n"
|
||||
" );\n"
|
||||
" q.setParameter(\"blogid\", blogid);\n"
|
||||
" blog = (Blog) q.uniqueResult();\n"
|
||||
" tx.commit();\n"
|
||||
" }\n"
|
||||
" catch (HibernateException he) {\n"
|
||||
" if (tx!=null) tx.rollback();\n"
|
||||
" throw he;\n"
|
||||
" }\n"
|
||||
" finally {\n"
|
||||
" session.close();\n"
|
||||
" }\n"
|
||||
" return blog;\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" public List listBlogsAndRecentItems() throws HibernateException {\n"
|
||||
" \n"
|
||||
" Session session = _sessions.openSession();\n"
|
||||
" Transaction tx = null;\n"
|
||||
" List result = null;\n"
|
||||
" try {\n"
|
||||
" tx = session.beginTransaction();\n"
|
||||
" Query q = session.createQuery(\n"
|
||||
" \"from Blog as blog \" +\n"
|
||||
" \"inner join blog.items as blogItem \" +\n"
|
||||
" \"where blogItem.datetime > :minDate\"\n"
|
||||
" );\n"
|
||||
"\n"
|
||||
" Calendar cal = Calendar.getInstance();\n"
|
||||
" cal.roll(Calendar.MONTH, false);\n"
|
||||
" q.setCalendar(\"minDate\", cal);\n"
|
||||
" \n"
|
||||
" result = q.list();\n"
|
||||
" tx.commit();\n"
|
||||
" }\n"
|
||||
" catch (HibernateException he) {\n"
|
||||
" if (tx!=null) tx.rollback();\n"
|
||||
" throw he;\n"
|
||||
" }\n"
|
||||
" finally {\n"
|
||||
" session.close();\n"
|
||||
" }\n"
|
||||
" return result;\n"
|
||||
" }\n"
|
||||
"}]]>"
|
||||
|
||||
msgid "ROLES_OF_TRANSLATORS"
|
||||
msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
msgid "CREDIT_FOR_TRANSLATORS"
|
||||
msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
|
|
|
@ -1,24 +1,15 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2007-10-25 07:47+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: filters.xml:5
|
||||
#, no-c-format
|
||||
#: index.docbook:5
|
||||
msgid "Filtering data"
|
||||
msgstr "Filtrando datos"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:7
|
||||
#, no-c-format
|
||||
#: index.docbook:7
|
||||
msgid ""
|
||||
"Hibernate3 provides an innovative new approach to handling data with "
|
||||
"\"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, "
|
||||
|
@ -30,15 +21,11 @@ msgstr ""
|
|||
"global, con nombre y parametrizado que puede ser habilitado o deshabilitado "
|
||||
"para una sesión de Hibernate en particular."
|
||||
|
||||
#. Tag: title
|
||||
#: filters.xml:14
|
||||
#, no-c-format
|
||||
#: index.docbook:14
|
||||
msgid "Hibernate filters"
|
||||
msgstr "Filtros de Hibernate"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:16
|
||||
#, no-c-format
|
||||
#: index.docbook:16
|
||||
msgid ""
|
||||
"Hibernate3 adds the ability to pre-define filter criteria and attach those "
|
||||
"filters at both a class and a collection level. A filter criteria is the "
|
||||
|
@ -59,9 +46,7 @@ msgstr ""
|
|||
"Los filtros pueden ser usados como vistas de base de datos, pero "
|
||||
"parametrizados dentro de la aplicación."
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:26
|
||||
#, no-c-format
|
||||
#: index.docbook:26
|
||||
msgid ""
|
||||
"In order to use filters, they must first be defined and then attached to the "
|
||||
"appropriate mapping elements. To define a filter, use the <literal><"
|
||||
|
@ -73,24 +58,21 @@ msgstr ""
|
|||
"<literal><filter-def/></literal> dentro de un elemento <literal><"
|
||||
"hibernate-mapping/></literal>:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:32
|
||||
#, no-c-format
|
||||
#: index.docbook:32
|
||||
msgid ""
|
||||
"<![CDATA[<filter-def name=\"myFilter\">\n"
|
||||
" <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
|
||||
"</filter-def>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<filter-def name=\"myFilter\">\n"
|
||||
" <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
|
||||
"</filter-def>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:34
|
||||
#, no-c-format
|
||||
#: index.docbook:34
|
||||
msgid "Then, this filter can be attached to a class:"
|
||||
msgstr "Entonces este filtro puede ser unido a una clase:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:38
|
||||
#, no-c-format
|
||||
#: index.docbook:38
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"myClass\" ...>\n"
|
||||
" ...\n"
|
||||
|
@ -98,32 +80,33 @@ msgid ""
|
|||
"\"/>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"myClass\" ...>\n"
|
||||
" ...\n"
|
||||
" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
|
||||
"\"/>\n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:40
|
||||
#, no-c-format
|
||||
#: index.docbook:40
|
||||
msgid "or, to a collection:"
|
||||
msgstr "o a una colección:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:44
|
||||
#, no-c-format
|
||||
#: index.docbook:44
|
||||
msgid ""
|
||||
"<![CDATA[<set ...>\n"
|
||||
" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
|
||||
"\"/>\n"
|
||||
"</set>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<set ...>\n"
|
||||
" <filter name=\"myFilter\" condition=\":myFilterParam = MY_FILTERED_COLUMN"
|
||||
"\"/>\n"
|
||||
"</set>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:46
|
||||
#, no-c-format
|
||||
#: index.docbook:46
|
||||
msgid "or, even to both (or multiples of each) at the same time."
|
||||
msgstr "o incluso a ambos (o muchos de cada uno) al mismo tiempo."
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:50
|
||||
#, no-c-format
|
||||
#: index.docbook:50
|
||||
msgid ""
|
||||
"The methods on <literal>Session</literal> are: <literal>enableFilter(String "
|
||||
"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
|
||||
|
@ -143,17 +126,15 @@ msgstr ""
|
|||
"de la interface <literal>Filter</literal>. Usando el filtro simple definido "
|
||||
"arriba, esto se vería así:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:59
|
||||
#, no-c-format
|
||||
#: index.docbook:59
|
||||
msgid ""
|
||||
"<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", "
|
||||
"\"some-value\");]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", "
|
||||
"\"some-value\");]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:61
|
||||
#, no-c-format
|
||||
#: index.docbook:61
|
||||
msgid ""
|
||||
"Note that methods on the org.hibernate.Filter interface do allow the method-"
|
||||
"chaining common to much of Hibernate."
|
||||
|
@ -161,18 +142,14 @@ msgstr ""
|
|||
"Nota que los métodos en la interface org.hibernate.Filter permiten el "
|
||||
"encadenamiento de métodos común en gran parte de Hibernate."
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:65
|
||||
#, no-c-format
|
||||
#: index.docbook:65
|
||||
msgid ""
|
||||
"A full example, using temporal data with an effective record date pattern:"
|
||||
msgstr ""
|
||||
"Un ejemplo completo, usando datos temporales con un patrón efectivo de "
|
||||
"fechas de registro:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:69
|
||||
#, no-c-format
|
||||
#: index.docbook:69
|
||||
msgid ""
|
||||
"<![CDATA[<filter-def name=\"effectiveDate\">\n"
|
||||
" <filter-param name=\"asOfDate\" type=\"date\"/>\n"
|
||||
|
@ -207,10 +184,40 @@ msgid ""
|
|||
" </set>\n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<filter-def name=\"effectiveDate\">\n"
|
||||
" <filter-param name=\"asOfDate\" type=\"date\"/>\n"
|
||||
"</filter-def>\n"
|
||||
"\n"
|
||||
"<class name=\"Employee\" ...>\n"
|
||||
"...\n"
|
||||
" <many-to-one name=\"department\" column=\"dept_id\" class=\"Department\"/"
|
||||
">\n"
|
||||
" <property name=\"effectiveStartDate\" type=\"date\" column=\"eff_start_dt"
|
||||
"\"/>\n"
|
||||
" <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt\"/"
|
||||
">\n"
|
||||
"...\n"
|
||||
" <!--\n"
|
||||
" Note that this assumes non-terminal records have an eff_end_dt set "
|
||||
"to\n"
|
||||
" a max db date for simplicity-sake\n"
|
||||
" -->\n"
|
||||
" <filter name=\"effectiveDate\"\n"
|
||||
" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/>\n"
|
||||
"</class>\n"
|
||||
"\n"
|
||||
"<class name=\"Department\" ...>\n"
|
||||
"...\n"
|
||||
" <set name=\"employees\" lazy=\"true\">\n"
|
||||
" <key column=\"dept_id\"/>\n"
|
||||
" <one-to-many class=\"Employee\"/>\n"
|
||||
" <filter name=\"effectiveDate\"\n"
|
||||
" condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
|
||||
">\n"
|
||||
" </set>\n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:71
|
||||
#, no-c-format
|
||||
#: index.docbook:71
|
||||
msgid ""
|
||||
"Then, in order to ensure that you always get back currently effective "
|
||||
"records, simply enable the filter on the session prior to retrieving "
|
||||
|
@ -220,9 +227,7 @@ msgstr ""
|
|||
"actualmente efectivos, simplemente habilita el filtro en la sesión previo a "
|
||||
"recuperar los datos de empleados:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:76
|
||||
#, no-c-format
|
||||
#: index.docbook:76
|
||||
msgid ""
|
||||
"<![CDATA[Session session = ...;\n"
|
||||
"session.enabledFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date"
|
||||
|
@ -233,10 +238,16 @@ msgid ""
|
|||
" .list();\n"
|
||||
"]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = ...;\n"
|
||||
"session.enabledFilter(\"effectiveDate\").setParameter(\"asOfDate\", new Date"
|
||||
"());\n"
|
||||
"List results = session.createQuery(\"from Employee as e where e.salary > :"
|
||||
"targetSalary\")\n"
|
||||
" .setLong(\"targetSalary\", new Long(1000000))\n"
|
||||
" .list();\n"
|
||||
"]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:78
|
||||
#, no-c-format
|
||||
#: index.docbook:78
|
||||
msgid ""
|
||||
"In the HQL above, even though we only explicitly mentioned a salary "
|
||||
"constraint on the results, because of the enabled filter the query will "
|
||||
|
@ -248,9 +259,7 @@ msgstr ""
|
|||
"consulta sólo devolverá empleados actualmente activos que tengan un salario "
|
||||
"mayor que un millón de dólares."
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:84
|
||||
#, no-c-format
|
||||
#: index.docbook:84
|
||||
msgid ""
|
||||
"Note: if you plan on using filters with outer joining (either through HQL or "
|
||||
"load fetching) be careful of the direction of the condition expression. Its "
|
||||
|
@ -263,32 +272,32 @@ msgstr ""
|
|||
"externa izquierda (left outer joining). En general, coloca el primer "
|
||||
"parámetro seguido del nombre(s) de columna(s) después del operador."
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:91
|
||||
#, no-c-format
|
||||
#: index.docbook:91
|
||||
msgid ""
|
||||
"After being defined a filter might be attached to multiple entities and/or "
|
||||
"collections each with its own condition. That can be tedious when the "
|
||||
"conditions are the same each time. Thus <literal><filter-def/></"
|
||||
"literal> allows defining a default condition, either as an attribute or "
|
||||
"CDATA:"
|
||||
msgstr "translator-credits"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: programlisting
|
||||
#: filters.xml:98
|
||||
#, no-c-format
|
||||
#: index.docbook:98
|
||||
msgid ""
|
||||
"<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</filter-"
|
||||
"def>\n"
|
||||
"<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
|
||||
msgstr ""
|
||||
|
||||
#. Tag: para
|
||||
#: filters.xml:100
|
||||
#, no-c-format
|
||||
#: index.docbook:100
|
||||
msgid ""
|
||||
"This default condition will then be used whenever the filter is attached to "
|
||||
"something without specifying a condition. Note that this means you can give "
|
||||
"a specific condition as part of the attachment of the filter which overrides "
|
||||
"the default condition in that particular case."
|
||||
msgstr ""
|
||||
|
||||
msgid "ROLES_OF_TRANSLATORS"
|
||||
msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
msgid "CREDIT_FOR_TRANSLATORS"
|
||||
msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,24 +1,15 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2007-10-25 07:47+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: preface.xml:21
|
||||
#, no-c-format
|
||||
#: index.docbook:21
|
||||
msgid "Preface"
|
||||
msgstr "Prefacio"
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:23
|
||||
#, no-c-format
|
||||
#: index.docbook:23
|
||||
msgid ""
|
||||
"Working with object-oriented software and a relational database can be "
|
||||
"cumbersome and time consuming in today's enterprise environments. Hibernate "
|
||||
|
@ -28,30 +19,26 @@ msgid ""
|
|||
"based schema."
|
||||
msgstr ""
|
||||
"Trabajar con software orientado a objetos y una base de datos relacional "
|
||||
"puede ser incómodo y consumir tiempo en los entornos de empresa de hoy. "
|
||||
"Hibernate es una herramienta de mapeo objeto/relacional para entornos Java. "
|
||||
"El término mapeo objeto/relacional (MOR) hace referencia a la técnica de "
|
||||
"mapear una representación de datos desde un modelo de objetos a un modelo de "
|
||||
"datos relacional con un esquema basado en SQL."
|
||||
"puede ser incómodo y consumir tiempo en los entornos de empresa de "
|
||||
"hoy. Hibernate es una herramienta de mapeo objeto/relacional para entornos "
|
||||
"Java. El término mapeo objeto/relacional (MOR) hace referencia a la "
|
||||
"técnica de mapear una representación de datos desde un modelo "
|
||||
"de objetos a un modelo de datos relacional con un esquema basado en SQL."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:31
|
||||
#, no-c-format
|
||||
#: index.docbook:31
|
||||
msgid ""
|
||||
"Hibernate not only takes care of the mapping from Java classes to database "
|
||||
"tables (and from Java data types to SQL data types), but also provides data "
|
||||
"query and retrieval facilities and can significantly reduce development time "
|
||||
"otherwise spent with manual data handling in SQL and JDBC."
|
||||
msgstr ""
|
||||
"Hibernate no sólo se encarga de mapear de clases Java a tablas de base de "
|
||||
"datos (y de tipos de datos de Java a tipos de datos SQL), sino que también "
|
||||
"provee facilidades de consulta y recuperación de datos y puede reducir "
|
||||
"significativamente el tiempo de desarrollo que de otra forma se gasta en el "
|
||||
"manejo de los datos en SQL y JDBC."
|
||||
"Hibernate no sólo se encarga de mapear de clases Java a tablas de "
|
||||
"base de datos (y de tipos de datos de Java a tipos de datos SQL), sino que "
|
||||
"también provee facilidades de consulta y recuperación de datos "
|
||||
"y puede reducir significativamente el tiempo de desarrollo que de otra forma "
|
||||
"se gasta en el manejo de los datos en SQL y JDBC."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:38
|
||||
#, no-c-format
|
||||
#: index.docbook:38
|
||||
msgid ""
|
||||
"Hibernates goal is to relieve the developer from 95 percent of common data "
|
||||
"persistence related programming tasks. Hibernate may not be the best "
|
||||
|
@ -63,18 +50,17 @@ msgid ""
|
|||
"translation from a tabular representation to a graph of objects."
|
||||
msgstr ""
|
||||
"La meta de Hibernate es relevar al desarrollador del 95 por ciento de las "
|
||||
"tareas comunes relacionadas a la programación de la persistencia de los "
|
||||
"datos. Hibernate puede no ser la mejor solución para aplicaciones que usan "
|
||||
"solamente procedimientos almacenados para implementar la lógica de negocio "
|
||||
"en la base de datos, es mas útil con modelos de dominio orientados a objetos "
|
||||
"y lógica de negocio en middle-tier basada en Java. Sin embargo, Hibernate "
|
||||
"ciertamente puede ayudarte a quitar o encapsular código SQL específico de "
|
||||
"vendedor y ayudará con la tarea común de traducción de resultados desde una "
|
||||
"representación tabular a un grafo de objetos."
|
||||
"tareas comunes relacionadas a la programación de la persistencia de "
|
||||
"los datos. Hibernate puede no ser la mejor solución para aplicaciones "
|
||||
"que usan solamente procedimientos almacenados para implementar la ló"
|
||||
"gica de negocio en la base de datos, es mas útil con modelos de "
|
||||
"dominio orientados a objetos y lógica de negocio en middle-tier "
|
||||
"basada en Java. Sin embargo, Hibernate ciertamente puede ayudarte a quitar o "
|
||||
"encapsular código SQL específico de vendedor y ayudará "
|
||||
"con la tarea común de traducción de resultados desde una "
|
||||
"representación tabular a un grafo de objetos."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:48
|
||||
#, no-c-format
|
||||
#: index.docbook:48
|
||||
msgid ""
|
||||
"If you are new to Hibernate and Object/Relational Mapping or even Java, "
|
||||
"please follow these steps:"
|
||||
|
@ -82,9 +68,7 @@ msgstr ""
|
|||
"Si eres nuevo en Hibernate y lo del Mapeo Objeto/Relacional o incluso en "
|
||||
"Java, sigue por favor estos pasos:"
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:55
|
||||
#, no-c-format
|
||||
#: index.docbook:55
|
||||
msgid ""
|
||||
"Read <xref linkend=\"tutorial\"/> for a tutorial with step-by-step "
|
||||
"instructions. The source code for the tutorial is included in the "
|
||||
|
@ -93,9 +77,7 @@ msgstr ""
|
|||
"Lee <xref linkend=\"quickstart\"/> para un tutorial de 30 minutos, usando "
|
||||
"Tomcat."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:63
|
||||
#, no-c-format
|
||||
#: index.docbook:63
|
||||
msgid ""
|
||||
"Read <xref linkend=\"architecture\"/> to understand the environments where "
|
||||
"Hibernate can be used."
|
||||
|
@ -103,9 +85,7 @@ msgstr ""
|
|||
"Lee <xref linkend=\"architecture\"/> para entender los entornos en los que "
|
||||
"puede ser usado Hibernate."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:69
|
||||
#, no-c-format
|
||||
#: index.docbook:69
|
||||
msgid ""
|
||||
"Have a look at the <literal>eg/</literal> directory in the Hibernate "
|
||||
"distribution, it contains a simple standalone application. Copy your JDBC "
|
||||
|
@ -114,17 +94,15 @@ msgid ""
|
|||
"From a command prompt in the distribution directory, type <literal>ant eg</"
|
||||
"literal> (using Ant), or under Windows, type <literal>build eg</literal>."
|
||||
msgstr ""
|
||||
"Dale una mirada al directorio <literal>eg/</literal> en la distribución de "
|
||||
"Hibernate, contiene una aplicación independiente simple. Copia tu driver "
|
||||
"JDBC al directorio <literal>lib/</literal> y edita <literal>etc/hibernate."
|
||||
"properties</literal>, especificando los valores correctos para tu base de "
|
||||
"datos. Desde línea de comandos en el directorio de la distribución, tipea "
|
||||
"<literal>ant eg</literal> (usando Ant), o bajo Windows, tipea <literal>build "
|
||||
"eg</literal>."
|
||||
"Dale una mirada al directorio <literal>eg/</literal> en la distribució"
|
||||
"n de Hibernate, contiene una aplicación independiente simple. Copia "
|
||||
"tu driver JDBC al directorio <literal>lib/</literal> y edita <literal>etc/"
|
||||
"hibernate.properties</literal>, especificando los valores correctos para tu "
|
||||
"base de datos. Desde línea de comandos en el directorio de la "
|
||||
"distribución, tipea <literal>ant eg</literal> (usando Ant), o bajo "
|
||||
"Windows, tipea <literal>build eg</literal>."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:80
|
||||
#, no-c-format
|
||||
#: index.docbook:80
|
||||
msgid ""
|
||||
"Use this reference documentation as your primary source of information. "
|
||||
"Consider reading <emphasis>Java Persistence with Hibernate</emphasis> "
|
||||
|
@ -133,22 +111,19 @@ msgid ""
|
|||
"caveatemptor.hibernate.org and download the example application for Java "
|
||||
"Persistence with Hibernate."
|
||||
msgstr ""
|
||||
"Usa esta documentación de referencia como tu fuente de información primaria. "
|
||||
"Ten en consideración leer <emphasis>Java Persistence with Hibernate</"
|
||||
"emphasis> (http://www.manning.com/bauer2) si necesitas mas ayuda con el "
|
||||
"diseño de aplicaciones o si prefieres un tutorial paso a paso. Visita "
|
||||
"también http://caveatemptor.hibernate.org y descarga la aplicación de "
|
||||
"ejemplo para Java Persistence with Hibernate."
|
||||
"Usa esta documentación de referencia como tu fuente de "
|
||||
"información primaria. Ten en consideración leer <emphasis>Java "
|
||||
"Persistence with Hibernate</emphasis> (http://www.manning.com/bauer2) si "
|
||||
"necesitas mas ayuda con el diseño de aplicaciones o si prefieres un "
|
||||
"tutorial paso a paso. Visita también http://caveatemptor.hibernate."
|
||||
"org y descarga la aplicación de ejemplo para Java Persistence with "
|
||||
"Hibernate."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:90
|
||||
#, no-c-format
|
||||
#: index.docbook:90
|
||||
msgid "FAQs are answered on the Hibernate website."
|
||||
msgstr "Los FAQs son respondidos en el sitio web de Hibernate."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:95
|
||||
#, no-c-format
|
||||
#: index.docbook:95
|
||||
msgid ""
|
||||
"Third party demos, examples, and tutorials are linked on the Hibernate "
|
||||
"website."
|
||||
|
@ -156,21 +131,17 @@ msgstr ""
|
|||
"En el sitio web de Hibernate hay enlaces a demos de terceros, ejemplos y "
|
||||
"tutoriales."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:101
|
||||
#, no-c-format
|
||||
#: index.docbook:101
|
||||
msgid ""
|
||||
"The Community Area on the Hibernate website is a good resource for design "
|
||||
"patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, "
|
||||
"etc.)."
|
||||
msgstr ""
|
||||
"El Area de Comunidad en el sitio web de Hibernate es una buena fuente de "
|
||||
"patrones de diseño y varias soluciones de integración (Tomcat, JBoss, "
|
||||
"Struts, EJB, etc.)."
|
||||
"patrones de diseño y varias soluciones de integración (Tomcat, "
|
||||
"JBoss, Struts, EJB, etc.)."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:109
|
||||
#, no-c-format
|
||||
#: index.docbook:109
|
||||
msgid ""
|
||||
"If you have questions, use the user forum linked on the Hibernate website. "
|
||||
"We also provide a JIRA issue trackings system for bug reports and feature "
|
||||
|
@ -179,15 +150,13 @@ msgid ""
|
|||
"documentation into your language, contact us on the developer mailing list."
|
||||
msgstr ""
|
||||
"Si tienes preguntas, usa el foro de usuarios enlazado en el sitio web de "
|
||||
"Hibernate. También proveemos un sistema de seguimiento JIRA para reportes de "
|
||||
"defectos y peticiones de nuevas características. Si estas interesado en el "
|
||||
"desarrollo de Hibernate, únete a la lista de correo de desarrolladores. Si "
|
||||
"estas interesado en traducir esta documentación a tu lenguaje, contáctanos "
|
||||
"en la lista de correo de desarrolladores."
|
||||
"Hibernate. También proveemos un sistema de seguimiento JIRA para "
|
||||
"reportes de defectos y peticiones de nuevas características. Si estas "
|
||||
"interesado en el desarrollo de Hibernate, únete a la lista de correo "
|
||||
"de desarrolladores. Si estas interesado en traducir esta documentació"
|
||||
"n a tu lenguaje, contáctanos en la lista de correo de desarrolladores."
|
||||
|
||||
#. Tag: para
|
||||
#: preface.xml:117
|
||||
#, no-c-format
|
||||
#: index.docbook:117
|
||||
msgid ""
|
||||
"Commercial development support, production support, and training for "
|
||||
"Hibernate is available through JBoss Inc. (see http://www.hibernate.org/"
|
||||
|
@ -195,7 +164,14 @@ msgid ""
|
|||
"critical component of the JBoss Enterprise Middleware System (JEMS) suite of "
|
||||
"products."
|
||||
msgstr ""
|
||||
"A través de JBoss Inc. (see http://www.hibernate.org/SupportTraining/) hay "
|
||||
"disponibilidad de soporte comercial de desarrollo, soporte de producción y "
|
||||
"entrenamiento en Hibernate. Hibernate es un proyecto de la suite de "
|
||||
"productos de código abierto JBoss Professional."
|
||||
"A través de JBoss Inc. (see http://www.hibernate.org/"
|
||||
"SupportTraining/) hay disponibilidad de soporte comercial de desarrollo, "
|
||||
"soporte de producción y entrenamiento en Hibernate. Hibernate es un "
|
||||
"proyecto de la suite de productos de código abierto JBoss "
|
||||
"Professional."
|
||||
|
||||
msgid "ROLES_OF_TRANSLATORS"
|
||||
msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
msgid "CREDIT_FOR_TRANSLATORS"
|
||||
msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,24 +1,15 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
|
||||
"POT-Creation-Date: 2007-10-25 07:48+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:5
|
||||
#, no-c-format
|
||||
#: index.docbook:5
|
||||
msgid "XML Mapping"
|
||||
msgstr "Mapeo XML"
|
||||
|
||||
#. Tag: emphasis
|
||||
#: xml.xml:7
|
||||
#, no-c-format
|
||||
#: index.docbook:7
|
||||
msgid ""
|
||||
"Note that this is an experimental feature in Hibernate 3.0 and is under "
|
||||
"extremely active development."
|
||||
|
@ -26,15 +17,11 @@ msgstr ""
|
|||
"Nota que esta es una funcionalidad experimental en Hibernate 3.0 y está bajo "
|
||||
"un desarrollo extremadamente activo."
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:13
|
||||
#, no-c-format
|
||||
#: index.docbook:13
|
||||
msgid "Working with XML data"
|
||||
msgstr "Trabajando con datos XML"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:15
|
||||
#, no-c-format
|
||||
#: index.docbook:15
|
||||
msgid ""
|
||||
"Hibernate lets you work with persistent XML data in much the same way you "
|
||||
"work with persistent POJOs. A parsed XML tree can be thought of as just "
|
||||
|
@ -46,9 +33,7 @@ msgstr ""
|
|||
"puede ser pensado como sólo otra forma de representar los datos relacionales "
|
||||
"a nivel de objetos, en vez de POJOs."
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:22
|
||||
#, no-c-format
|
||||
#: index.docbook:22
|
||||
msgid ""
|
||||
"Hibernate supports dom4j as API for manipulating XML trees. You can write "
|
||||
"queries that retrieve dom4j trees from the database and have any "
|
||||
|
@ -66,9 +51,7 @@ msgstr ""
|
|||
"Hibernate: <literal>persist(), saveOrUpdate(), merge(), delete(), replicate()"
|
||||
"</literal> (la fusión no está aún soportada)."
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:32
|
||||
#, no-c-format
|
||||
#: index.docbook:32
|
||||
msgid ""
|
||||
"This feature has many applications including data import/export, "
|
||||
"externalization of entity data via JMS or SOAP and XSLT-based reporting."
|
||||
|
@ -77,9 +60,7 @@ msgstr ""
|
|||
"exportación de datos, externalización de datos de entidad vía JMS o SOAP y "
|
||||
"reportes basados en XSLT."
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:37
|
||||
#, no-c-format
|
||||
#: index.docbook:37
|
||||
msgid ""
|
||||
"A single mapping may be used to simultaneously map properties of a class and "
|
||||
"nodes of an XML document to the database, or, if there is no class to map, "
|
||||
|
@ -89,21 +70,15 @@ msgstr ""
|
|||
"una clase y los nodos de un documento XML a la base de datos, o, si no hay "
|
||||
"ninguna clase a mapear, puede ser usado para mapear sólo el XML."
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:44
|
||||
#, no-c-format
|
||||
#: index.docbook:44
|
||||
msgid "Specifying XML and class mapping together"
|
||||
msgstr "Especificando los mapeos de XML y de clase juntos"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:46
|
||||
#, no-c-format
|
||||
#: index.docbook:46
|
||||
msgid "Here is an example of mapping a POJO and XML simultaneously:"
|
||||
msgstr "He aquí un ejemplo de mapear un POJO y XML simultáneamente:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:50
|
||||
#, no-c-format
|
||||
#: index.docbook:50
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"Account\" \n"
|
||||
" table=\"ACCOUNTS\" \n"
|
||||
|
@ -126,22 +101,36 @@ msgid ""
|
|||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"Account\" \n"
|
||||
" table=\"ACCOUNTS\" \n"
|
||||
" node=\"account\">\n"
|
||||
" \n"
|
||||
" <id name=\"accountId\" \n"
|
||||
" column=\"ACCOUNT_ID\" \n"
|
||||
" node=\"@id\"/>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"customer\" \n"
|
||||
" column=\"CUSTOMER_ID\" \n"
|
||||
" node=\"customer/@id\" \n"
|
||||
" embed-xml=\"false\"/>\n"
|
||||
" \n"
|
||||
" <property name=\"balance\" \n"
|
||||
" column=\"BALANCE\" \n"
|
||||
" node=\"balance\"/>\n"
|
||||
" \n"
|
||||
" ...\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:54
|
||||
#, no-c-format
|
||||
#: index.docbook:54
|
||||
msgid "Specifying only an XML mapping"
|
||||
msgstr "Especificando sólo un mapeo XML"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:56
|
||||
#, no-c-format
|
||||
#: index.docbook:56
|
||||
msgid "Here is an example where there is no POJO class:"
|
||||
msgstr "He aquí un ejemplo donde no hay ninguna clase POJO:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:60
|
||||
#, no-c-format
|
||||
#: index.docbook:60
|
||||
msgid ""
|
||||
"<![CDATA[<class entity-name=\"Account\" \n"
|
||||
" table=\"ACCOUNTS\" \n"
|
||||
|
@ -167,10 +156,31 @@ msgid ""
|
|||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class entity-name=\"Account\" \n"
|
||||
" table=\"ACCOUNTS\" \n"
|
||||
" node=\"account\">\n"
|
||||
" \n"
|
||||
" <id name=\"id\" \n"
|
||||
" column=\"ACCOUNT_ID\" \n"
|
||||
" node=\"@id\" \n"
|
||||
" type=\"string\"/>\n"
|
||||
" \n"
|
||||
" <many-to-one name=\"customerId\" \n"
|
||||
" column=\"CUSTOMER_ID\" \n"
|
||||
" node=\"customer/@id\" \n"
|
||||
" embed-xml=\"false\" \n"
|
||||
" entity-name=\"Customer\"/>\n"
|
||||
" \n"
|
||||
" <property name=\"balance\" \n"
|
||||
" column=\"BALANCE\" \n"
|
||||
" node=\"balance\" \n"
|
||||
" type=\"big_decimal\"/>\n"
|
||||
" \n"
|
||||
" ...\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:62
|
||||
#, no-c-format
|
||||
#: index.docbook:62
|
||||
msgid ""
|
||||
"This mapping allows you to access the data as a dom4j tree, or as a graph of "
|
||||
"property name/value pairs (java <literal>Map</literal>s). The property names "
|
||||
|
@ -181,15 +191,11 @@ msgstr ""
|
|||
"Los nombres de propiedades son construcciones puramente lógicas a las que se "
|
||||
"puede hacer referencia en consultas HQL."
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:73
|
||||
#, no-c-format
|
||||
#: index.docbook:73
|
||||
msgid "XML mapping metadata"
|
||||
msgstr "Mapeo de metadatos XML"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:75
|
||||
#, no-c-format
|
||||
#: index.docbook:75
|
||||
msgid ""
|
||||
"Many Hibernate mapping elements accept the <literal>node</literal> "
|
||||
"attribute. This let's you specify the name of an XML attribute or element "
|
||||
|
@ -201,28 +207,20 @@ msgstr ""
|
|||
"que contenga los datos de la propiedad o entidad. El formato del atributo "
|
||||
"<literal>node</literal> debe ser uno de los siguientes:"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:84
|
||||
#, no-c-format
|
||||
#: index.docbook:84
|
||||
msgid "<literal>\"element-name\"</literal> - map to the named XML element"
|
||||
msgstr "<literal>\"element-name\"</literal> - mapea al elemento XML mencionado"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:87
|
||||
#, no-c-format
|
||||
#: index.docbook:87
|
||||
msgid "<literal>\"@attribute-name\"</literal> - map to the named XML attribute"
|
||||
msgstr ""
|
||||
"<literal>\"@attribute-name\"</literal> - mapea al atributo XML mencionado"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:90
|
||||
#, no-c-format
|
||||
#: index.docbook:90
|
||||
msgid "<literal>\".\"</literal> - map to the parent element"
|
||||
msgstr "<literal>\".\"</literal> - mapea al elemento padre"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:93
|
||||
#, no-c-format
|
||||
#: index.docbook:93
|
||||
msgid ""
|
||||
"<literal>\"element-name/@attribute-name\"</literal> - map to the named "
|
||||
"attribute of the named element"
|
||||
|
@ -230,9 +228,7 @@ msgstr ""
|
|||
"<literal>\"element-name/@attribute-name\"</literal> - mapea al atributo "
|
||||
"mencionado del elemento mencionado"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:100
|
||||
#, no-c-format
|
||||
#: index.docbook:100
|
||||
msgid ""
|
||||
"For collections and single valued associations, there is an additional "
|
||||
"<literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</"
|
||||
|
@ -251,9 +247,7 @@ msgstr ""
|
|||
"el XML para asociaciones de punto único y para las colecciones simplemente "
|
||||
"no aparecerá en absoluto."
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:110
|
||||
#, no-c-format
|
||||
#: index.docbook:110
|
||||
msgid ""
|
||||
"You should be careful not to leave <literal>embed-xml=\"true\"</literal> for "
|
||||
"too many associations, since XML does not deal well with circularity!"
|
||||
|
@ -261,9 +255,7 @@ msgstr ""
|
|||
"¡Debes ser cuidadoso de no dejar <literal>embed-xml=\"true\"</literal> para "
|
||||
"demasiadas asociaciones, ya que XML no trata bien la circularidad!"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:115
|
||||
#, no-c-format
|
||||
#: index.docbook:115
|
||||
msgid ""
|
||||
"<![CDATA[<class name=\"Customer\" \n"
|
||||
" table=\"CUSTOMER\" \n"
|
||||
|
@ -300,10 +292,42 @@ msgid ""
|
|||
" \n"
|
||||
"</class>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<class name=\"Customer\" \n"
|
||||
" table=\"CUSTOMER\" \n"
|
||||
" node=\"customer\">\n"
|
||||
" \n"
|
||||
" <id name=\"id\" \n"
|
||||
" column=\"CUST_ID\" \n"
|
||||
" node=\"@id\"/>\n"
|
||||
" \n"
|
||||
" <map name=\"accounts\" \n"
|
||||
" node=\".\" \n"
|
||||
" embed-xml=\"true\">\n"
|
||||
" <key column=\"CUSTOMER_ID\" \n"
|
||||
" not-null=\"true\"/>\n"
|
||||
" <map-key column=\"SHORT_DESC\" \n"
|
||||
" node=\"@short-desc\" \n"
|
||||
" type=\"string\"/>\n"
|
||||
" <one-to-many entity-name=\"Account\"\n"
|
||||
" embed-xml=\"false\" \n"
|
||||
" node=\"account\"/>\n"
|
||||
" </map>\n"
|
||||
" \n"
|
||||
" <component name=\"name\" \n"
|
||||
" node=\"name\">\n"
|
||||
" <property name=\"firstName\" \n"
|
||||
" node=\"first-name\"/>\n"
|
||||
" <property name=\"initial\" \n"
|
||||
" node=\"initial\"/>\n"
|
||||
" <property name=\"lastName\" \n"
|
||||
" node=\"last-name\"/>\n"
|
||||
" </component>\n"
|
||||
" \n"
|
||||
" ...\n"
|
||||
" \n"
|
||||
"</class>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:117
|
||||
#, no-c-format
|
||||
#: index.docbook:117
|
||||
msgid ""
|
||||
"in this case, we have decided to embed the collection of account ids, but "
|
||||
"not the actual account data. The following HQL query:"
|
||||
|
@ -311,23 +335,19 @@ msgstr ""
|
|||
"en este caso, hemos decidido embeber la colección de ids de cuenta, pero no "
|
||||
"los datos reales de cuenta. La siguiente consulta HQL:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:122
|
||||
#, no-c-format
|
||||
#: index.docbook:122
|
||||
msgid ""
|
||||
"<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :"
|
||||
"lastName]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[from Customer c left join fetch c.accounts where c.lastName like :"
|
||||
"lastName]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:124
|
||||
#, no-c-format
|
||||
#: index.docbook:124
|
||||
msgid "Would return datasets such as this:"
|
||||
msgstr "devolvería conjuntos de datos como estos:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:128
|
||||
#, no-c-format
|
||||
#: index.docbook:128
|
||||
msgid ""
|
||||
"<![CDATA[<customer id=\"123456789\">\n"
|
||||
" <account short-desc=\"Savings\">987632567</account>\n"
|
||||
|
@ -340,10 +360,18 @@ msgid ""
|
|||
" ...\n"
|
||||
"</customer>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<customer id=\"123456789\">\n"
|
||||
" <account short-desc=\"Savings\">987632567</account>\n"
|
||||
" <account short-desc=\"Credit Card\">985612323</account>\n"
|
||||
" <name>\n"
|
||||
" <first-name>Gavin</first-name>\n"
|
||||
" <initial>A</initial>\n"
|
||||
" <last-name>King</last-name>\n"
|
||||
" </name>\n"
|
||||
" ...\n"
|
||||
"</customer>]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:130
|
||||
#, no-c-format
|
||||
#: index.docbook:130
|
||||
msgid ""
|
||||
"If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-"
|
||||
"many></literal> mapping, the data might look more like this:"
|
||||
|
@ -351,9 +379,7 @@ msgstr ""
|
|||
"Si estableces <literal>embed-xml=\"true\"</literal> en el mapeo <literal><"
|
||||
"one-to-many></literal>, los datos podrían verse así:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:135
|
||||
#, no-c-format
|
||||
#: index.docbook:135
|
||||
msgid ""
|
||||
"<![CDATA[<customer id=\"123456789\">\n"
|
||||
" <account id=\"987632567\" short-desc=\"Savings\">\n"
|
||||
|
@ -372,16 +398,28 @@ msgid ""
|
|||
" ...\n"
|
||||
"</customer>]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[<customer id=\"123456789\">\n"
|
||||
" <account id=\"987632567\" short-desc=\"Savings\">\n"
|
||||
" <customer id=\"123456789\"/>\n"
|
||||
" <balance>100.29</balance>\n"
|
||||
" </account>\n"
|
||||
" <account id=\"985612323\" short-desc=\"Credit Card\">\n"
|
||||
" <customer id=\"123456789\"/>\n"
|
||||
" <balance>-2370.34</balance>\n"
|
||||
" </account>\n"
|
||||
" <name>\n"
|
||||
" <first-name>Gavin</first-name>\n"
|
||||
" <initial>A</initial>\n"
|
||||
" <last-name>King</last-name>\n"
|
||||
" </name>\n"
|
||||
" ...\n"
|
||||
"</customer>]]>"
|
||||
|
||||
#. Tag: title
|
||||
#: xml.xml:141
|
||||
#, no-c-format
|
||||
#: index.docbook:141
|
||||
msgid "Manipulating XML data"
|
||||
msgstr "Manipulando datos XML"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:143
|
||||
#, no-c-format
|
||||
#: index.docbook:143
|
||||
msgid ""
|
||||
"Let's rearead and update XML documents in the application. We do this by "
|
||||
"obtaining a dom4j session:"
|
||||
|
@ -389,9 +427,7 @@ msgstr ""
|
|||
"Vamos a releer y actualizar documentos XML en la aplicación. Hacemos esto "
|
||||
"obteniendo una sesión dom4j:"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:148
|
||||
#, no-c-format
|
||||
#: index.docbook:148
|
||||
msgid ""
|
||||
"<![CDATA[Document doc = ....;\n"
|
||||
" \n"
|
||||
|
@ -412,10 +448,26 @@ msgid ""
|
|||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Document doc = ....;\n"
|
||||
" \n"
|
||||
"Session session = factory.openSession();\n"
|
||||
"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"List results = dom4jSession\n"
|
||||
" .createQuery(\"from Customer c left join fetch c.accounts where c."
|
||||
"lastName like :lastName\")\n"
|
||||
" .list();\n"
|
||||
"for ( int i=0; i<results.size(); i++ ) {\n"
|
||||
" //add the customer data to the XML document\n"
|
||||
" Element customer = (Element) results.get(i);\n"
|
||||
" doc.add(customer);\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
|
||||
#. Tag: programlisting
|
||||
#: xml.xml:150
|
||||
#, no-c-format
|
||||
#: index.docbook:150
|
||||
msgid ""
|
||||
"<![CDATA[Session session = factory.openSession();\n"
|
||||
"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
|
||||
|
@ -434,10 +486,24 @@ msgid ""
|
|||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
msgstr ""
|
||||
"<![CDATA[Session session = factory.openSession();\n"
|
||||
"Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
|
||||
"Transaction tx = session.beginTransaction();\n"
|
||||
"\n"
|
||||
"Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
|
||||
"for ( int i=0; i<results.size(); i++ ) {\n"
|
||||
" Element customer = (Element) results.get(i);\n"
|
||||
" //change the customer name in the XML and database\n"
|
||||
" Element name = customer.element(\"name\");\n"
|
||||
" name.element(\"first-name\").setText(firstName);\n"
|
||||
" name.element(\"initial\").setText(initial);\n"
|
||||
" name.element(\"last-name\").setText(lastName);\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"tx.commit();\n"
|
||||
"session.close();]]>"
|
||||
|
||||
#. Tag: para
|
||||
#: xml.xml:152
|
||||
#, no-c-format
|
||||
#: index.docbook:152
|
||||
msgid ""
|
||||
"It is extremely useful to combine this feature with Hibernate's "
|
||||
"<literal>replicate()</literal> operation to implement XML-based data import/"
|
||||
|
@ -446,3 +512,9 @@ msgstr ""
|
|||
"Es extremadamente útil combinar esta funcionalidad con la operación "
|
||||
"<literal>replicate()</literal> de Hibernate para implementar la importación/"
|
||||
"exportación de datos basada en XML."
|
||||
|
||||
msgid "ROLES_OF_TRANSLATORS"
|
||||
msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
|
||||
|
||||
msgid "CREDIT_FOR_TRANSLATORS"
|
||||
msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
|
||||
|
|
Loading…
Reference in New Issue