Hello, I've come across an issue with a column used within a JQPL CASE WHEN Selection.
The column's definition is as follows: @Column(name = "GEN_STATUS") @Enumerated(EnumType.ORDINAL) private ApprovalState state; The JPQL used here is SELECT c, ( CASE c.approval.state WHEN model.protocol.ApprovalState.IN_PROCESS THEN 1 WHEN model.protocol.ApprovalState.RELATION_CHECK THEN 2 WHEN model.protocol.ApprovalState.IN_APPROVAL THEN 3 WHEN model.protocol.ApprovalState.NEEDS_SCORING THEN 4 WHEN model.protocol.ApprovalState.ADOPTION_REQUEST_IN_PROCESS THEN 5 WHEN model.protocol.ApprovalState.ADOPTION_REQUESTED THEN 6 WHEN model.protocol.ApprovalState.APPROVED THEN 7 WHEN model.protocol.ApprovalState.APPROVED_WITH_COLLATERALS THEN 8 WHEN model.protocol.ApprovalState.ACTIVATED THEN 9 WHEN model.protocol.ApprovalState.CANCELLED THEN 10 WHEN model.protocol.ApprovalState.DECLINED THEN 11 WHEN model.protocol.ApprovalState.CREATED THEN 12 WHEN model.protocol.ApprovalState.DEDUCTED THEN 13 WHEN model.protocol.ApprovalState.DELETED THEN 14 WHEN model.protocol.ApprovalState.PROPOSAL_CANCELLED THEN 15 ELSE 0 END ) AS vehicleStateOrder FROM DbContract c WHERE c.person.personId = :personId ORDER BY vehicleStateOrder, c.insertDate However, when this JPQL is transferred to SQL, e.g. ORACLE in this case throws the following error: ORA-00932: Inkonsistente Datentypen: NUMBER erwartet, CHAR erhalten A relevant part of the query is: SELECT * FROM (SELECT t0.VTR_ID AS c0, CASE t2.GEN_STATUS WHEN 'IN_PROCESS' THEN 1 WHEN 'RELATION_CHECK' THEN 2 WHEN 'IN_APPROVAL' ... The problem here is, that as the column definition denotes, not the ordinal number, but the enumeration name is used. Wer are using WebSphere 8.0.0.4 which includes openjpa-2.1.2-SNAPSHOT-r422266:1333100. Can somebody please tell me, what we can do to get this query working or is this a bug in the JPQL parsing system? Best regards, Heiko -- Dr.-Ing. Heiko Kopp / Fa. Vision iT media GmbH If you are not the intended addressee, please inform us immediately that you have received this e-mail in error, and delete it. We thank you for your cooperation.