I have the following in a Question entity:
JavaScript
x
@NamedQuery(name = "Question.allApproved",
query = "SELECT q FROM Question q WHERE q.status = 'APPROVED'")
and
JavaScript
@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)
JavaScript
@NamedQuery(name = "Question.allApproved",
query = "SELECT q
FROM Question q
WHERE q.status = com.myexample.Status.APPROVED").