2013-04-10 57 views
0

我在我的應用程序中使用JPA和EclipseLink提供程序來連接到AS400。我有一個實體WebRequest,它與我的RateQuote實體具有@OneToOne關係。 WebRequest生命週期始於RateQuote屬性爲null,直到用戶處理WebRequest並生成RateQuote。我想要實現的不是插入null,而是插入0,因爲底層字段是DECIMAL(7,0)在WebRequest表中。如何在目標實體爲null時在@OneToOne關係中插入0

在我們的AS400(V6R1)上,我們有用於查看數據的WRKDBF實用程序。當我將一個空值保存到表中時,WRKDBF在嘗試查看數據時崩潰。

任何幫助表示讚賞。

謝謝。

+3

向WRKDBF提交一個錯誤,而不是用不正確的值污染你的數據庫? – 2013-04-10 14:31:43

+0

0在DECIMAL(7,0)字段中不是不正確的值。 – 2013-04-10 14:49:17

+2

0是在關係數據庫中存儲空外鍵的不正確方法。 null是正確的值。如果WRKDBF非常糟糕,當可空數據庫列包含null時崩潰,那麼你應該提交一個bug或使用其他工具,而不是污染你的數據庫,使外鍵約束變得不可能,並且使用像JPA這樣的標準API是不可能的。 – 2013-04-10 14:57:54

回答

1

我在訪問'SQL'文件時遇到了產生CPF5035/RNX1299的WRKDBF實用程序問題。

看看免費軟件程序PEEK/400進行更換。

0

您可以製作ID爲0的虛擬RateQuote對象,並將它賦值而不是null,但這是一種破解。修復效用將是最好的。

0

有一個替代WRKDBF它是在我的網站上。有一些差異,主要原因是隻能在SQL上選擇物理以及邏輯文件。支持日期字段和空字段。免費試用。請參閱WRKDBF