【问题标题】:No relations in entity classes created with NetBeans from database使用 NetBeans 从数据库创建的实体类中没有关系
【发布时间】:2011-03-24 12:05:03
【问题描述】:

我正在使用 Netbeans 从数据库中创建实体类,我选择了数据库中的所有表,并且创建的类没有任何关系信息,例如 @OneToMany、@ManyToOne 等... 这是我在数据库中的两个表的示例,在创建表时我还需要指定什么吗?

CREATE TABLE `Indicator` (
  `ID` int(11) NOT NULL,
  `Number` int(11) NOT NULL,
  `ApplicablePeriodTypeID` int(11) NOT NULL,
  `IndicatorSourceID` int(11) DEFAULT NULL,
  PRIMARY KEY (`ID`),
  KEY `IndicatorSourceID` (`IndicatorSourceID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1$$

CREATE TABLE `IndicatorSource` (
  `ID` int(11) NOT NULL,
  `CollectionName` varchar(255) NOT NULL,
  `URL` varchar(1000) DEFAULT NULL,
  `Number` int(11) NOT NULL,
  `SourceName` varchar(255) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1$$

【问题讨论】:

    标签: java mysql hibernate netbeans


    【解决方案1】:

    您可能需要添加外键约束,例如在IndicatorSourceID。否则没有暗示IndicatorSourceID 指的是IndicatorSource.ID

    【讨论】:

    • 对不起,如果这是一个愚蠢的问题,但我已经运行了这个:“Alter table Indicator add CONSTRAINT foreign key (IndicatorSourceID) references IndicatorSource(ID)”,这是你的意思吗? id 不能解决问题
    • 是的,我的意思是,尽管您应该为外键添加一个名称。这至少告诉数据库IndicatorIndicatorSource 之间存在连接。不过,我不确定 Netbeans 是否能够处理这些信息。
    【解决方案2】:

    将 ENGINE 更改为 InnoDB 并添加外键解决了问题。一些与 InnoDB 不同的数据库引擎不支持外键,当尝试添加外键时,它不会产生任何错误。

    【讨论】:

      【解决方案3】:

      附带说明:Netbeans 6.9 中的从数据库创建实体类功能似乎没有为从备用键迁移的外键添加关系——只有从主键迁移的外键。

      【讨论】:

        【解决方案4】:

        您使用的是哪个数据库?你确定你已经配置了数据库连接使用 与您的数据库和 jdk 版本兼容的驱动程序...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-06-02
          • 1970-01-01
          相关资源
          最近更新 更多