2

nHibernate 有一个很棒的功能叫做过滤器,所以我可以为我的应用程序全局创建标准。我正在用 PHP 开始一个项目,我需要使用 ORM,我想知道 Doctrine 是否具有类似的功能来管理查询条件。

谢谢

4

2 回答 2

0

Doctrine 2.2 具有过滤系统,允许开发人员将 SQL 添加到查询的条件子句中,而不管 SQL 生成的位置(例如从 DQL 查询,或通过加载关联实体)。

过滤器功能适用于 SQL 级别。SQL 查询是在 Persister 中、在延迟加载期间、在额外的延迟集合中还是从 DQL 中生成的。每次系统迭代所有启用的过滤器时,都会添加一个新的 SQL 部分作为过滤器返回。

通过将 SQL 添加到查询的条件子句中,过滤系统在 SQL 结果集级别过滤掉属于实体的行。这意味着过滤后的实体永远不会被水合(这可能很昂贵)。

于 2013-12-17T15:48:49.120 回答
-1

我认为您正在寻找的是 Doctrine Query Hooks。

preUpdate、preSave、preCreate、postCreate、postUpdate、postSave、preSelect 等有许多钩子。

希望这可以帮助。

于 2010-01-13T16:12:20.267 回答