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#3968231

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3968231
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to