Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MySQL-Hibernate不创建外键约束_Java_Mysql_Hibernate_Foreign Keys_Innodb - Fatal编程技术网

Java MySQL-Hibernate不创建外键约束

Java MySQL-Hibernate不创建外键约束,java,mysql,hibernate,foreign-keys,innodb,Java,Mysql,Hibernate,Foreign Keys,Innodb,我正在将我的应用程序从Derby移动到MySQL,并且面临这样一个问题:hibernate在最初创建表时没有创建外键约束。所有me映射似乎都是正确的,因为它们与Derby配合得很好 我使用的是MySQL服务器5.6,也使用MySQL5InnoDBdial。我还在MySQL工作台中使用show create table命令验证了该表是使用innoDB引擎创建的 使用的MySQL连接器-MySQL连接器java-5.1.6 日志: persistence.xml <?xml version="

我正在将我的应用程序从Derby移动到MySQL,并且面临这样一个问题:hibernate在最初创建表时没有创建外键约束。所有me映射似乎都是正确的,因为它们与Derby配合得很好

我使用的是MySQL服务器5.6,也使用MySQL5InnoDBdial。我还在MySQL工作台中使用show create table命令验证了该表是使用innoDB引擎创建的

使用的MySQL连接器-MySQL连接器java-5.1.6

日志:

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
    <persistence-unit name="hibernatePersistenceUnit" transaction-type="RESOURCE_LOCAL">
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="create" /> 
            <!-- <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect" /> -->
            <!-- <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" /> -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
            <property name="hibernate.show_sql" value="true"/>
            <property key="hibernate.hbm2ddl.import_files">import.sql</property>
        </properties>
        <mapping-file>META-INF/orm.xml</mapping-file>
    </persistence-unit>
</persistence>
根据MySQL参考,外键定义受以下条件约束:

InnoDB允许外键引用任何索引列或索引组 柱。但是,在引用的表中,必须有一个索引 其中引用的列列列为列表中的第一列 同样的顺序


能否为依赖项跟踪、工具主控和部门角色、部门表及其alter查询提供import.sql的snip。import.sql仅包含插入查询。我没有通过它显式地创建表。
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
    <persistence-unit name="hibernatePersistenceUnit" transaction-type="RESOURCE_LOCAL">
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="create" /> 
            <!-- <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect" /> -->
            <!-- <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" /> -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
            <property name="hibernate.show_sql" value="true"/>
            <property key="hibernate.hbm2ddl.import_files">import.sql</property>
        </properties>
        <mapping-file>META-INF/orm.xml</mapping-file>
    </persistence-unit>
</persistence>
# database properties
app.jdbc.driverClassName    =   com.mysql.jdbc.Driver
app.jdbc.url                =   jdbc:mysql://localhost:3306/alt
app.jdbc.username           =   root
app.jdbc.password           =   root