<ejb-ql><![CDATA[SELECT OBJECT(s) FROM Service s WHERE s.price <> 0]]></ejb-ql>
Cheers, that worked.
So the rule of thumb is that I need to include the CDATA bit if I'm using a comparison operator like < or > in my EJB-QL? Otherwise, I can ignore it?
No. The absolute rule (no thumbs here) is that your deployment descriptor has to be well-formed (and valid) XML. What you originally wrote is not well-formed XML. There are a couple of ways you can 'escape' the important symbols (<, >, &, ' and ") and using a CDATA section is one of them.
Yes. The exception is thrown by the XML parser. You should make sure the deployment descriptor has a valid XML content.