5

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

4

4 回答 4

3

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

这种方法的一些问题是:

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

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

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

于 2013-09-30T08:33:19.757 回答
1

您可以通过以下链接了解 liferay 中的 Service Builder

https://www.liferay.com/documentation/liferay-portal/6.0/development/-/ai/service-build-2

下面的链接也有示例服务构建器 portlet

https://www.liferay.com/community/forums/-/message_boards/message/17609606

希望能帮助到你 !

于 2013-09-27T10:33:22.533 回答
1

还没有完成AFAIK。由于Liferay 不直接支持DB 的所有数据属性,如外键、一对n 映射等,创建逆向工程是一个挑战。但是你可以试一试。

于 2013-09-27T10:36:55.617 回答
1

Service Builder 通常是一个很好的特性,可以创建相对较小的数据库和简单的业务逻辑,同时还为您提供了在部署 portlet 时自动生成表的优势,并且可以毫不费力地使用查找器(按 X 属性搜索)。如果您的数据库是这种情况,那么从头开始创建新的 service.xml 会容易得多。

除此之外,我认为在 Liferay 的服务构建器中拥有一个扩展的数据库会在您实现复杂的业务逻辑时引入更多的问题并减缓开发速度,每当您需要查询表的连接时创建自定义查找器等等。因此,在我看来,无法将数据库转换为 Service Builder 似乎很正常。

换句话说,如果您的数据库太大而无法将其写入 service.xml,那么您首先不应该使用 Service Builder

于 2013-10-01T14:09:00.160 回答