我一直在Eclipse內部使用Apache Derby。我啓動了一個網絡服務器,並且一直在使用servlet。在我的Eclipse項目中,我在「base.pack」包中有一個名爲「User」的類。我打開了一個SQL腳本,並且一直試圖將實現Serializable的User轉換爲自定義類型。當我運行以下命令行,一切工作正常:Derby,Java:遇到「CREATE_TYPE」語句的問題
CREATE TYPE CARTEBLANCHE.bee
EXTERNAL NAME 'base.pack.User'
LANGUAGE JAVA
這是繼通用格式,他們確定位置:http://db.apache.org/derby/docs/10.7/ref/rrefsqljcreatetype.html#rrefsqljcreatetype
現在,當我嘗試使用這種新類型來創建一個表,我得到一個錯誤。我運行下面的一行:
CREATE TABLE CARTEBLANCHE.TestTabel (ID INTEGER NOT NULL, NAME CARTEBLANCHE.bee, PRIMARY KEY(ID));
我收到以下錯誤:
The class 'base.pack.User' for column 'NAME' does not exist or is inaccessible. This can happen if the class is not public.
現在,類實際上是公共的,正如我前面提到的,它確實實現Serializable接口。我不認爲我錯誤地陳述包名,但我可能是錯的。我想知道,這是我的類路徑的問題嗎?如果是這樣,你會如何解決這個問題?我承認我對類路徑瞭解不多。
謝謝。
(僅供參考,我已經配置我的項目構建路徑,包括derby.jar
,derbyclient.jar
,derbytools.jar
和derbynet.jar
,我已經把這些文件到我的項目的lib
文件夾以及)。
您是否將錯誤的文本粘貼到「我收到以下錯誤」的問題中?看起來你粘貼了兩次CREATE TABLE語句。 –
糟糕!你是對的,我的錯。我編輯了這個問題以包含正確的錯誤信息 - 謝謝指出! – jpabene