⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 association_mapping.po

📁 hibernate-distribution-3.3.1.GA-dist.zip源码
💻 PO
📖 第 1 页 / 共 2 页
字号:
"        <many-to-many column=\"addressId\"\n""            class=\"Address\"/>\n""    </set>\n""</class>\n""\n""<class name=\"Address\">\n""    <id name=\"id\" column=\"addressId\">\n""        <generator class=\"native\"/>\n""    </id>\n""</class>]]>"msgstr ""#. Tag: programlisting#: association_mapping.xml:141 association_mapping.xml:246#, no-c-formatmsgid """<![CDATA[\n""create table Person ( personId bigint not null primary key )\n""create table PersonAddress ( personId bigint not null, addressId bigint not ""null, primary key (personId, addressId) )\n""create table Address ( addressId bigint not null primary key )\n""        ]]>"msgstr ""#. Tag: title#: association_mapping.xml:148#, no-c-formatmsgid "Bidirectional associations"msgstr "双向关联(Bidirectional associations)"#. Tag: title#: association_mapping.xml:151 association_mapping.xml:211#, fuzzy, no-c-formatmsgid "one to many / many to one"msgstr """#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n""一对多(one to many) / 多对一(many to one)\n""#-#-#-#-#  - (PACKAGE VERSION)  #-#-#-#-#\n""一对多(one to many) /多对一( many to one)"#. Tag: para#: association_mapping.xml:153#, no-c-formatmsgid """A <emphasis>bidirectional many-to-one association</emphasis> is the most ""common kind of association. (This is the standard parent/child relationship.)"msgstr """<emphasis>双向多对一关联</emphasis> 是最常见的关联关系。(这也是标准的父/子关""联关系。)"#. Tag: programlisting#: association_mapping.xml:159#, no-c-formatmsgid """<![CDATA[<class name=\"Person\">\n""    <id name=\"id\" column=\"personId\">\n""        <generator class=\"native\"/>\n""    </id>\n""    <many-to-one name=\"address\" \n""        column=\"addressId\"\n""        not-null=\"true\"/>\n""</class>\n""\n""<class name=\"Address\">\n""    <id name=\"id\" column=\"addressId\">\n""        <generator class=\"native\"/>\n""    </id>\n""    <set name=\"people\" inverse=\"true\">\n""        <key column=\"addressId\"/>\n""        <one-to-many class=\"Person\"/>\n""    </set>\n""</class>]]>"msgstr ""#. Tag: para#: association_mapping.xml:163#, no-c-formatmsgid """If you use a <literal>List</literal> (or other indexed collection) you need ""to set the <literal>key</literal> column of the foreign key to <literal>not ""null</literal>, and let Hibernate manage the association from the ""collections side to maintain the index of each element (making the other ""side virtually inverse by setting <literal>update=\"false\"</literal> and ""<literal>insert=\"false\"</literal>):"msgstr """如果你使用<literal>List</literal>(或者其他有序集合类),你需要设置外键对应的""<literal>key</literal>列为 <literal>not null</literal>,让Hibernate来从集合端""管理关联,维护每个元素的索引(通过设置<literal>update=\"false\"</literal> ""and <literal>insert=\"false\"</literal>来对另一端反向操作)。"#. Tag: programlisting#: association_mapping.xml:171#, no-c-formatmsgid """<![CDATA[<class name=\"Person\">\n""   <id name=\"id\"/>\n""   ...\n""   <many-to-one name=\"address\"\n""      column=\"addressId\"\n""      not-null=\"true\"\n""      insert=\"false\"\n""      update=\"false\"/>\n""</class>\n""\n""<class name=\"Address\">\n""   <id name=\"id\"/>\n""   ...\n""   <list name=\"people\">\n""      <key column=\"addressId\" not-null=\"true\"/>\n""      <list-index column=\"peopleIdx\"/>\n""      <one-to-many class=\"Person\"/>\n""   </list>\n""</class>]]>"msgstr ""#. Tag: para#: association_mapping.xml:173#, no-c-formatmsgid """It is important that you define <literal>not-null=\"true\"</literal> on the ""<literal>&lt;key&gt;</literal> element of the collection mapping if the ""underlying foreign key column is <literal>NOT NULL</literal>. Don't only ""declare <literal>not-null=\"true\"</literal> on a possible nested ""<literal>&lt;column&gt;</literal> element, but on the <literal>&lt;key&gt;</""literal> element."msgstr """假若集合映射的<literal>&lt;key&gt;</literal>元素对应的底层外键字段是""<literal>NOT NULL</literal>的,那么为这一key元素定义<literal>not-null=\"true""\"</literal>是很重要的。不要仅仅为可能的嵌套<literal>&lt;column&gt;</literal>""元素定义<literal>not-null=\"true\"</literal>,<literal>&lt;key&gt;</literal>""元素也是需要的。"#. Tag: para#: association_mapping.xml:187#, no-c-formatmsgid """A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> ""is quite common."msgstr "<emphasis>基于外键关联的双向一对一关联</emphasis>也很常见。"#. Tag: programlisting#: association_mapping.xml:192#, no-c-formatmsgid """<![CDATA[<class name=\"Person\">\n""    <id name=\"id\" column=\"personId\">\n""        <generator class=\"native\"/>\n""    </id>\n""    <many-to-one name=\"address\" \n""        column=\"addressId\" \n""        unique=\"true\"\n""        not-null=\"true\"/>\n""</class>\n""\n""<class name=\"Address\">\n""    <id name=\"id\" column=\"addressId\">\n""        <generator class=\"native\"/>\n""    </id>\n""   <one-to-one name=\"person\" \n""        property-ref=\"address\"/>\n""</class>]]>"msgstr ""#. Tag: para#: association_mapping.xml:195#, no-c-formatmsgid """A <emphasis>bidirectional one-to-one association on a primary key</emphasis> ""uses the special id generator."msgstr "<emphasis>基于主键关联的一对一关联</emphasis>需要使用特定的id生成器。"#. Tag: programlisting#: association_mapping.xml:200#, no-c-formatmsgid """<![CDATA[<class name=\"Person\">\n""    <id name=\"id\" column=\"personId\">\n""        <generator class=\"native\"/>\n""    </id>\n""    <one-to-one name=\"address\"/>\n""</class>\n""\n""<class name=\"Address\">\n""    <id name=\"id\" column=\"personId\">\n""        <generator class=\"foreign\">\n""            <param name=\"property\">person</param>\n""        </generator>\n""    </id>\n""    <one-to-one name=\"person\" \n""        constrained=\"true\"/>\n""</class>]]>"msgstr ""#. Tag: title#: association_mapping.xml:208#, no-c-formatmsgid "Bidirectional associations with join tables"msgstr "使用连接表的双向关联(Bidirectional associations with join tables)"#. Tag: para#: association_mapping.xml:213#, no-c-formatmsgid """A <emphasis>bidirectional one-to-many association on a join table</""emphasis>. Note that the <literal>inverse=\"true\"</literal> can go on ""either end of the association, on the collection, or on the join."msgstr """<emphasis>基于连接表的双向一对多关联</emphasis>。注意<literal>inverse=\"true""\"</literal>可以出现在关联的任意一端,即collection端或者join端。"#. Tag: programlisting#: association_mapping.xml:219#, no-c-formatmsgid """<![CDATA[<class name=\"Person\">\n""    <id name=\"id\" column=\"personId\">\n""        <generator class=\"native\"/>\n""    </id>\n""    <set name=\"addresses\" \n""        table=\"PersonAddress\">\n""        <key column=\"personId\"/>\n""        <many-to-many column=\"addressId\"\n""            unique=\"true\"\n""            class=\"Address\"/>\n""    </set>\n""</class>\n""\n""<class name=\"Address\">\n""    <id name=\"id\" column=\"addressId\">\n""        <generator class=\"native\"/>\n""    </id>\n""    <join table=\"PersonAddress\" \n""        inverse=\"true\" \n""        optional=\"true\">\n""        <key column=\"addressId\"/>\n""        <many-to-one name=\"person\"\n""            column=\"personId\"\n""            not-null=\"true\"/>\n""    </join>\n""</class>]]>"msgstr ""#. Tag: programlisting#: association_mapping.xml:220#, no-c-formatmsgid """<![CDATA[\n""create table Person ( personId bigint not null primary key )\n""create table PersonAddress ( personId bigint not null, addressId bigint not ""null primary key )\n""create table Address ( addressId bigint not null primary key )\n""        ]]>"msgstr ""#. Tag: para#: association_mapping.xml:227#, no-c-formatmsgid """A <emphasis>bidirectional one-to-one association on a join table</emphasis> ""is extremely unusual, but possible."msgstr """<emphasis>基于连接表的双向一对一关联</emphasis>极为罕见,但也是可行的。"#. Tag: programlisting#: association_mapping.xml:232#, no-c-formatmsgid """<![CDATA[<class name=\"Person\">\n""    <id name=\"id\" column=\"personId\">\n""        <generator class=\"native\"/>\n""    </id>\n""    <join table=\"PersonAddress\" \n""        optional=\"true\">\n""        <key column=\"personId\" \n""            unique=\"true\"/>\n""        <many-to-one name=\"address\"\n""            column=\"addressId\" \n""            not-null=\"true\"\n""            unique=\"true\"/>\n""    </join>\n""</class>\n""\n""<class name=\"Address\">\n""    <id name=\"id\" column=\"addressId\">\n""        <generator class=\"native\"/>\n""    </id>\n""    <join table=\"PersonAddress\" \n""        optional=\"true\"\n""        inverse=\"true\">\n""        <key column=\"addressId\" \n""            unique=\"true\"/>\n""        <many-to-one name=\"person\"\n""            column=\"personId\" \n""            not-null=\"true\"\n""            unique=\"true\"/>\n""    </join>\n""</class>]]>"msgstr ""#. Tag: para#: association_mapping.xml:240#, no-c-formatmsgid """Finally, we have a <emphasis>bidirectional many-to-many association</""emphasis>."msgstr "最后,还有 <emphasis>双向多对多关联</emphasis>."#. Tag: programlisting#: association_mapping.xml:244#, no-c-formatmsgid """<![CDATA[<class name=\"Person\">\n""    <id name=\"id\" column=\"personId\">\n""        <generator class=\"native\"/>\n""    </id>\n""    <set name=\"addresses\" table=\"PersonAddress\">\n""        <key column=\"personId\"/>\n""        <many-to-many column=\"addressId\"\n""            class=\"Address\"/>\n""    </set>\n""</class>\n""\n""<class name=\"Address\">\n""    <id name=\"id\" column=\"addressId\">\n""        <generator class=\"native\"/>\n""    </id>\n""    <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n""        <key column=\"addressId\"/>\n""        <many-to-many column=\"personId\"\n""            class=\"Person\"/>\n""    </set>\n""</class>]]>"msgstr ""#. Tag: title#: association_mapping.xml:253#, no-c-formatmsgid "More complex association mappings"msgstr "更复杂的关联映射"#. Tag: para#: association_mapping.xml:255#, no-c-formatmsgid """More complex association joins are <emphasis>extremely</emphasis> rare. ""Hibernate makes it possible to handle more complex situations using SQL ""fragments embedded in the mapping document. For example, if a table with ""historical account information data defines <literal>accountNumber</""literal>, <literal>effectiveEndDate</literal> and ""<literal>effectiveStartDate</literal>columns, mapped as follows:"msgstr """更复杂的关联连接<emphasis>极为</emphasis>罕见。 通过在映射文档中嵌入SQL片断,""Hibernate也可以处理更为复杂的情况。比如,假若包含历史帐户数据的表定义了""<literal>accountNumber</literal>, <literal>effectiveEndDate</literal> 和""<literal>effectiveStartDate</literal>字段,按照下面映射:"#. Tag: programlisting#: association_mapping.xml:264#, no-c-formatmsgid """<![CDATA[<properties name=\"currentAccountKey\">\n""    <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n""    <property name=\"currentAccount\" type=\"boolean\">\n""        <formula>case when effectiveEndDate is null then 1 else 0 end</""formula>\n""    </property>\n""</properties>\n""<property name=\"effectiveEndDate\" type=\"date\"/>\n""<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"msgstr ""#. Tag: para#: association_mapping.xml:266#, no-c-formatmsgid """Then we can map an association to the <emphasis>current</emphasis> instance ""(the one with null <literal>effectiveEndDate</literal>) using:"msgstr """那么我们可以对<emphasis>目前(current)</emphasis>实例(其""<literal>effectiveEndDate</literal>为null)使用这样的关联映射:"#. Tag: programlisting#: association_mapping.xml:271#, no-c-formatmsgid """<![CDATA[<many-to-one name=\"currentAccountInfo\" \n""        property-ref=\"currentAccountKey\"\n""        class=\"AccountInfo\">\n""    <column name=\"accountNumber\"/>\n""    <formula>'1'</formula>\n""</many-to-one>]]>"msgstr ""#. Tag: para#: association_mapping.xml:273#, no-c-formatmsgid """In a more complex example, imagine that the association between ""<literal>Employee</literal> and <literal>Organization</literal> is ""maintained in an <literal>Employment</literal> table full of historical ""employment data. Then an association to the employee's <emphasis>most ""recent</emphasis> employer (the one with the most recent <literal>startDate</""literal>) might be mapped this way:"msgstr """更复杂的例子,假想<literal>Employee</literal>和<literal>Organization</literal>""之间的关联是通过一个<literal>Employment</literal>中间表维护的,而中间表中填充""了很多历史雇员数据。那“雇员的<emphasis>最新</emphasis>雇主”这个关联(最新雇主""就是<literal>startDate</literal>最后的那个)可以这样映射:"#. Tag: programlisting#: association_mapping.xml:281#, no-c-formatmsgid """<![CDATA[<join>\n""    <key column=\"employeeId\"/>\n""    <subselect>\n""        select employeeId, orgId \n""        from Employments \n""        group by orgId \n""        having startDate = max(startDate)\n""    </subselect>\n""    <many-to-one name=\"mostRecentEmployer\" \n""            class=\"Organization\" \n""            column=\"orgId\"/>\n""</join>]]>"msgstr ""#. Tag: para#: association_mapping.xml:283#, no-c-formatmsgid """You can get quite creative with this functionality, but it is usually more ""practical to handle these kinds of cases using HQL or a criteria query."msgstr """使用这一功能时可以充满创意,但通常更加实用的是用HQL或条件查询来处理这些情形。"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -