Liferay Portlet:如何从现有数据库生成service.xml(服务构建器)

Nav*_*ngh 5 liferay liferay-6

我是liferay的新手,任何人都可以建议一些方法来为Liferay网站上的现有数据库讨论生成service.xml .我希望人们可能已经开发了一些方法或者liferay为此开发了一些插件.

Ola*_*ock 3

我认为将 servicebuilder 引入大型现有数据库没有特别的用处:您可以将 servicebuilder 实体连接到“旧数据源”或“旧表”(这些是很好的搜索词),但据我所知,service.xml 生成尚未完成。

这种方法的一些问题是:

  • servicebuilder 对数据库中的操作有某些假设。这样做是为了封装 Liferay 运行的所有不同数据库,因此可能不会最大程度地使用每个数据库
  • 如果您有一个大型的现有数据库,您可能有很多现有的业务逻辑来确保正确的数据进出数据库。您甚至可以使用存储过程等。
  • 虽然您可以让 servicebuilder 使用存储过程,但您必须引入自定义 sql 来解决 servicebuilder 的假设。对于显式外键关系等也是如此。

我的建议是在现有业务逻辑上有一个适当的接口,例如 Webservice、JSON、Rest,无论流行什么。然后在 Liferay 的 portlet 中使用这个接口。

另一种选择可能是将现有的持久性代码引入 Liferay 并仅公开服务,而不使用 Servicebuilder 的持久性功能。为此,您只需定义空<entity>块(带有名称等)。这将生成适当的DoSomethingLocalService,但省略持久性实现 - 并且您可以在这些服务中连接现有代码。