• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

EJB-QL question

 
Ernest Lee
Ranch Hand
Posts: 145
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Find all orders in which the shipping address differs from the billing address. This example assumes that the Bean Provider uses two distinct entity beans to designate shipping and billing addresses:

SELECT OBJECT(o)
FROM Order o
WHERE NOT
(o.shipping_address.state = o.billing_address.state AND
o.shipping_address.city = o.billing_address.city AND
o.shipping_address.street = o.billing_address.street)


If the Bean Provider uses a single entity bean in two different relationships for both the shipping address and the billing address, the above expression can be rewritten as:

SELECT OBJECT(o)
FROM Order o
WHERE o.shipping_address <> o.billing_address


My question:
Suppose I am using the 2nd version, how will the container do the comparsion, will it compare the primary keys?? or all the cmp-field??

Thanks.
 
Navin T
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The specs states that "EJB QL only permits like type values to be compared" with some exceptions. Also "Two entity objects of the same abstract schema type are equal if and only if they have the same primary key value."

So, in the above expression, both the addresses should be of the same entity type and if they are, then they will be compared by their primary keys.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic