java x.xml.ws.soap.SOAPFaultException: java.lang.String 无法转换为 java.lang.Enum

java x.xml.ws.soap.SOAPFaultException: java.lang.String cannot be cast to java.lang.Enum

我遇到了这个错误..我希望有人能在这里帮助我。

在我的实体中我有这个代码

@Id
@Column(name="TYPE_INTERFACE")
@Enumerated(value=EnumType.STRING)
@XmlElement
private TypeInterface typeInterface;

这是我的枚举 class:

@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

设置参数时省略.name()即可

q.setParameter("taTypeInterface",newbox.getTypeInterface());