【问题标题】:Entity class with DB showing Table with No primary key带有 DB 的实体类显示没有主键的表
【发布时间】:2012-01-24 10:20:13
【问题描述】:

我想在 Netbeans 中创建一个带有数据库的实体类。

当我选择一个数据源 jdbc/Ionbank(自定义 Jdbc 连接使用 JDBC-ODBC 桥与 Ms SQL 2005 作为数据库)。

我看到了该数据库中的所有表。 所有表都没有显示主键,但它们都有主键。

我尝试过的事情:-

  1. 创建了新的 4-5 数据源。
  2. 使用查询而不是“新建表”选项创建表。
  3. 尝试更改 Odbc 连接。
  4. 尝试为 Jdbc-Odbc 桥使用不同的驱动程序,例如 Sql4jdbc.jar、Jdts.jar。

【问题讨论】:

  • JDBC-ODBC 桥不是推荐的解决方案...您是否尝试过使用 MS SQL Server 连接器进行连接?
  • 发布你的代码/配置文件和抛出的异常
  • Ms Sql Server 连接器也有问题(不同主题)。
  • 无法显示您的代码或抛出的异常 Bcoz 我正在使用 Netbeans Ide 接口执行此操作,使用带有数据库选项的新文件 > 实体类。
  • 非常感谢@perissf!你的解决方案对我有用。我认为最好把它写成答案。

标签: java sql-server netbeans ejb-3.0


【解决方案1】:

我有同样的问题,但我使用以下方法解决了它:"New Entity Classes from Database" cannot process some tables, saying "no primary key"

该链接的引用帮助了我:

如果您有大写和小写表名与引用表的定义不匹配的外键,则会出现此问题。

例如:

create table OkTable (
   id int not null auto_increment
   , primary key (id)
);

create table MisunderstoodTable(
   id int not null auto_increment
   oktable int not null
   , primary key (id)
   , foreign key ok (oktable) references oktable (id)
);

MisunderstoodTable 有一个外键,其中目标表名称与引用表的小写/大写名称不匹配。

为避免此问题,只需确保在匹配目标表的大写/小写时键入外键定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 2023-02-09
    • 2014-02-19
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    • 2021-10-06
    相关资源
    最近更新 更多