📄 inheritance_mapping.po
字号:
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"#. Tag: title#: inheritance_mapping.xml:5#, no-c-formatmsgid "Inheritance Mapping"msgstr "Mapeamento de Herança"#. Tag: title#: inheritance_mapping.xml:8#, no-c-formatmsgid "The Three Strategies"msgstr "As três estratégias"#. Tag: para#: inheritance_mapping.xml:10#, no-c-formatmsgid "Hibernate supports the three basic inheritance mapping strategies:"msgstr """O Hibernate suporta as três estratégias básicas de mapeamento de herança:"#. Tag: para#: inheritance_mapping.xml:16#, no-c-formatmsgid "table per class hierarchy"msgstr "tabela por hierarquia de classes"#. Tag: para#: inheritance_mapping.xml:21#, fuzzy, no-c-formatmsgid "<para>table per subclass</para>"msgstr """#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n""tabela por subclasse\n""#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n""table per subclass"#. Tag: para#: inheritance_mapping.xml:26#, no-c-formatmsgid "table per concrete class"msgstr "tabela por classe concreta"#. Tag: para#: inheritance_mapping.xml:32#, no-c-formatmsgid """In addition, Hibernate supports a fourth, slightly different kind of ""polymorphism:"msgstr """Adicionalmente, o Hibernate suporta uma quarta, um tipo levemente diferente ""de polimorfismo:"#. Tag: para#: inheritance_mapping.xml:39#, no-c-formatmsgid "implicit polymorphism"msgstr "polimorfismo implícito"#. Tag: para#: inheritance_mapping.xml:45#, no-c-formatmsgid """It is possible to use different mapping strategies for different branches of ""the same inheritance hierarchy, and then make use of implicit polymorphism ""to achieve polymorphism across the whole hierarchy. However, Hibernate does ""not support mixing <literal><subclass></literal>, and <literal><""joined-subclass></literal> and <literal><union-subclass></literal> ""mappings under the same root <literal><class></literal> element. It is ""possible to mix together the table per hierarchy and table per subclass ""strategies, under the the same <literal><class></literal> element, by ""combining the <literal><subclass></literal> and <literal><join></""literal> elements (see below)."msgstr """É possível usar diferentes estratégias de mapeamento para diferentes ""ramificações da mesma hierarquia de herança, e então fazer uso do ""polimorfismo implícito para alcançar polimorfismo através da hierarquia ""completa. De qualquer forma, O Hibernate não suporta a mistura de ""mapeamentos <literal><subclass></literal>, and <literal><joined-""subclass></literal> e <literal><union-subclass></literal> dentro do ""mesmo elemento raiz <literal><class></literal>. É possível usar junto ""às estratégias tabela por hierarquia e a tabela por subclasse, abaixo do ""mesmo elemento <literal><class></literal>, combinando os elementos ""<literal><subclass></literal> e <literal><join></literal> (veja ""abaixo)."#. Tag: para#: inheritance_mapping.xml:59#, no-c-formatmsgid """It is possible to define <literal>subclass</literal>, <literal>union-""subclass</literal>, and <literal>joined-subclass</literal> mappings in ""separate mapping documents, directly beneath <literal>hibernate-mapping</""literal>. This allows you to extend a class hierachy just by adding a new ""mapping file. You must specify an <literal>extends</literal> attribute in ""the subclass mapping, naming a previously mapped superclass. Note: ""Previously this feature made the ordering of the mapping documents ""important. Since Hibernate3, the ordering of mapping files does not matter ""when using the extends keyword. The ordering inside a single mapping file ""still needs to be defined as superclasses before subclasses."msgstr """É possível definir mapeamentos <literal>subclass</literal>, <literal>union-""subclass</literal>, e <literal>joined-subclass</literal> em documentos de ""mapeamento separados, diretamente abaixo de <literal>hibernate-mapping</""literal>. Isso permite a você estender uma hierarquia de classes apenas ""adicionando um novo arquivo de mapeamento. Você deve especificar um atributo ""<literal>extends</literal> no mapeamento da subclasse, nomeando uma ""superclasse previamente mapeada. Nota: Anteriormente esta característica ""fazia o ordenamento dos documentos de mapeamento importantes. Desde o ""Hibernate3, o ordenamento dos arquivos de mapeamento não importa quando ""usamos a palavra chave extends. O ordenamento dentro de um arquivo de ""mapeamento simples ainda necessita ser definido como superclasse antes de ""subclasse."#. Tag: programlisting#: inheritance_mapping.xml:70#, no-c-formatmsgid """<![CDATA[\n"" <hibernate-mapping>\n"" <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-value=\"D""\">\n"" <property name=\"name\" type=\"string\"/>\n"" </subclass>\n"" </hibernate-mapping>]]>"msgstr ""#. Tag: title#: inheritance_mapping.xml:74#, no-c-formatmsgid "Table per class hierarchy"msgstr "Tabela por hierarquia de classes"#. Tag: para#: inheritance_mapping.xml:76#, no-c-formatmsgid """Suppose we have an interface <literal>Payment</literal>, with implementors ""<literal>CreditCardPayment</literal>, <literal>CashPayment</literal>, ""<literal>ChequePayment</literal>. The table per hierarchy mapping would look ""like:"msgstr """Suponha que tenhamos uma interface <literal>Payment</literal>, com sua ""implementação <literal>CreditCardPayment</literal>, <literal>CashPayment</""literal>, <literal>ChequePayment</literal>. O mapeamento da tabela por ""hierarquia seria parecido com:"#. Tag: programlisting#: inheritance_mapping.xml:83#, no-c-formatmsgid """<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"" <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"" <generator class=\"native\"/>\n"" </id>\n"" <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"" <property name=\"amount\" column=\"AMOUNT\"/>\n"" ...\n"" <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"" <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"" ...\n"" </subclass>\n"" <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"" ...\n"" </subclass>\n"" <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"" ...\n"" </subclass>\n""</class>]]>"msgstr ""#. Tag: para#: inheritance_mapping.xml:85#, no-c-formatmsgid """Exactly one table is required. There is one big limitation of this mapping ""strategy: columns declared by the subclasses, such as <literal>CCTYPE</""literal>, may not have <literal>NOT NULL</literal> constraints."msgstr """Exactly one table is required. There is one big limitation of this mapping ""strategy: columns declared by the subclasses, such as <literal>CCTYPE</""literal>, may not have <literal>NOT NULL</literal> constraints."#. Tag: title#: inheritance_mapping.xml:94#, no-c-formatmsgid "Table per subclass"msgstr "Tabela por subclasse"#. Tag: para#: inheritance_mapping.xml:96#, no-c-formatmsgid "A table per subclass mapping would look like:"msgstr "Um mapeamento de tabela por subclasse seria parecido com:"#. Tag: programlisting#: inheritance_mapping.xml:100#, no-c-formatmsgid """<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"" <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"" <generator class=\"native\"/>\n"" </id>\n"" <property name=\"amount\" column=\"AMOUNT\"/>\n"" ...\n"" <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"" <key column=\"PAYMENT_ID\"/>\n"" <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"" ...\n"" </joined-subclass>\n"" <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"" <key column=\"PAYMENT_ID\"/>\n"" ...\n"" </joined-subclass>\n"" <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"" <key column=\"PAYMENT_ID\"/>\n"" ...\n"" </joined-subclass>\n""</class>]]>"msgstr ""#. Tag: para#: inheritance_mapping.xml:102#, no-c-formatmsgid """Four tables are required. The three subclass tables have primary key ""associations to the superclass table (so the relational model is actually a ""one-to-one association)."msgstr """Quatro tabelas são necessárias. As três tabelas subclasses possuem ""associação de chave primária para a tabela de superclasse (então o modelo ""relacional é atualmente uma associação de um-para-um)."#. Tag: title#: inheritance_mapping.xml:111#, no-c-formatmsgid "Table per subclass, using a discriminator"msgstr "Tabela por subclasse, usando um discriminador"#. Tag: para#: inheritance_mapping.xml:113#, no-c-formatmsgid """Note that Hibernate's implementation of table per subclass requires no ""discriminator column. Other object/relational mappers use a different ""implementation of table per subclass which requires a type discriminator ""column in the superclass table. The approach taken by Hibernate is much more ""difficult to implement but arguably more correct from a relational point of ""view. If you would like to use a discriminator column with the table per ""subclass strategy, you may combine the use of <literal><subclass></""literal> and <literal><join></literal>, as follow:"msgstr """Note que a implementação de tabela por subclasse do Hibernate não necessita ""de coluna de discriminador. Outro mapeador objeto/relacional usa uma ""implementação diferente de tabela por subclasse, que necessita uma coluna ""com o tipo discriminador na tabela da superclasse. A abordagem escolhida ""pelo Hibernate é muito mais difícil de implementar, porém de forma ""argumentável mais correto de um ponto de vista relacional. Se você deseja ""utilizar uma coluna discriminadora com a estratégia tabela por subclasse, ""você pode combinar o uso de <literal><subclass></literal> e ""<literal><join></literal>, dessa maneira:"#. Tag: programlisting#: inheritance_mapping.xml:125#, no-c-formatmsgid """<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"" <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"" <generator class=\"native\"/>\n"" </id>\n"" <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"" <property name=\"amount\" column=\"AMOUNT\"/>\n"" ...\n"" <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"" <join table=\"CREDIT_PAYMENT\">\n"" <key column=\"PAYMENT_ID\"/>\n"" <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"" ...\n"" </join>\n"" </subclass>\n"" <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"" <join table=\"CASH_PAYMENT\">\n"" <key column=\"PAYMENT_ID\"/>\n"" ...\n"" </join>\n"" </subclass>\n"" <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"" <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"" <key column=\"PAYMENT_ID\"/>\n"" ...\n"" </join>\n"" </subclass>\n""</class>]]>"msgstr ""#. Tag: para#: inheritance_mapping.xml:127#, no-c-formatmsgid """The optional <literal>fetch=\"select\"</literal> declaration tells Hibernate ""not to fetch the <literal>ChequePayment</literal> subclass data using an ""outer join when querying the superclass."msgstr """The optional <literal>fetch=\"select\"</literal> declaration tells Hibernate ""not to fetch the <literal>ChequePayment</literal> subclass data using an ""outer join when querying the superclass. A declaração opcional ""fetch=”select” diz ao Hibernate para não buscar os dados da subclasse ""ChequePayment, quando usar um outer join pesquisando pela superclasse."#. Tag: title#: inheritance_mapping.xml:136#, no-c-formatmsgid "Mixing table per class hierarchy with table per subclass"msgstr ". Misturando tabela por hierarquia de classes com tabela por subclasse"#. Tag: para#: inheritance_mapping.xml:138#, no-c-formatmsgid """You may even mix the table per hierarchy and table per subclass strategies ""using this approach:"msgstr """Você pode até mesmo misturar a estratégia de tabela por hierarquia e tabela ""por subclasse usando esta abordagem:"#. Tag: programlisting#: inheritance_mapping.xml:143#, no-c-formatmsgid """<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"" <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"" <generator class=\"native\"/>\n"" </id>\n"" <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"" <property name=\"amount\" column=\"AMOUNT\"/>\n"" ...\n"" <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"" <join table=\"CREDIT_PAYMENT\">\n"" <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"" ...\n"" </join>\n"" </subclass>\n"" <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"" ...\n"" </subclass>\n"" <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"" ...\n"" </subclass>\n""</class>]]>"msgstr ""#. Tag: para#: inheritance_mapping.xml:145#, no-c-formatmsgid """For any of these mapping strategies, a polymorphic association to the root ""<literal>Payment</literal> class is mapped using <literal><many-to-one>""</literal>."msgstr """Para qualquer uma dessas estratégias de mapeamento, uma associação ""polimórfica para a classe raiz <literal>Payment</literal> deve ser mapeada ""usando <literal><many-to-one></literal>."#. Tag: programlisting#: inheritance_mapping.xml:151#, no-c-formatmsgid """<![CDATA[<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class=\"Payment""\"/>]]>"msgstr ""#. Tag: title#: inheritance_mapping.xml:156#, no-c-formatmsgid "Table per concrete class"msgstr "Tabela por classe concreta"#. Tag: para#: inheritance_mapping.xml:158#, no-c-formatmsgid """There are two ways we could go about mapping the table per concrete class ""strategy. The first is to use <literal><union-subclass></literal>."msgstr """Existem duas formas que poderíamos usar a respeito da estratégia de ""mapeamento de tabela por classe concreta. A primeira é usar <literal><""union-subclass></literal>.."#. Tag: programlisting#: inheritance_mapping.xml:163#, no-c-formatmsgid """<![CDATA[<class name=\"Payment\">\n"" <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"" <generator class=\"sequence\"/>\n"" </id>\n"" <property name=\"amount\" column=\"AMOUNT\"/>\n"" ...\n"" <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"" <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"" ...\n"" </union-subclass>\n"" <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"" ...\n"" </union-subclass>\n"" <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"" ...\n"" </union-subclass>\n""</class>]]>"msgstr ""#. Tag: para#: inheritance_mapping.xml:165#, no-c-formatmsgid """Three tables are involved for the subclasses. Each table defines columns for "
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -