有没有办法在 Spring Roo 中的类旁边创建数据库表?

Posted

技术标签:

【中文标题】有没有办法在 Spring Roo 中的类旁边创建数据库表?【英文标题】:Is there a way to create database tables alongside classes in Spring Roo? 【发布时间】:2011-08-02 04:33:59 【问题描述】:

我已经设置了实体及其与 Spring Roo 的关系。我正在尝试通过 Roo 运行“执行测试”,但发现这些实体的相应表并未在我选择作为数据库设置的一部分的数据库中创建。

有没有办法告诉 Spring Roo 在实体及其字段旁边生成数据库表、列?

【问题讨论】:

这很奇怪,因为默认的 roo 设置应该在应用程序运行时创建表。如果您遗漏了一些例外情况,请检查您的日志。 @Constantiner:这对于 Hypersonic 等内存数据库可能是正确的。 mysql 也是如此吗? 因为内存数据库表在每次运行时创建并在运行后销毁。如果您将使用 MySQL 表将在会话之间持久化。 【参考方案1】:

您可能需要自己创建数据库,然后 Hibernate 将为您创建表。我遇到了同样的问题,我的 db 用户是 root,所以我只是假设 Hibernate 会创建数据库 - 但事实并非如此。创建架构后,一切正常。

这些表似乎是根据this answer 在 sessionFactory 创建期间创建的。

【讨论】:

感谢工作!我必须创建数据库,当我触发执行测试时,它自己创建了表。【参考方案2】:

您是否完成了“持久性设置..”步骤?如果是这样,您应该在 src/main/resources/META-INF 中有一个 persistence.xml。你有一个名为“hibernate.hbm2ddl.auto”的属性吗?它的价值是什么?

【讨论】:

谢谢。我会尝试并把结果发回这里。 谢谢 - 这是真的。 +1 给我一些指导。【参考方案3】:

您可以找到使用测试数据here 填充内存DB 的示例。希望这会有所帮助。

【讨论】:

谢谢 - 我不是在寻找内存解决方案。我宁愿寻找如何使用 MYSql 来实现它? 点击上面的链接即可。填充测试数据例程检查数据是否已存在于数据库中。所以它也可以用于 MySQL。 我不认为你明白这个问题。我不是在问填充数据。我问的是当 Roo 创建实体时创建模式(表和列)。这可能吗? 它们是自动创建的。默认情况下。 什么时候?在创建实体时还是在首次运行期间? 'co 我没有看到它们,当我进行测试时 - 它抱怨没有它们。

以上是关于有没有办法在 Spring Roo 中的类旁边创建数据库表?的主要内容,如果未能解决你的问题,请参考以下文章

使用Spring Data防止MongoDB中的重复(Spring Roo)

IDEA中添加spring-boot-configuration-processor依赖但yml文件对自己创建的类没有提示的解决办法

Roo_Service_Impl.aj 中的 Spring Roo 错误

Spring Tools Suite 4 和 Spring roo

有没有办法创建从Android中的Canvas扩展的类?

有没有办法让 Roo 接受 StringIO 对象代替文件?