LuckyLuke LuckyLuke - 2 years ago 76
Java Question

Problems with making a query when using Enum in entity

I have the following in a Question entity:

@NamedQuery(name = "Question.allApproved", query = "SELECT q FROM Question q WHERE q.status = 'APPROVED'")


private Status status;

public Status getStatus() {
return status;

public void setStatus(Status status) {
this.status = status;

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

How do I fix this?

Answer Source

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").
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download