问题标签 [criteria]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何向 Hibernate 标准 api 查询插入“优化器提示”
我有一个使用标准 api 动态组合在一起的休眠查询。如果按原样执行,它会生成非常慢的查询。
但我注意到,如果我在查询前面加上 /*+ FIRST_ROWS(10) */,它们的速度会快 1000%。我如何使用标准 api 做到这一点?
我尝试了 criteria.setComment(..),但这似乎被忽略了。
在休眠文档中,3.4.1.7。提到了查询提示,但它明确指出:“请注意,这些不是 SQL 查询提示”
查询的结果将被分页,因此在 99% 的情况下,我将显示结果 1-10。
database - 多标准搜索算法
问题是:我有一个巨大的(在我的水平上)mysql数据库,里面有技术产品。我的数据库中有 150k 行产品以及 10 到 20 个具有相同行数的其他表。每个表都包含很多标准。有些标准是文本值,有些是十进制的,有些只是布尔值。我想为这个数据库提供一个网络访问(php),每个标准都有过滤器,但我不知道如何快速做到这一点。我开始创建一个所有列合并以避免多重连接的大表,这很酷,比大连接快,但仍然非常慢。对所有标准进行索引,并不能改善事情(我听说这是个坏主意)。我想知道是否有一些很酷的算法可以帮助我预处理多条件搜索。任何想法 ?
提前谢谢。
oop - 比较/相交比较标准
如果已经有任何开源代码可以做到这一点,我有兴趣了解它。但我还没有看到它,所以我正在尝试自己动手。
例子:
对我来说困难的部分是找到一种优雅的方式来比较 compareCriteria 并创建一个交集。在示例中,两者之间的交集是“介于 3 和 5 之间”。
我怎样才能以“告诉不问”的方式实现这一点?请注意,compareCriteria 可以完全不相关(例如,startsWithLetter 与 betweenNumber)。
nhibernate - NHibernate:创建适用于表上所有查询的条件
使用 Castle ActiveRecord / NHibernate:有没有一种方法可以对表上的所有查询强制使用 ICriterion?
例如,我的很多表都有一个“UserId”列。我可能想确保始终为登录用户选择行。我可以轻松地创建一个 Icriterion 对象,但我不得不为不同的方法提供它:FindAll()、FindFirst()、FindLast() 等。
有没有办法强制对 Castle ActiveRecord 的所有查询使用 WHERE 子句?
nhibernate - NHibernate 2.1:在带有别名的子查询上左连接(ICriteria)
我基本上是在尝试使用 NHibernate ICriteria 接口创建此查询:
SomeTable 1:n 另一个表
SomeTable有列:PrimaryKey、NonAggregateColumn
AnotherTable有列:PrimaryKey、ForeignKey、AnotherNonAggregate、YetAnotherNonAggregate
很明显,使用投影子查询效率不高,因为 SQL 必须扫描表两次(每个聚合一个投影子查询)。
使用多个 GROUP BY 也不是很有效。
有解决方案吗?到目前为止,我一直在使用原始 SQL,但这对于复杂的报告来说变得很笨拙。
asp.net - 标准构建休眠
我想知道是否有人可以帮助提供 nhibernate 的示例标准。我想我已经对相当基本的事情有所了解,比如在给定表中查找字段与某个值匹配的记录等。我目前遇到的问题是你有一个表和另一个表的外键,并且试图根据第二个表中的某个字段从第一个表中查找行。
举个例子...
如果我有
和
我将如何建立标准来检索属于具有特定名称的公司的所有用户?我想我了解如何构建适当的映射文件/对象,我只是不知道如何使标准与初始对象的子属性相匹配。
任何例子都会很棒。
asp.net - 有条件地创建条件休眠
假设我有一个用户表和一个国家表,例如:
并为每个适当地组织映射等。
如果我有类似 List EligibleCountries 之类的内容,如何创建查询以从国家列表中检索所有用户?
就像是:
不会工作,因为用户只在一个国家,那将检查他们是否在所有国家......
我尝试使用 Restrictions.In 但这似乎没有按我想要的方式工作。
我该怎么做才能检索用户,只要他们位于合格国家列表中的国家之一?
nhibernate - NHibernate 查询具有子集合属性的对象
我需要有关休眠查询的帮助。如果可能的话,我更喜欢使用 Criteria API,否则 HQL 是可以的。
我有一个带有 Account 对象属性的 Employee 对象,Account 有一个 Entry 对象的集合,每个 Entry 都有一个 Amount 属性。
我需要一个查询,该查询将返回所有拥有 Entry.Amount 总和小于零的帐户的员工。
有任何想法吗?
php - 如何将 Propel Criteria 编译为 SQL
如何编译 Propel Criteria 以清除 SQL?我试过 $criteria->toString(); 但这不是我所期望的。我也尝试过 ModelPeer::doSelectStmt($criteria) 但它返回了原始 sql(必需的参数替换)
oop - 在这种情况下如何替换 instanceof ?
我正在尝试比较 compareCriteria。简单的,例如“between”和“inArray”或“greaterThan”。我对这些类使用多态性。他们从 compareCriteria 接口共享的一种方法是“matchCompareCriteria”。
我试图避免的是让每个类检查它们应该匹配的 compareCriteria 的类型。例如,inArray 对象将检查 matchCompareCriteria 是否传递了一个 inArray 对象,如果没有,它将返回 false,如果它知道如何比较。
也许 instanceof 在这种情况下是完全合法的(对象知道自己),但我仍在寻找可能的方法来避免它。有任何想法吗?
伪代码示例:
如果 X 和 Y 大于 Z,它将返回 true。
编辑:
1) instanceof 是我目前在 matchCompareCriteria 方法中看到的。我想摆脱它
2) matchCompareCritera 检查一个 compareCriteria 是否被另一个包含。如果一个的所有可能值都包含在另一个中,则返回 true。对于 compareCriteria 的许多组合,比较它们甚至没有意义,因此它们返回 false(例如 betweenAlfa 和 betweenNum 将不兼容)。