📄 query_criteria.po
字号:
"Version properties, identifiers and associations are ignored. By default, ""null valued properties are excluded."msgstr "版本属性、标识符和关联被忽略。默认情况下值为null的属性将被排除。"#. Tag: para#: query_criteria.xml:150#, no-c-formatmsgid "You can adjust how the <literal>Example</literal> is applied."msgstr "你可以自行调整<literal>Example</literal>使之更实用。"#. Tag: programlisting#: query_criteria.xml:154#, no-c-formatmsgid """<![CDATA[Example example = Example.create(cat)\n"" .excludeZeroes() //exclude zero valued properties\n"" .excludeProperty(\"color\") //exclude the property named \"color\"\n"" .ignoreCase() //perform case insensitive string ""comparisons\n"" .enableLike(); //use like for string comparisons\n""List results = session.createCriteria(Cat.class)\n"" .add(example)\n"" .list();]]>"msgstr ""#. Tag: para#: query_criteria.xml:156#, no-c-formatmsgid "You can even use examples to place criteria upon associated objects."msgstr "你甚至可以使用examples在关联对象上放置条件。"#. Tag: programlisting#: query_criteria.xml:160#, no-c-formatmsgid """<![CDATA[List results = session.createCriteria(Cat.class)\n"" .add( Example.create(cat) )\n"" .createCriteria(\"mate\")\n"" .add( Example.create( cat.getMate() ) )\n"" .list();]]>"msgstr ""#. Tag: title#: query_criteria.xml:165#, no-c-formatmsgid "Projections, aggregation and grouping"msgstr "投影(Projections)、聚合(aggregation)和分组(grouping)"#. Tag: para#: query_criteria.xml:166#, no-c-formatmsgid """The class <literal>org.hibernate.criterion.Projections</literal> is a ""factory for <literal>Projection</literal> instances. We apply a projection ""to a query by calling <literal>setProjection()</literal>."msgstr """<literal>org.hibernate.criterion.Projections</literal>是 ""<literal>Projection</literal> 的实例工厂。我们通过调用 <literal>setProjection""()</literal>应用投影到一个查询。"#. Tag: programlisting#: query_criteria.xml:172#, no-c-formatmsgid """<![CDATA[List results = session.createCriteria(Cat.class)\n"" .setProjection( Projections.rowCount() )\n"" .add( Restrictions.eq(\"color\", Color.BLACK) )\n"" .list();]]>"msgstr ""#. Tag: programlisting#: query_criteria.xml:174#, no-c-formatmsgid """<![CDATA[List results = session.createCriteria(Cat.class)\n"" .setProjection( Projections.projectionList()\n"" .add( Projections.rowCount() )\n"" .add( Projections.avg(\"weight\") )\n"" .add( Projections.max(\"weight\") )\n"" .add( Projections.groupProperty(\"color\") )\n"" )\n"" .list();]]>"msgstr ""#. Tag: para#: query_criteria.xml:176#, no-c-formatmsgid """There is no explicit \"group by\" necessary in a criteria query. Certain ""projection types are defined to be <emphasis>grouping projections</""emphasis>, which also appear in the SQL <literal>group by</literal> clause."msgstr """在一个条件查询中没有必要显式的使用 \"group by\" 。某些投影类型就是被定义为""<emphasis> 分组投影</emphasis>,他们也出现在SQL的<literal>group by</literal>""子句中。"#. Tag: para#: query_criteria.xml:182#, no-c-formatmsgid """An alias may optionally be assigned to a projection, so that the projected ""value may be referred to in restrictions or orderings. Here are two ""different ways to do this:"msgstr """你可以选择把一个别名指派给一个投影,这样可以使投影值被约束或排序所引用。下面""是两种不同的实现方式:"#. Tag: programlisting#: query_criteria.xml:188#, no-c-formatmsgid """<![CDATA[List results = session.createCriteria(Cat.class)\n"" .setProjection( Projections.alias( Projections.groupProperty(\"color\"), ""\"colr\" ) )\n"" .addOrder( Order.asc(\"colr\") )\n"" .list();]]>"msgstr ""#. Tag: programlisting#: query_criteria.xml:190#, no-c-formatmsgid """<![CDATA[List results = session.createCriteria(Cat.class)\n"" .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"" .addOrder( Order.asc(\"colr\") )\n"" .list();]]>"msgstr ""#. Tag: para#: query_criteria.xml:192#, no-c-formatmsgid """The <literal>alias()</literal> and <literal>as()</literal> methods simply ""wrap a projection instance in another, aliased, instance of ""<literal>Projection</literal>. As a shortcut, you can assign an alias when ""you add the projection to a projection list:"msgstr """<literal>alias()</literal>和<literal>as()</literal>方法简便的将一个投影实例包""装到另外一个 别名的<literal>Projection</literal>实例中。简而言之,当你添加一""个投影到一个投影列表中时 你可以为它指定一个别名:"#. Tag: programlisting#: query_criteria.xml:199#, no-c-formatmsgid """<![CDATA[List results = session.createCriteria(Cat.class)\n"" .setProjection( Projections.projectionList()\n"" .add( Projections.rowCount(), \"catCountByColor\" )\n"" .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"" .add( Projections.max(\"weight\"), \"maxWeight\" )\n"" .add( Projections.groupProperty(\"color\"), \"color\" )\n"" )\n"" .addOrder( Order.desc(\"catCountByColor\") )\n"" .addOrder( Order.desc(\"avgWeight\") )\n"" .list();]]>"msgstr ""#. Tag: programlisting#: query_criteria.xml:201#, no-c-formatmsgid """<![CDATA[List results = session.createCriteria(Domestic.class, \"cat\")\n"" .createAlias(\"kittens\", \"kit\")\n"" .setProjection( Projections.projectionList()\n"" .add( Projections.property(\"cat.name\"), \"catName\" )\n"" .add( Projections.property(\"kit.name\"), \"kitName\" )\n"" )\n"" .addOrder( Order.asc(\"catName\") )\n"" .addOrder( Order.asc(\"kitName\") )\n"" .list();]]>"msgstr ""#. Tag: para#: query_criteria.xml:203#, no-c-formatmsgid """You can also use <literal>Property.forName()</literal> to express ""projections:"msgstr "你也可以使用<literal>Property.forName()</literal>来表示投影:"#. Tag: programlisting#: query_criteria.xml:207#, no-c-formatmsgid """<![CDATA[List results = session.createCriteria(Cat.class)\n"" .setProjection( Property.forName(\"name\") )\n"" .add( Property.forName(\"color\").eq(Color.BLACK) )\n"" .list();]]>"msgstr ""#. Tag: programlisting#: query_criteria.xml:209#, no-c-formatmsgid """<![CDATA[List results = session.createCriteria(Cat.class)\n"" .setProjection( Projections.projectionList()\n"" .add( Projections.rowCount().as(\"catCountByColor\") )\n"" .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"" .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"" .add( Property.forName(\"color\").group().as(\"color\" )\n"" )\n"" .addOrder( Order.desc(\"catCountByColor\") )\n"" .addOrder( Order.desc(\"avgWeight\") )\n"" .list();]]>"msgstr ""#. Tag: title#: query_criteria.xml:214#, no-c-formatmsgid "Detached queries and subqueries"msgstr "离线(detached)查询和子查询"#. Tag: para#: query_criteria.xml:215#, no-c-formatmsgid """The <literal>DetachedCriteria</literal> class lets you create a query ""outside the scope of a session, and then later execute it using some ""arbitrary <literal>Session</literal>."msgstr """<literal>DetachedCriteria</literal>类使你在一个session范围之外创建一个查询,""并且可以使用任意的 <literal>Session</literal>来执行它。"#. Tag: programlisting#: query_criteria.xml:220#, no-c-formatmsgid """<![CDATA[DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"" .add( Property.forName(\"sex\").eq('F') );\n"" \n""Session session = ....;\n""Transaction txn = session.beginTransaction();\n""List results = query.getExecutableCriteria(session).setMaxResults(100).list""();\n""txn.commit();\n""session.close();]]>"msgstr ""#. Tag: para#: query_criteria.xml:222#, no-c-formatmsgid """A <literal>DetachedCriteria</literal> may also be used to express a ""subquery. Criterion instances involving subqueries may be obtained via ""<literal>Subqueries</literal> or <literal>Property</literal>."msgstr """<literal>DetachedCriteria</literal>也可以用以表示子查询。条件实例包含子查询可""以通过 <literal>Subqueries</literal>或者<literal>Property</literal>获得。"#. Tag: programlisting#: query_criteria.xml:228#, no-c-formatmsgid """<![CDATA[DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)\n"" .setProjection( Property.forName(\"weight\").avg() );\n""session.createCriteria(Cat.class)\n"" .add( Property.forName(\"weight\").gt(avgWeight) )\n"" .list();]]>"msgstr ""#. Tag: programlisting#: query_criteria.xml:230#, no-c-formatmsgid """<![CDATA[DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"" .setProjection( Property.forName(\"weight\") );\n""session.createCriteria(Cat.class)\n"" .add( Subqueries.geAll(\"weight\", weights) )\n"" .list();]]>"msgstr ""#. Tag: para#: query_criteria.xml:232#, no-c-formatmsgid "Even correlated subqueries are possible:"msgstr "甚至相互关联的子查询也是有可能的:"#. Tag: programlisting#: query_criteria.xml:236#, no-c-formatmsgid """<![CDATA[DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat.""class, \"cat2\")\n"" .setProjection( Property.forName(\"weight\").avg() )\n"" .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n""session.createCriteria(Cat.class, \"cat\")\n"" .add( Property.forName(\"weight\").gt(avgWeightForSex) )\n"" .list();]]>"msgstr ""#. Tag: title#: query_criteria.xml:245#, no-c-formatmsgid "Queries by natural identifier"msgstr "根据自然标识查询(Queries by natural identifier)"#. Tag: para#: query_criteria.xml:247#, no-c-formatmsgid """For most queries, including criteria queries, the query cache is not very ""efficient, because query cache invalidation occurs too frequently. However, ""there is one special kind of query where we can optimize the cache ""invalidation algorithm: lookups by a constant natural key. In some ""applications, this kind of query occurs frequently. The criteria API ""provides special provision for this use case."msgstr """对大多数查询,包括条件查询而言,因为查询缓存的失效(invalidation)发生得太频""繁,查询缓存不是非常高效。然而,有一种特别的查询,可以通过不变的自然键优化缓""存的失效算法。在某些应用中,这种类型的查询比较常见。条件查询API对这种用例提供""了特别规约。"#. Tag: para#: query_criteria.xml:255#, no-c-formatmsgid """First, you should map the natural key of your entity using <literal><""natural-id></literal>, and enable use of the second-level cache."msgstr """首先,你应该对你的entity使用<literal><natural-id></literal>来映射自然""键,然后打开第二级缓存。"#. Tag: programlisting#: query_criteria.xml:260#, no-c-formatmsgid """<![CDATA[<class name=\"User\">\n"" <cache usage=\"read-write\"/>\n"" <id name=\"id\">\n"" <generator class=\"increment\"/>\n"" </id>\n"" <natural-id>\n"" <property name=\"name\"/>\n"" <property name=\"org\"/>\n"" </natural-id>\n"" <property name=\"password\"/>\n""</class>]]>"msgstr ""#. Tag: para#: query_criteria.xml:262#, no-c-formatmsgid """Note that this functionality is not intended for use with entities with ""<emphasis>mutable</emphasis> natural keys."msgstr "注意,此功能对具有<emphasis>mutable</emphasis>自然键的entity并不适用。"#. Tag: para#: query_criteria.xml:267#, no-c-formatmsgid "Next, enable the Hibernate query cache."msgstr "然后,打开Hibernate 查询缓存。"#. Tag: para#: query_criteria.xml:271#, no-c-formatmsgid """Now, <literal>Restrictions.naturalId()</literal> allows us to make use of ""the more efficient cache algorithm."msgstr """现在,我们可以用<literal>Restrictions.naturalId()</literal>来使用更加高效的缓""存算法。"#. Tag: programlisting#: query_criteria.xml:276#, no-c-formatmsgid """<![CDATA[session.createCriteria(User.class)\n"" .add( Restrictions.naturalId()\n"" .set(\"name\", \"gavin\")\n"" .set(\"org\", \"hb\") \n"" ).setCacheable(true)\n"" .uniqueResult();]]>"msgstr ""
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -