2015-10-16 87 views
0

在我們的Play應用程序中,我們使用Ebean ORM。我們有用於繼承Play Model類的模型類。自Play 2.4以來,我們的模型類必須從Avaje Ebean Model類繼承。這些模型類是增強的,即有幾種方法被注入到我們的模型類中。由於這種變化,我們得到JAXB錯誤信息,說例如:Ebean增強搞亂了JAXB序列化

Caused by: com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions 
com.avaje.ebean.bean.PersistenceContext is an interface, and JAXB can't handle interfaces. 
    this problem is related to the following location: 
     at com.avaje.ebean.bean.PersistenceContext 
     at public com.avaje.ebean.bean.PersistenceContext com.avaje.ebean.bean.EntityBeanIntercept.getPersistenceContext() 
     at com.avaje.ebean.bean.EntityBeanIntercept 
     at protected com.avaje.ebean.bean.EntityBeanIntercept models.Phase._ebean_intercept 
     at models.Phase 

我試圖通過增加這階段模型類來解決此問題:

@XmlTransient 
public EntityBeanIntercept _ebean_intercept() { 
    throw new NotImplementedException(); 
}; 

可惜,這招不起作用,結果在錯誤消息「類文件模型/階段中的複製方法名稱&簽名」中。有沒有另一種告訴JAXB忽略這個類的增強成員的方法?

回答