【发布时间】:2012-05-31 00:16:18
【问题描述】:
我在 Eclipse 中有一个工作项目,它创建了一个从实体到 mysql 数据库的 JPA 表(仍在学习中)。不幸的是,它在错误的数据库中创建了表,因为我希望有“测试”和“生产”数据库。不知何故,它获得了“生产”数据库的详细信息,即使看起来所选的数据库连接是用于测试的。 我稍微篡改了项目并使其与正确的连接对象连接以进行某些(测试)。我可以在 Eclipse 中 ping 数据库(两个数据库)并在数据源资源管理器中查看数据库。 但现在我无法通过右键单击项目并选择“JPA 工具”>“从实体生成表”来为项目创建表。 创建开始和结束时都没有错误,就像一切正常一样,但我在两个数据库中都看不到表。 (在 Eclipse 数据库资源管理器中或从命令行)。 persistence.xml 应该没问题,因为它之前已经创建了一个表。
唯一的错误是实体类,因为实体注释“无法解析表 xxx”。正如我所看到的,它来自未创建的表。
这里是 persistence.xml 以防万一。 http://pastebin.com/djPZei90
该项目也是一个 Maven 项目,它使用 SVN。 maven 为 eclipse/project 成功加载了依赖项,并且 SVN 没有任何复杂性。
由于 Maven,有 2 个 persistence.xml 文件(仅登录凭据和数据库名称更改),用于生产和测试。可能是在第一个位置检查并从错误的文件加载了 db-connection。 (只是猜测)
我还尝试在生成表时创建 script.sql。我找到了文件,但它完全是空的。
无论如何,现在的问题是我无法在任何地方创建表。 我对此完全感到困惑。有什么提示我应该在哪里解决这个问题?
【问题讨论】:
-
纯文本太多。没读过。
-
可能不相关,但persistence.xml 显示eclipseLink 提供程序DDL 生成属性,但指定Hibernate 作为jpa 提供程序。如果您打算使用运行时 DDL 生成,您需要将提供程序切换到 org.eclipse.persistence.jpa.PersistenceProvider 或指定 Hibernate 设置。只是一个评论,因为我不知道大理实际上使用它来创建表
-
两个提供商都试过了。没有变化。
标签: mysql eclipse jpa eclipselink