📄 query_sql.po
字号:
msgstr ""#. Tag: para#: query_sql.xml:441#, no-c-formatmsgid """Notice stored procedures currently only return scalars and entities. ""<literal><return-join></literal> and <literal><load-collection></""literal> are not supported."msgstr """Notice stored procedures currently only return scalars and entities. ""<literal><return-join></literal> and <literal><load-collection></""literal> are not supported."#. Tag: title#: query_sql.xml:446#, no-c-formatmsgid "Rules/limitations for using stored procedures"msgstr "Rules/limitations for using stored procedures"#. 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 """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."#. Tag: para#: query_sql.xml:455#, no-c-formatmsgid """Stored procedure queries can't be paged with <literal>setFirstResult()/""setMaxResults()</literal>."msgstr """Stored procedure queries can't be paged with <literal>setFirstResult()/""setMaxResults()</literal>."#. Tag: para#: query_sql.xml:458#, no-c-formatmsgid """Recommended call form is standard SQL92: <literal>{ ? = call functionName""(<parameters>) }</literal> or <literal>{ ? = call procedureName(<""parameters>}</literal>. Native call syntax is not supported."msgstr """Recommended call form is standard SQL92: <literal>{ ? = call functionName""(<parameters>) }</literal> or <literal>{ ? = call procedureName(<""parameters>}</literal>. Native call syntax is not supported."#. Tag: para#: query_sql.xml:463#, no-c-formatmsgid "For Oracle the following rules apply:"msgstr "For Oracle the following rules apply:"#. 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 """A funçãp deve retornar um result set. O primeiro parâmetro da procedure ""dever ser uma <literal>SAÍDA</literal> que retorne um result set. Isto é ""feito usando o tipo a <literal>SYS_REFCURSOR</literal> no Oracle 9 ou 10. No ""Oracle é necessário definir o tipo <literal>REF CURSOR</literal>, veja a ""documentação do Oracle."#. Tag: para#: query_sql.xml:476#, no-c-formatmsgid "For Sybase or MS SQL server the following rules apply:"msgstr "For Sybase or MS SQL server the following rules apply:"#. 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 """A procedure deve retornar um result set. Veja que este servidor pode ""retornar múltiplos result sets e update counts. O Hibernate ira iterar os ""resultados e pegar o primeiro resultado que é o valor de retorno do result ""set. O resto será descartado."#. 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 """Se você habilitar <literal>SET NOCOUNT ON</literal> na sua procedure, ela ""provavelmente será mais eficiente. Mas, isto não é obrigatório"#. Tag: title#: query_sql.xml:498#, no-c-formatmsgid "Custom SQL for create, update and delete"msgstr "SQL customizado para create, update e 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><sql-insert></literal>, ""<literal><sql-delete></literal>, and <literal><sql-update></""literal> override these strings:"msgstr """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><sql-insert></literal>, ""<literal><sql-delete></literal>, and <literal><sql-update></""literal> override these strings: Hibernate3 pode usar SQL customizado para ""operações de create, update e delete. A persistência de classe e collection ""no hibernate já contem alguma strings de configurações (insertsql, ""deletesql, updatesql etc.). O mapaemento das tags <literal><sql-insert>""</literal>, <literal><sql-delete></literal>, e <literal><sql-""update></literal> sobreecreve essas strings:"#. 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 """O SQL é executado diretamente no seu banco de dados, então você pode usar ""qualquer linguagem que quiser. Isto com certeza reduzira a portabilidade do ""seu mapeamento se você utilizar um SQL para um banco de dados especifico."#. Tag: para#: query_sql.xml:514#, no-c-formatmsgid """Stored procedures are supported if the <literal>callable</literal> attribute ""is set:"msgstr """Stored Procedures são suportadas se o atributo the <literal>callable</""literal> estiver ativado:"#. 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 """A ordem de posições dos parâmetros são vitais, pois eles devem estar na ""mesma seqüência esperada pelo 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 """Você pode ver a ordem esperada ativando o debug logging no nível ""<literal>org.hibernate.persister.entity</literal>. Com este nível ativado, o ""Hibernate irá imprimir o SQL estático que foi usado para create, update, ""delete, etc. Entidades. (Para ver a seqüência esperada, lembre-se de não ""incluir seu SQL customizado no arquivo de mapeamento, pois ele irá ""sobreecreve o SQL estático gerado pelo Hibernate)."#. 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 """As stored procedures são na maioria dos casos (leia: melhor não fazer) ""requeridas para retornar o numero de linhas inseridas/atualizadas/deletadas. ""O hibernate tem algumas verificações em tempo de execução para o sucesso da ""declaração. Hibernate sempre registra o primeiro parâmetro da declaração ""como uma saída numérica para operações CRUD."#. 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 customizado para carga"#. Tag: para#: query_sql.xml:541#, no-c-formatmsgid "You may also declare your own SQL (or HQL) queries for entity loading:"msgstr """Você pode declarar sua própria query SQL (ou HQL) para iniciar entidades:"#. 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 """Este é apenas uma declaração de query com nome, como discutido ""anteriormente. Você pode referenciar esta query com nome em um mapeamento de ""classe:"#. 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 "Isto também funciona com stored procedures."#. Tag: para#: query_sql.xml:553#, no-c-formatmsgid "You may even define a query for collection loading:"msgstr "Você pode tembém definir uma query para iniciar collection:"#. 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 """You could even define an entity loader that loads a collection by join ""fetching:"#. 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 + -