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

时间:2017-11-10 13:40:27

标签: java apache enums jpql

我遇到了这个错误的麻烦..我希望有人可以帮助我。

在我的实体中,我有这段代码

@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

1 个答案:

答案 0 :(得分:0)

设置参数时只需省略.name()

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