将WAR文件部署到Liferay时未创建SQL表

6 sql portlet liferay

我为Liferay创建了一个JSR-268 portlet,它使用服务与数据库进行交互.我可以没有问题或错误部署portlet,但是没有创建服务定义的表!

我测试portlet时没有收到"table not found"错误.我完全没有错误!该表不在数据库中.我在网上发现其他东西说我应该使用Liferay Service Builder创建的生成的"create.sql"文件,但我没有在任何地方看到该文件.

有人可以帮我吗?

Rid*_*lly 11

表格从未创建过吗?我手动删除表时遇到了类似的问题.我认为在再次部署portlet时会再次创建它们,但它没有发生.

在研究了源代码之后,我发现Liferay在表中存储了有关portlet的信息,servicecomponent并在执行(伪)SQL之前检查了两件事META-INF/tables.sql:

  1. build.numberservice.properties必须比这还高,存储servicecomponent,
  2. tables.sql必须从存储在一个不同的servicecomponent.

只有这样才能tables.sql执行.

实现这一目标的一种简单方法是删除servicecomponent寻址portlet的所有条目.

  • 您还必须从表 RELEASE_ 中删除它,然后重新部署它。 (3认同)