【发布时间】:2015-06-09 14:22:28
【问题描述】:
我一直在 Eclipse 中使用 Apache Derby。我已经启动了一个网络服务器,并且一直在使用 servlet。在我的 Eclipse 项目中,我在包“base.pack”中有一个名为“User”的类。我打开了一个 SQL 脚本,我一直在尝试将实现 Serializable 的 User 转换为自定义类型。当我运行以下几行时,一切正常:
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));
我收到以下错误:
列“NAME”的类“base.pack.User”不存在或无法访问。如果该类不是公开的,则可能会发生这种情况。
现在,该类实际上是公共的,正如我之前提到的,它确实实现了 Serializable。我认为我没有错误地说明包名称,但我可能是错的。我想知道,这是我的类路径的问题吗?如果是这样,你会建议我如何解决这个问题?我承认我对类路径了解不多。
谢谢。
(作为参考,我已将我的项目构建路径配置为包含derby.jar、derbyclient.jar、derbytools.jar 和derbynet.jar,并且我已将这些文件放入我的项目的lib 文件夹中)。
【问题讨论】:
-
您是否在“我收到以下错误”的问题中粘贴了错误的文本?看起来您两次粘贴了 CREATE TABLE 语句。
-
糟糕!你是对的,我的错。我编辑了问题以包含正确的错误消息 - 感谢您指出这一点!
标签: java eclipse types classpath derby