我試圖通過eclipselink(JPA)執行插入/更新並在derby中提交。我在執行期間收到以下異常。EclipseLink或Derby在意外的行拋出異常
java.lang.IllegalArgumentException: Precision exceeds 31 digits!
at org.apache.derby.client.am.Utils.computeBigDecimalPrecision(Unknown Source)
at org.apache.derby.client.net.NetStatementRequest.computeProtocolTypesAndLengths(Unknown Source)
..
..
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:788)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:863)
..
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:430)
at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getResultList(EJBQueryImpl.java:714)
at com.rw.util.RWCommonFactory.getCommonCodeSet(RWCommonFactory.java:194)
at com.rw.what.RWTransaction.setProcessedStatusCode(RWTransaction.java:218)
RWCommonFactory.getCommonCodeSet包含
public RWCommonCodeSet getCommonCodeSet(String name, String value){
Query query = manager.createNamedQuery(RWCommonCodeSet.FIND_CODE_NAME_CODE_VALUE);
query.setParameter("codeName", name.trim());
query.setParameter("codeValue", value.trim());
List l = query.getResultList();
if(l.isEmpty()){
return null;
}
else{
return (RWCommonCodeSet) l.get(0);
}
}
RWCommonCodeSet是不包含任何小數列的實體表,但是,讓這裏的精度超過例外。
此外,在此執行過程中,我確實堅持其他包含DECIMAL(31,5)列的實體。
我試着啓用Derby日誌和Eclipse鏈接日誌,但我無法從該日誌中獲取正確的錯誤。
我怎樣才能得到實際的錯誤位置。
謝謝。
vels4j,你有沒有找到問題的根源? –