Is it possible to have an embedded object in the WHERE clause of a named query?
Say you have a Customer entity with an Embedded Name object. Name contains first_name and
last_name.
If I write a named query accessing the pieces of Name directly, as in the below query, it
works fine:
SELECT cust FROM Customer cust WHERE cust.name.first_name = :firstName AND
cust.name.last_name = :lastName
However, if I try to access the entire Name object in the query, the query fails:
SELECT cust FROM Customer cust WHERE cust.name = :name
The funny thing is, if I put the server in DEBUG logging mode, and I attempt the second
query, the query sent to the database is:
SELECT cust.field1, cust.field2 FROM customer cust WHERE (cust.first_name, cust.last_name)
= ? To me, it looks like EJB is smart enough to realize that my Name object is an embedded
object pointing to two fields in the customer table. However, it is not smart enough to
realize that it needs to split up the parameter passed in to the named query into its
respective pieces, since I get a SQL error stating "invalid relational
operator".
Is this just how things are?
Thanks!
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3968231#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...