[英]JPA enum query ERROR on playframework
我正在使用Java playframework 1.2.4進行項目,並且有一個@Entity類。 看起來像
@Entity
public class EmployeeType extends Model {
public static enum TYPE { HOURLY, DAILY, MONTHLY };
public static enum NATIONALITY { LOCAL, FOREIGN };
@Required
@Enumerated(EnumType.STRING)
public TYPE type;
@Required
@Enumerated(EnumType.STRING)
public NATIONALITY nationality;
}
在我的控制器類中,我想使用我的2個枚舉屬性獲取EmployeeTypes的列表。 查詢看起來像
Query query = JPA.em().createQuery("SELECT e FROM EmployeeType e where " +
"e.nationality = :nationality " +
"and e.type = :type");
query.setParameter("nationality", NATIONALITY.LOCAL);
query.setParameter("type", TYPE.HOURLY);
List<models.EmployeeType> employeeType = query.getResultList()
給出此錯誤:發生IllegalArgumentException:參數值[LOCAL]與類型[models.EmployeeType $ NATIONALITY]不匹配
我該怎么辦?
該錯誤可能是因為您的enum
嵌套在您的實體中。 您需要以實體名稱訪問它。
您可以將setParameter
代碼更改為:-
query.setParameter("nationality", EmployeeType.NATIONALITY.LOCAL);
query.setParameter("type", EmployeeType.TYPE.HOURLY);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.