[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
Re: [eclipselink-users] Question about Case Expressions in JQPL
 | 
Hi Antonio,
  Try aliasing ex25_book.
e.g.
SELECT book.PRICE, CASE book.EDITOR WHEN 'Apress' THEN (book.PRICE * 0.5) ELSE
 (book.PRICE * 0.8) END FROM ex25_book book ORDER BY book.ISBN ASC
Antonio Goncalves wrote:
Hi all,
In JPA 2.0 we can now use CASE expression in JPQL. I was having a look 
at the spec (ยง4.6.17.3) but can't really make my example work.
Let's say there's a Book entity with an id, isbn, price and an editor. 
When you want to get all the prices of the books, you'll do :
  Select b.price from Book b 
Easy. Now, for Chistmas, you want to have 50% discounts on all the books 
from Apress editor and 20% for all the other editors. How would you 
write that ? I've tried :
SELECT b.price, CASE b.editor
                     WHEN 'Apress' THEN b.price * 0.5
                     ELSE b.price * 0.8
                END
FROM Book b 
This doesn't work and gives me the following exception.
Any idea how to write such a statement ?
Thanks,
Antonio
Exception [EclipseLink-4002] (Eclipse Persistence Services - 
2.0.0.v20091127-r5931): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Syntax error: 
Encountered "EDITOR" at line 1, column 20.
Error Code: 30000
Call: SELECT PRICE, CASE EDITOR WHEN 'Apress' THEN (PRICE * 0.5) ELSE 
(PRICE * 0.8) END FROM ex25_book ORDER BY ISBN ASC
Query: ReportQuery(referenceClass=Book25 sql="SELECT PRICE, CASE EDITOR 
WHEN ? THEN (PRICE * ?) ELSE (PRICE * ?) END FROM ex25_book ORDER BY 
ISBN ASC")
Local Exception Stack: 
Exception [EclipseLink-4002] (Eclipse Persistence Services - 
2.0.0.v20091127-r5931): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: Syntax error: 
Encountered "EDITOR" at line 1, column 20.
Error Code: 30000
Call: SELECT PRICE, CASE EDITOR WHEN 'Apress' THEN (PRICE * 0.5) ELSE 
(PRICE * 0.8) END FROM ex25_book ORDER BY ISBN ASC
------------------------------------------------------------------------
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users