📄 query_sql.po
字号:
" <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><return-join></literal> and <literal><load-collection></""literal> are not supported."msgstr """注意:今のところ、ストアドプロシージャはスカラとエンティティを返すのみです。 ""<literal><return-join></literal> と <literal><load-collection></""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でストアドプロシージャや関数を使うためには、 そのプロシージャはいく""つかのルールに準拠する必要があります。 ルールに準拠していないプロシージャは、""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""(<parameters>) }</literal> or <literal>{ ? = call procedureName(<""parameters>}</literal>. Native call syntax is not supported."msgstr """推奨する呼び出し方は、標準であるSQL92に従うことです。 <literal>{ ? = call ""functionName(<parameters>) }</literal> や <literal>{ ? = call ""procedureName(<parameters>) }</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サーバーに適用されるルールを下記に示します。"#. 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 """プロシージャはリザルトセットを返さなければなりません。 サーバーは複数のリザル""トセットと更新カウントを返しますが、 Hibernateは1つ目のリザルトセットだけを返""すことに注意してください。 その他はすべて捨てられます。"#. 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"#. 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は作成、更新、削除処理のためのカスタムSQL文を使用できます。 クラス""とコレクションの永続化機構は、コンフィグレーション時に生成された文字列 ""(insertsql、deletesql、updatesqlなど)のセットをすでに保持しています。 これ""らの文字列より、 <literal><sql-insert></literal>、 <literal><sql-""delete></literal>、 <literal><sql-update></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を直接データベースで実行するため、好みの方言を自由に使用できます。 データ""ベース独自の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> レベルのデバッグログを 有効""にすることによって、期待される順番を確かめられます。 このレベルを有効にするこ""とにより、エンティティの作成、更新、削除などで 使用される静的なSQLが出力され""ます。 (期待される順序を確認するためには、Hibernateが生成する静的なSQLをオー""バーライドする カスタム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がSQL文の成功を""チェックするからです。 Hibernateは、CUD処理のための数値の出力パラメータとし""て、 SQL文の最初のパラメータをいつも記録します。"#. 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 + -