我为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:
build.number中service.properties必须比这还高,存储servicecomponent,tables.sql必须从存储在一个不同的servicecomponent.只有这样才能tables.sql执行.
实现这一目标的一种简单方法是删除servicecomponent寻址portlet的所有条目.