在数据库中使用NetBeans创建的实体类中没有任何关系

时间:2011-03-24 12:05:04

标签: java mysql hibernate netbeans

我正在使用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$$

4 个答案:

答案 0 :(得分:0)

您可能需要添加外键约束,例如在IndicatorSourceID。否则,没有提示IndicatorSourceID引用IndicatorSource.ID

答案 1 :(得分:0)

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

答案 2 :(得分:0)

作为旁注:似乎Netbeans 6.9中的数据库功能中的创建实体类不会为从备用密钥迁移的外键添加关系 - 只有那些从主键迁移的外键。

答案 3 :(得分:0)

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