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

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

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

有人可以帮我吗?

解决方法

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

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

> service.properties中的build.number必须高于存储在servicecomponent中的build.number,
> tables.sql必须与servicecomponent中存储的不同.

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

实现这一目标的一种简单方法删除处理portlet的servicecomponent中的所有条目.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...