我遇到了这个错误的麻烦..我希望有人可以帮助我。
在我的实体中,我有这段代码
@Id
@Column(name="TYPE_INTERFACE")
@Enumerated(value=EnumType.STRING)
@XmlElement
private TypeInterface typeInterface;
这是我的枚举课程:
@XmlEnum
public enum TypeInterface {
FF("Flat File"),
WS("Web Service"),
...
}
这是我查询的一部分:
queryB.append("FROM TraductionAttribut ta WHERE ");
if (newbox.getTypeInterface() != null) {
queryB.append(" (ta.typeInterface = :taTypeInterface OR ta.typeInterface = :taAll)");
}
...
Query q = session.createQuery(queryB.toString());
if (newbox.getTypeInterface() != null) {
q.setParameter("taTypeInterface",newbox.getTypeInterface().name());
q.setParameter("taAll", TypeInterface.ALL );
}
...
List<TraductionAttribut> listResult = q.list();
当我制作q.list时出现此错误:
javax.xml.ws.soap.SOAPFaultException: java.lang.String cannot be cast to java.lang.Enum
答案 0 :(得分:0)
设置参数时只需省略.name()
。
q.setParameter("taTypeInterface",newbox.getTypeInterface());