dragon188199 2015-11-20 10:22
浏览 71
已采纳

我可以强制Doctrine 2存储库首先检查entityManager的结果

I expected that Doctrine 2 repository would check the EntityManager for results first. But it doesn't.

This code represents the issue.

$em = $this->getEntityManager();

$firstName = 'Michael';
$lastName = 'Jordan';
$userEntity = new User($firstName, $lastName);

$em->persist($userEntity);

$userRepository = $em->getRepository('UserRepository');

$expectingMichaelJordanUserEntity = $userRepository->findOneBy(array('firstName' => $firstName, 'lastName' => $lastName));

In this example the $expectingMichaelJordanUserEntity is null because the entity has not been saved to the database. Shouldn't it look inside the entity manager for persisted entities first?

Is that the meaning or is there a way to get my example to return the persisted User entity?

  • 写回答

1条回答 默认 最新

  • doudihuang7642 2015-11-20 11:27
    关注

    You are asking doctrine to findOneBy those criteria inside the database. In your case it returns null but it could as well return a record if there would be such a user firstName = 'Michael' AND lastName = 'Jordan' inside your database.

    The result of this query has nothing to do with your newly created user.

    If it would return the user from the EntityManager then you would not know whether it is from the database or from memory.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 arduino控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题