我正在使用netBeans IDE中的hibernate和JSF创建一个小应用程序。我的项目对主人很好。现在我需要再添加一个包含与主人关系的表格。该方案是遵循休眠或Netbeans不允许外键表进行逆向工程
delimiter $$
CREATE TABLE `TABLE_1` (
`ID1` int(11) NOT NULL default '0',
`ID1_DESC` varchar(45) default NULL,
PRIMARY KEY (`ID1`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1$$
delimiter $$
CREATE TABLE `TABLE_2` (
`ID2` int(11) NOT NULL default '0',
`ID2_DESC` varchar(45) default NULL,
PRIMARY KEY (`ID2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1$$
delimiter $$
CREATE TABLE `TABLE_3` (
`ID3` int(3) NOT NULL default '0',
`ID1` int(3) NOT NULL,
`ID2` int(3) NOT NULL,
`ID3_DESC` varchar(45) default NULL,
PRIMARY KEY (`ID3`),
KEY `FK_ID1_idx` (`ID1`),
KEY `FK_ID2_idx` (`ID2`),
CONSTRAINT `FK_ID1` FOREIGN KEY (`ID1`) REFERENCES `table_1` (`ID1`) ON UPDATE CASCADE,
CONSTRAINT `FK_ID2` FOREIGN KEY (`ID2`) REFERENCES `table_2` (`ID2`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1$$
然后我试图产生通过在NetBeans反向工程向导它节选只有Table 1和Table逆向工程文件。它将Table3显示为Table3(无主键)。它也不包含反向工程文件中的Table3。
我产生hibernate.cfg.xml文件是
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/TESTSCHEMA?zeroDateTimeBehavior=convertToNull</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
</session-factory>
</hibernate-configuration>
当我删除外键它可以让我产生表3映射文件和POJO。 我无法理解为什么它不允许外键概念。 它是MySQL表创建错误或netbeans错误或休眠问题?
任何人可以提供我解决这个问题?在此先感谢......
对不起,但没有必要这样做。 – mrugeshthaker