我有一个实体BlogPost
,其中有一个字段status
。此状态取决于外部API的某些数据。为了解决这个问题,我实现了一个postLoad侦听器,该侦听器会在实体加载后设置状态。
现在的问题是,我想按此状态进行过滤。
在我的存储库中,我通常会编写一种类似于getBlogPostByStatusXY()
的方法。
但这现在不起作用,因为这些数据没有保存为我的数据库中的不动产...
有人有一个聪明的主意如何应对吗?
如果我无法避免将状态保存到数据库中……我该如何处理它,而不必对我的API进行不必要的强调(用于计算状态)。
我考虑过做类似“只要从存储库中获取任何东西,就首先更新所有BlogPost的状态并将其保存回数据库”之类的方法……这将是一个API调用,价格相对便宜,但我找不到一个用于执行此操作的事件...所有事件都基于单个实体,而不是用于接触存储库。在单个实体事件(例如postLoad)期间保存它会不必要地对所有实体进行api调用...
有人有另一个主意吗?
谢谢
答案 0 :(得分:1)
您可能想获得以下问题的答案:
如果您需要发出50个HTTP请求或仅发出一个HTTP请求,那么这非常重要。
Kinda与问题1有关,但仍然...
status
个更新中有多少个对象是候选对象? Doctrine
在需要发出UPDATE
查询时非常聪明,但是如果您使用自己的DQL,就不会那么多。
以上任何答案是否都提示瓶颈?
考虑一下,有两个想法:
status
:第一个请求:
BlogPost-status-<id>
)status
字段过滤出您的实体下一个请求:
status
字段过滤出您的实体status
第一个请求:
下一个请求:
status
过滤器从数据库中获取条目可能还有其他一些相关方法。
希望这会有所帮助...