mirror of
https://github.com/doctrine/orm.git
synced 2026-03-24 06:52:09 +01:00
DDC-1975: Binding entities to query parameters throws exception on new entity #2494
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @doctrinebot on GitHub (Aug 10, 2012).
Originally assigned to: @beberlei on GitHub.
Jira issue originally created by user goetas:
I have this entities:
when run this query:
i get the exception: Binding entities to query parameters only allowed for entities that have an identifier.
the expected query is:
SELECT * FROM user WHERE phone_id = NULL;
the involved ORM component is AbstractQuery::convertObjectParameterToScalarValue
changing this method, form
to
.
the modified method check if the 'phone' entity state is new, and if it is true return null.
@doctrinebot commented on GitHub (Aug 10, 2012):
Comment created by stof:
Returning null is wrong here. If you query for users related to your new phone object, it is not the same than querying for users without a phone (and btw, it would break in your database as
u.phone_id = NULLwill not be valid in SQL)@doctrinebot commented on GitHub (Aug 10, 2012):
Comment created by goetas:
Ok, probably you are right.
Any idea to run this query without getting exceptions?
My intent is to extract users that have associated
$phoneas phone number.If
$phoneis a new object, I expect to get an empty set after executing the query below.Currently it works because $phone->id is null and querying
SELECT * FROM user WHERE phone_id = NULLwill always return an empty set.@doctrinebot commented on GitHub (Aug 14, 2012):
Comment created by @asm89:
This is not a bug. See the explanation of Christophe.
You should do andWhere("u.phone IS NULL"). Note that IS NULL is not the same as = null.
@doctrinebot commented on GitHub (Aug 14, 2012):
Issue was closed with resolution "Invalid"