Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
从Hibernate迁移到EclipeLink后,会出现许多SQL异常_Hibernate_Jpa_Eclipselink - Fatal编程技术网

从Hibernate迁移到EclipeLink后,会出现许多SQL异常

从Hibernate迁移到EclipeLink后,会出现许多SQL异常,hibernate,jpa,eclipselink,Hibernate,Jpa,Eclipselink,从Hibernate迁移JPA项目后,我遇到了许多这样的异常: Aug 31, 2015 4:00:52 PM org.eclipse.persistence.session.file:/var/folders/ls/0vdttqm92zq1rtcsjntc4mxw0000gn/T/gfembed8285464623855636118tmp/applications/salonea-1.0/WEB-INF/classes/_LocalServicesMySQL_JTA WARNING:

从Hibernate迁移JPA项目后,我遇到了许多这样的异常:

    Aug 31, 2015 4:00:52 PM org.eclipse.persistence.session.file:/var/folders/ls/0vdttqm92zq1rtcsjntc4mxw0000gn/T/gfembed8285464623855636118tmp/applications/salonea-1.0/WEB-INF/classes/_LocalServicesMySQL_JTA
WARNING: 
Local Exception Stack: 
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') REFERENCES  ()' at line 1
Error Code: 1064
Call: ALTER TABLE provider ADD CONSTRAINT fk_provider_corporation FOREIGN KEY () REFERENCES  ()
Query: DataModifyQuery(sql="ALTER TABLE provider ADD CONSTRAINT fk_provider_corporation FOREIGN KEY () REFERENCES  ()")
    at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:331)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:900)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:962)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:631)
    at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:558)
    at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2002)
    at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:570)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeNoSelectCall(DatasourceCallQueryMechanism.java:271)
    at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeNoSelect(DatasourceCallQueryMechanism.java:251)
    at org.eclipse.persistence.queries.DataModifyQuery.executeDatabaseQuery(DataModifyQuery.java:85)
    at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:899)
    at org.eclipse.persistence.internal.sessions.AbstractSession.internalExecuteQuery(AbstractSession.java:3214)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1804)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1786)
    at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1737)
    at org.eclipse.persistence.internal.sessions.AbstractSession.priviledgedExecuteNonSelectingCall(AbstractSession.java:5008)
    at org.eclipse.persistence.tools.schemaframework.TableDefinition.createForeignConstraintsOnDatabase(TableDefinition.java:891)
    at org.eclipse.persistence.tools.schemaframework.SchemaManager.createForeignConstraints(SchemaManager.java:194)
它们似乎与为@OneToMany、@ManyToMany等关联创建的外键约束有关。 还有一些JUnit测试现在无法通过,这些测试与批量删除(DELETE-FROM)如此多的实体相关。在hibernate中,这个测试通过得很好,在EclipseLink中有一些错误

我不知道以下错误外键约束是否会影响这种情况? 如果EclipseLink有完全不同的实现,并且很难从Hibernate移植应用程序(在Hibernate中工作的代码在EclipseLink中无法工作)

现在我看到在Hibernate中也有类似的错误:

HHH000389: Unsuccessful: alter table natural_person drop foreign key FK_xebs35hpmkrexufr4i267ak1
Table "NATURAL_PERSON" not found; SQL statement:
    alter table natural_person 
        drop 
        foreign key FK_xebs35hpmkrexufr4i267ak1 [42102-173]
</event></ijLog>
ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] HHH000389: Unsuccessful: alter table natural_person drop foreign key FK_xebs35hpmkrexufr4i267ak1
ERROR [org.hibernate.tool.hbm2ddl.SchemaExport] Table "NATURAL_PERSON" not found; SQL statement:
    alter table natural_person 
        drop 
        foreign key FK_xebs35hpmkrexufr4i267ak1 [42102-173]
HHH000389: Unsuccessful: alter table photo_tagged_with drop foreign key FK_gcjvuf4mauiptth529s2e4gjw
HHH000389: Unsuccessful: alter table provider drop foreign key fk_provider_corporation
Table 'salonea.provider' doesn't exist
Table "PHOTO_TAGGED_WITH" not found; SQL statement:
    alter table photo_tagged_with 
        drop 
        foreign key FK_gcjvuf4mauiptth529s2e4gjw [42102-173]
hh000389:不成功:更改表自然人删除外键FK\u xebs35hpmkrexufr4i267ak1
未找到表“自然人”;SQL语句:
变表自然人
滴
外键FK_xebs35hpmkrexufr4i267ak1[42102-173]
错误[org.hibernate.tool.hbm2ddl.SchemaExport]hh000389:不成功:更改表自然人删除外键FK_xebs35hpmkrexufr4i267ak1
错误[org.hibernate.tool.hbm2ddl.SchemaExport]未找到表“自然人”;SQL语句:
变表自然人
滴
外键FK_xebs35hpmkrexufr4i267ak1[42102-173]
HH000389:不成功:使用drop外键FK\U gcjvuf4mauiptth529s2e4gjw更改表格照片
HH000389:不成功:更改表提供程序删除外键fk_提供程序_corporation
表“salonea.provider”不存在
未找到表“带标签的照片”;SQL语句:
更改表格照片\u标记为\u
滴
外键FK_gcjvuf4mauipth529s2e4gjw[42102-173]

这是DDL生成,而不是JPA运行时-应将异常记录为警告并继续。检查表的创建是否与完成时预期的一样。如果您确实希望调试该约束发生的情况,则需要显示提供者表映射到的实体您为什么要迁移到eclipselink?eclipselink是否具有hibernate中缺少的一些功能?我需要玻璃鱼,我更喜欢wildlfy/hibernate,但必须在9月底之前完成前端工作,我想尝试Ozark MVC 1.0实现(因为我想使用这种方法而不是jsf)目前我需要一些字体结尾不复杂的示例,所以早期的草稿不应该是一个大问题,所以您引用了SQL异常,例如EclipseLink和Hibernate,但没有提供它们相关的代码,因此没有上下文来说明这个问题,所以没有人能够给出任何有根据的意见来解释为什么您会得到这些。