I have the following in a Question entity:
@NamedQuery(name = "Question.allApproved", query = "SELECT q FROM Question q WHERE q.status = 'APPROVED'")
and
@Enumerated(EnumType.STRING) private Status status; // usual accessors
I am getting this exception:
Exception Description: Error compiling the query [Question.countApproved:
SELECT COUNT(q) FROM Question q WHERE q.status = 'APPROVED'
], line 1, column 47: invalid enum equal expression, cannot compare enum value of type[myCompnay.application.Status]
with a non enum value of type[java.lang.String]
. at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:501)
How do I fix this?
Advertisement
Answer
I think you should use your (fully qualified) Status
enum instead of literal value, so something like this: (assuming your Status
enum is in com.myexample
package)
@NamedQuery(name = "Question.allApproved", query = "SELECT q FROM Question q WHERE q.status = com.myexample.Status.APPROVED").