📄 query_sql.po
字号:
msgstr ""#. Tag: para#: query_sql.xml:329#, no-c-formatmsgid "a result transformer"msgstr "结果转换器(result transformer)"#. Tag: para#: query_sql.xml:333#, no-c-formatmsgid """The above query will return a list of <literal>CatDTO</literal> which has ""been instantiated and injected the values of NAME and BIRTHNAME into its ""corresponding properties or fields."msgstr """上面的查询将会返回<literal>CatDTO</literal>的列表,它将被实例化并且将NAME和""BIRTHDAY的值注射入对应的属性或者字段。"#. Tag: title#: query_sql.xml:340#, no-c-formatmsgid "Handling inheritance"msgstr "处理继承(Handling inheritance)"#. Tag: para#: query_sql.xml:342#, no-c-formatmsgid """Native sql queries which query for entities that is mapped as part of an ""inheritance must include all properties for the baseclass and all it ""subclasses."msgstr """原生SQL查询假若其查询结果实体是继承树中的一部分,它必须包含基类和所有子类的所""有属性。"#. Tag: title#: query_sql.xml:348#, no-c-formatmsgid "Parameters"msgstr "参数(Parameters)"#. Tag: para#: query_sql.xml:350#, no-c-formatmsgid "Native sql queries support positional as well as named parameters:"msgstr "原生查询支持位置参数和命名参数:"#. Tag: programlisting#: query_sql.xml:353#, no-c-formatmsgid """<![CDATA[Query query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME ""like ?\").addEntity(Cat.class);\n""List pusList = query.setString(0, \"Pus%\").list();\n"" \n""query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like :name\").""addEntity(Cat.class);\n""List pusList = query.setString(\"name\", \"Pus%\").list(); ]]>"msgstr ""#. Tag: title#: query_sql.xml:361#, no-c-formatmsgid "Named SQL queries"msgstr "命名SQL查询"#. Tag: para#: query_sql.xml:363#, no-c-formatmsgid """Named SQL queries may be defined in the mapping document and called in ""exactly the same way as a named HQL query. In this case, we do ""<emphasis>not</emphasis> need to call <literal>addEntity()</literal>."msgstr """可以在映射文档中定义查询的名字,然后就可以象调用一个命名的HQL查询一样直接调用""命名SQL查询.在这种情况下,我们<emphasis>不</emphasis> 需要调用""<literal>addEntity()</literal>方法."#. Tag: programlisting#: query_sql.xml:368#, no-c-formatmsgid """<![CDATA[<sql-query name=\"persons\">\n"" <return alias=\"person\" class=\"eg.Person\"/>\n"" SELECT person.NAME AS {person.name},\n"" person.AGE AS {person.age},\n"" person.SEX AS {person.sex}\n"" FROM PERSON person\n"" WHERE person.NAME LIKE :namePattern\n""</sql-query>]]>"msgstr ""#. Tag: programlisting#: query_sql.xml:370#, no-c-formatmsgid """<![CDATA[List people = sess.getNamedQuery(\"persons\")\n"" .setString(\"namePattern\", namePattern)\n"" .setMaxResults(50)\n"" .list();]]>"msgstr ""#. Tag: para#: query_sql.xml:372#, no-c-formatmsgid """The <literal><return-join></literal> and <literal><load-""collection></literal> elements are used to join associations and define ""queries which initialize collections, respectively."msgstr """<literal><return-join></literal>和 <literal><load-collection></""literal> 元素是用来连接关联以及将查询定义为预先初始化各个集合的。"#. Tag: programlisting#: query_sql.xml:377#, no-c-formatmsgid """<![CDATA[<sql-query name=\"personsWith\">\n"" <return alias=\"person\" class=\"eg.Person\"/>\n"" <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"" SELECT person.NAME AS {person.name},\n"" person.AGE AS {person.age},\n"" person.SEX AS {person.sex},\n"" address.STREET AS {address.street},\n"" address.CITY AS {address.city},\n"" address.STATE AS {address.state},\n"" address.ZIP AS {address.zip}\n"" FROM PERSON person\n"" JOIN ADDRESS address\n"" ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"" WHERE person.NAME LIKE :namePattern\n""</sql-query>]]>"msgstr ""#. Tag: para#: query_sql.xml:379#, no-c-formatmsgid """A named SQL query may return a scalar value. You must declare the column ""alias and Hibernate type using the <literal><return-scalar></literal> ""element:"msgstr """一个命名查询可能会返回一个标量值.你必须使用<literal><return-scalar></""literal>元素来指定字段的别名和 Hibernate类型"#. Tag: programlisting#: query_sql.xml:383#, no-c-formatmsgid """<![CDATA[<sql-query name=\"mySqlQuery\">\n"" <return-scalar column=\"name\" type=\"string\"/>\n"" <return-scalar column=\"age\" type=\"long\"/>\n"" SELECT p.NAME AS name,\n"" p.AGE AS age,\n"" FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n""</sql-query>]]>"msgstr ""#. Tag: para#: query_sql.xml:385#, no-c-formatmsgid """You can externalize the resultset mapping informations in a <literal><""resultset></literal> element to either reuse them accross several named ""queries or through the <literal>setResultSetMapping()</literal> API."msgstr """你可以把结果集映射的信息放在外部的<literal><resultset></literal>元素""中,这样就可以在多个命名查询间,或者通过<literal>setResultSetMapping()</""literal>API来访问。(此处原文即存疑。原文为:You can externalize the ""resultset mapping informations in a <literal><resultset></literal> ""element to either reuse them accross several named queries or through the ""<literal>setResultSetMapping()</literal> API.)"#. Tag: programlisting#: query_sql.xml:390#, no-c-formatmsgid """<![CDATA[<resultset name=\"personAddress\">\n"" <return alias=\"person\" class=\"eg.Person\"/>\n"" <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n""</resultset>\n""\n""<sql-query name=\"personsWith\" resultset-ref=\"personAddress\">\n"" SELECT person.NAME AS {person.name},\n"" person.AGE AS {person.age},\n"" person.SEX AS {person.sex},\n"" address.STREET AS {address.street},\n"" address.CITY AS {address.city},\n"" address.STATE AS {address.state},\n"" address.ZIP AS {address.zip}\n"" FROM PERSON person\n"" JOIN ADDRESS address\n"" ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"" WHERE person.NAME LIKE :namePattern\n""</sql-query>]]>"msgstr ""#. Tag: para#: query_sql.xml:392#, no-c-formatmsgid """You can alternatively use the resultset mapping information in your hbm ""files directly in java code."msgstr "另外,你可以在java代码中直接使用hbm文件中的结果集定义信息。"#. Tag: programlisting#: query_sql.xml:395#, no-c-formatmsgid """<![CDATA[List cats = sess.createSQLQuery(\n"" \"select {cat.*}, {kitten.*} from cats cat, cats kitten where kitten.""mother = cat.id\"\n"" )\n"" .setResultSetMapping(\"catAndKitten\")\n"" .list();]]>"msgstr ""#. Tag: title#: query_sql.xml:398#, no-c-formatmsgid "Using return-property to explicitly specify column/alias names"msgstr "使用return-property来明确地指定字段/别名"#. Tag: para#: query_sql.xml:401#, no-c-formatmsgid """With <literal><return-property></literal> you can explicitly tell ""Hibernate what column aliases to use, instead of using the <literal>{}</""literal>-syntax to let Hibernate inject its own aliases."msgstr """使用<literal><return-property></literal>你可以明确的告诉Hibernate使用哪""些字段别名,这取代了使用<literal>{}</literal>-语法 来让Hibernate注入它自己的别""名."#. Tag: programlisting#: query_sql.xml:406#, no-c-formatmsgid """<![CDATA[<sql-query name=\"mySqlQuery\">\n"" <return alias=\"person\" class=\"eg.Person\">\n"" <return-property name=\"name\" column=\"myName\"/>\n"" <return-property name=\"age\" column=\"myAge\"/>\n"" <return-property name=\"sex\" column=\"mySex\"/>\n"" </return>\n"" SELECT person.NAME AS myName,\n"" person.AGE AS myAge,\n"" person.SEX AS mySex,\n"" FROM PERSON person WHERE person.NAME LIKE :name\n""</sql-query>\n""]]>"msgstr ""#. Tag: para#: query_sql.xml:408#, no-c-formatmsgid """<literal><return-property></literal> also works with multiple columns. ""This solves a limitation with the <literal>{}</literal>-syntax which can not ""allow fine grained control of multi-column properties."msgstr """<literal><return-property></literal>也可用于多个字段,它解决了使用""<literal>{}</literal>-语法不能细粒度控制多个字段的限制"#. Tag: programlisting#: query_sql.xml:413#, no-c-formatmsgid """<![CDATA[<sql-query name=\"organizationCurrentEmployments\">\n"" <return alias=\"emp\" class=\"Employment\">\n"" <return-property name=\"salary\">\n"" <return-column name=\"VALUE\"/>\n"" <return-column name=\"CURRENCY\"/>\n"" </return-property>\n"" <return-property name=\"endDate\" column=\"myEndDate\"/>\n"" </return>\n"" SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n"" STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"" REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"" FROM EMPLOYMENT\n"" WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"" ORDER BY STARTDATE ASC\n""</sql-query>]]>"msgstr ""#. Tag: para#: query_sql.xml:415#, no-c-formatmsgid """Notice that in this example we used <literal><return-property></""literal> in combination with the <literal>{}</literal>-syntax for injection. ""Allowing users to choose how they want to refer column and properties."msgstr """注意在这个例子中,我们使用了<literal><return-property></literal>结合""<literal>{}</literal>的注入语法. 允许用户来选择如何引用字段以及属性."#. Tag: para#: query_sql.xml:420#, no-c-formatmsgid """If your mapping has a discriminator you must use <literal><return-""discriminator></literal> to specify the discriminator column."msgstr """如果你映射一个识别器(discriminator),你必须使用<literal><return-""discriminator></literal> 来指定识别器字段"#. Tag: title#: query_sql.xml:426#, no-c-formatmsgid "Using stored procedures for querying"msgstr "使用存储过程来查询"#. Tag: para#: query_sql.xml:428#, no-c-formatmsgid """Hibernate 3 introduces support for queries via stored procedures and ""functions. Most of the following documentation is equivalent for both. The ""stored procedure/function must return a resultset as the first out-parameter ""to be able to work with Hibernate. An example of such a stored function in ""Oracle 9 and higher is as follows:"msgstr """Hibernate 3引入了对存储过程查询(stored procedure)和函数(function)的支持.以下""的说明中,这二者一般都适用。 存储过程/函数必须返回一个结果集,作为Hibernate能""够使用的第一个外部参数. 下面是一个Oracle9和更高版本的存储过程例子."#. Tag: programlisting#: query_sql.xml:434#, no-c-formatmsgid """<![CDATA[CREATE OR REPLACE FUNCTION selectAllEmployments\n"" RETURN SYS_REFCURSOR\n""AS\n"" st_cursor SYS_REFCURSOR;\n""BEGIN\n"" OPEN st_cursor FOR\n"" SELECT EMPLOYEE, EMPLOYER,\n"" STARTDATE, ENDDATE,\n"" REGIONCODE, EID, VALUE, CURRENCY\n"" FROM EMPLOYMENT;\n"" RETURN st_cursor;\n"" END;]]>"msgstr ""#. Tag: para#: query_sql.xml:436#, no-c-formatmsgid "To use this query in Hibernate you need to map it via a named query."msgstr "在Hibernate里要要使用这个查询,你需要通过命名查询来映射它."#. Tag: programlisting#: query_sql.xml:439#, no-c-formatmsgid """<![CDATA[<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"" <return alias=\"emp\" class=\"Employment\">\n"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -