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

📄 query_sql.po

📁 hibernate-distribution-3.3.1.GA-dist.zip源码
💻 PO
📖 第 1 页 / 共 4 页
字号:
"        <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n""        <return-property name=\"employer\" column=\"EMPLOYER\"/>\n""        <return-property name=\"startDate\" column=\"STARTDATE\"/>\n""        <return-property name=\"endDate\" column=\"ENDDATE\"/>\n""        <return-property name=\"regionCode\" column=\"REGIONCODE\"/>\n""        <return-property name=\"id\" column=\"EID\"/>\n""        <return-property name=\"salary\">\n""            <return-column name=\"VALUE\"/>\n""            <return-column name=\"CURRENCY\"/>\n""        </return-property>\n""    </return>\n""    { ? = call selectAllEmployments() }\n""</sql-query>]]>"msgstr ""#. Tag: para#: query_sql.xml:441#, no-c-formatmsgid """Notice stored procedures currently only return scalars and entities. ""<literal>&lt;return-join&gt;</literal> and <literal>&lt;load-collection&gt;</""literal> are not supported."msgstr """注意存储过程当前仅仅返回标量和实体.现在不支持<literal>&lt;return-join&gt;</""literal>和<literal>&lt;load-collection&gt;</literal>"#. Tag: title#: query_sql.xml:446#, no-c-formatmsgid "Rules/limitations for using stored procedures"msgstr "使用存储过程的规则和限制"#. Tag: para#: query_sql.xml:448#, no-c-formatmsgid """To use stored procedures with Hibernate the procedures/functions have to ""follow some rules. If they do not follow those rules they are not usable ""with Hibernate. If you still want to use these procedures you have to ""execute them via <literal>session.connection()</literal>. The rules are ""different for each database, since database vendors have different stored ""procedure semantics/syntax."msgstr """为了在Hibernate中使用存储过程,你必须遵循一些规则.不遵循这些规则的存储过程将不""可用.如果你仍然想要使用他们, 你必须通过<literal>session.connection()</""literal>来执行他们.这些规则针对于不同的数据库.因为数据库 提供商有各种不同的存""储过程语法和语义."#. Tag: para#: query_sql.xml:455#, no-c-formatmsgid """Stored procedure queries can't be paged with <literal>setFirstResult()/""setMaxResults()</literal>."msgstr """对存储过程进行的查询无法使用<literal>setFirstResult()/setMaxResults()</""literal>进行分页。"#. Tag: para#: query_sql.xml:458#, no-c-formatmsgid """Recommended call form is standard SQL92: <literal>{ ? = call functionName""(&lt;parameters&gt;) }</literal> or <literal>{ ? = call procedureName(&lt;""parameters&gt;}</literal>. Native call syntax is not supported."msgstr """建议采用的调用方式是标准SQL92: <literal>{ ? = call functionName(&lt;""parameters&gt;) }</literal> 或者 <literal>{ ? = call procedureName(&lt;""parameters&gt;}</literal>.原生调用语法不被支持。"#. Tag: para#: query_sql.xml:463#, no-c-formatmsgid "For Oracle the following rules apply:"msgstr "对于Oracle有如下规则:"#. Tag: para#: query_sql.xml:467#, no-c-formatmsgid """A function must return a result set. The first parameter of a procedure must ""be an <literal>OUT</literal> that returns a result set. This is done by ""using a <literal>SYS_REFCURSOR</literal> type in Oracle 9 or 10. In Oracle ""you need to define a <literal>REF CURSOR</literal> type, see Oracle ""literature."msgstr """函数必须返回一个结果集。存储过程的第一个参数必须是<literal>OUT</literal>,它""返回一个结果集。这是通过Oracle 9或10的<literal>SYS_REFCURSOR</literal>类型来""完成的。在Oracle中你需要定义一个<literal>REF CURSOR</literal>类型,参见Oracle""的手册。"#. Tag: para#: query_sql.xml:476#, no-c-formatmsgid "For Sybase or MS SQL server the following rules apply:"msgstr "对于Sybase或者MS SQL server有如下规则:"#. Tag: para#: query_sql.xml:480#, no-c-formatmsgid """The procedure must return a result set. Note that since these servers can/""will return multiple result sets and update counts, Hibernate will iterate ""the results and take the first result that is a result set as its return ""value. Everything else will be discarded."msgstr """存储过程必须返回一个结果集。.注意这些servers可能返回多个结果集以及更新的数目.""Hibernate将取出第一条结果集作为它的返回值, 其他将被丢弃。"#. Tag: para#: query_sql.xml:488#, no-c-formatmsgid """If you can enable <literal>SET NOCOUNT ON</literal> in your procedure it ""will probably be more efficient, but this is not a requirement."msgstr """如果你能够在存储过程里设定<literal>SET NOCOUNT ON</literal>,这可能会效率更""高,但这不是必需的。"#. Tag: title#: query_sql.xml:498#, no-c-formatmsgid "Custom SQL for create, update and delete"msgstr "定制SQL用来create,update和delete"#. Tag: para#: query_sql.xml:500#, no-c-formatmsgid """Hibernate3 can use custom SQL statements for create, update, and delete ""operations. The class and collection persisters in Hibernate already contain ""a set of configuration time generated strings (insertsql, deletesql, ""updatesql etc.). The mapping tags <literal>&lt;sql-insert&gt;</literal>, ""<literal>&lt;sql-delete&gt;</literal>, and <literal>&lt;sql-update&gt;</""literal> override these strings:"msgstr """Hibernate3能够使用定制的SQL语句来执行create,update和delete操作。在Hibernate""中,持久化的类和集合已经 包含了一套配置期产生的语句(insertsql, deletesql, ""updatesql等等),这些映射标记 <literal>&lt;sql-insert&gt;</literal>, ""<literal>&lt;sql-delete&gt;</literal>, and <literal>&lt;sql-update&gt;</""literal>重载了 这些语句。"#. Tag: programlisting#: query_sql.xml:508#, no-c-formatmsgid """<![CDATA[<class name=\"Person\">\n""    <id name=\"id\">\n""        <generator class=\"increment\"/>\n""    </id>\n""    <property name=\"name\" not-null=\"true\"/>\n""    <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )</sql-""insert>\n""    <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-update>\n""    <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n""</class>]]>"msgstr ""#. Tag: para#: query_sql.xml:510#, no-c-formatmsgid """The SQL is directly executed in your database, so you are free to use any ""dialect you like. This will of course reduce the portability of your mapping ""if you use database specific SQL."msgstr """这些SQL直接在你的数据库里执行,所以你可以自由的使用你喜欢的任意语法。但如果你""使用数据库特定的语法, 这当然会降低你映射的可移植性。"#. Tag: para#: query_sql.xml:514#, no-c-formatmsgid """Stored procedures are supported if the <literal>callable</literal> attribute ""is set:"msgstr "如果设定<literal>callable</literal>,则能够支持存储过程了。"#. Tag: programlisting#: query_sql.xml:517#, no-c-formatmsgid """<![CDATA[<class name=\"Person\">\n""    <id name=\"id\">\n""        <generator class=\"increment\"/>\n""    </id>\n""    <property name=\"name\" not-null=\"true\"/>\n""    <sql-insert callable=\"true\">{call createPerson (?, ?)}</sql-insert>\n""    <sql-delete callable=\"true\">{? = call deletePerson (?)}</sql-delete>\n""    <sql-update callable=\"true\">{? = call updatePerson (?, ?)}</sql-""update>\n""</class>]]>"msgstr ""#. Tag: para#: query_sql.xml:519#, no-c-formatmsgid """The order of the positional parameters are currently vital, as they must be ""in the same sequence as Hibernate expects them."msgstr "参数的位置顺序是非常重要的,他们必须和Hibernate所期待的顺序相同。"#. Tag: para#: query_sql.xml:522#, no-c-formatmsgid """You can see the expected order by enabling debug logging for the ""<literal>org.hibernate.persister.entity</literal> level. With this level ""enabled Hibernate will print out the static SQL that is used to create, ""update, delete etc. entities. (To see the expected sequence, remember to not ""include your custom SQL in the mapping files as that will override the ""Hibernate generated static sql.)"msgstr """你能够通过设定日志调试级别为<literal>org.hiberante.persister.entity</""literal>,来查看Hibernate所期待的顺序。在这个级别下, Hibernate将会打印出""create,update和delete实体的静态SQL。(如果想看到预计的顺序。记得不要将定制SQL""包含在映射文件里, 因为他们会重载Hibernate生成的静态SQL。)"#. Tag: para#: query_sql.xml:529#, no-c-formatmsgid """The stored procedures are in most cases (read: better do it than not) ""required to return the number of rows inserted/updated/deleted, as Hibernate ""has some runtime checks for the success of the statement. Hibernate always ""registers the first statement parameter as a numeric output parameter for ""the CUD operations:"msgstr """在大多数情况下(最好这么做),存储过程需要返回插入/更新/删除的行数,因为""Hibernate对语句的成功执行有些运行时的检查。 Hibernate常会把进行CUD操作的语句""的第一个参数注册为一个数值型输出参数。"#. Tag: programlisting#: query_sql.xml:535#, no-c-formatmsgid """<![CDATA[CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN ""VARCHAR2)\n""    RETURN NUMBER IS\n""BEGIN\n""\n""    update PERSON\n""    set\n""        NAME = uname,\n""    where\n""        ID = uid;\n""\n""    return SQL%ROWCOUNT;\n""\n""END updatePerson;]]>"msgstr ""#. Tag: title#: query_sql.xml:539#, no-c-formatmsgid "Custom SQL for loading"msgstr "定制装载SQL"#. Tag: para#: query_sql.xml:541#, no-c-formatmsgid "You may also declare your own SQL (or HQL) queries for entity loading:"msgstr "你可能需要声明你自己的SQL(或HQL)来装载实体"#. Tag: programlisting#: query_sql.xml:544#, no-c-formatmsgid """<![CDATA[<sql-query name=\"person\">\n""    <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/>\n""    SELECT NAME AS {pers.name}, ID AS {pers.id}\n""    FROM PERSON\n""    WHERE ID=?\n""    FOR UPDATE\n""</sql-query>]]>"msgstr ""#. Tag: para#: query_sql.xml:546#, no-c-formatmsgid """This is just a named query declaration, as discussed earlier. You may ""reference this named query in a class mapping:"msgstr "这只是一个前面讨论过的命名查询声明,你可以在类映射里引用这个命名查询。"#. Tag: programlisting#: query_sql.xml:549#, no-c-formatmsgid """<![CDATA[<class name=\"Person\">\n""    <id name=\"id\">\n""        <generator class=\"increment\"/>\n""    </id>\n""    <property name=\"name\" not-null=\"true\"/>\n""    <loader query-ref=\"person\"/>\n""</class>]]>"msgstr ""#. Tag: para#: query_sql.xml:551#, no-c-formatmsgid "This even works with stored procedures."msgstr "这也可以用于存储过程"#. Tag: para#: query_sql.xml:553#, no-c-formatmsgid "You may even define a query for collection loading:"msgstr "你甚至可以定一个用于集合装载的查询:"#. Tag: programlisting#: query_sql.xml:555#, no-c-formatmsgid """<![CDATA[<set name=\"employments\" inverse=\"true\">\n""    <key/>\n""    <one-to-many class=\"Employment\"/>\n""    <loader query-ref=\"employments\"/>\n""</set>]]>"msgstr ""#. Tag: programlisting#: query_sql.xml:557#, no-c-formatmsgid """<![CDATA[<sql-query name=\"employments\">\n""    <load-collection alias=\"emp\" role=\"Person.employments\"/>\n""    SELECT {emp.*}\n""    FROM EMPLOYMENT emp\n""    WHERE EMPLOYER = :id\n""    ORDER BY STARTDATE ASC, EMPLOYEE ASC\n""</sql-query>]]>"msgstr ""#. Tag: para#: query_sql.xml:559#, no-c-formatmsgid """You could even define an entity loader that loads a collection by join ""fetching:"msgstr "你甚至还可以定义一个实体装载器,它通过连接抓取装载一个集合:"#. Tag: programlisting#: query_sql.xml:562#, no-c-formatmsgid """<![CDATA[<sql-query name=\"person\">\n""    <return alias=\"pers\" class=\"Person\"/>\n""    <return-join alias=\"emp\" property=\"pers.employments\"/>\n""    SELECT NAME AS {pers.*}, {emp.*}\n""    FROM PERSON pers\n""    LEFT OUTER JOIN EMPLOYMENT emp\n""        ON pers.ID = emp.PERSON_ID\n""    WHERE ID=?\n""</sql-query>]]>"msgstr ""

⌨️ 快捷键说明

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