2017-11-10 8 views
0

私はこのエラーに問題があります。誰かが私を助けてくれることを願っています。私のエンティティでjava x.xml.ws.soap.SOAPFaultException:java.lang.Stringにjava.lang.Enumにキャストすることができません

私はこのコードを持って

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

この私の列挙型クラス:

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を行います。ここでは、この私のクエリの一部

@XmlEnum 
public enum TypeInterface { 
FF("Flat File"), 
WS("Web Service"), 
... 
} 

そして、 .list aこのエラーを取得する:

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

答えて

0

パラメータを設定するときは.name()を省略してください。

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

ありがとうございました。 – CBJ

関連する問題