【问题标题】:Liferay Portlet: How to generate service.xml (service builder) from existing databaseLiferay Portlet:如何从现有数据库生成 service.xml(服务构建器)
【发布时间】:2013-10-01 22:09:00
【问题描述】:

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

【问题讨论】:

  • 您的用例是您想编写自己的portlet,这些portlet 使用保存您的业务数据的现有数据库——对吗?您是否需要 Service Builder 提供的功能(自动生成的 Web 服务、将您的表放入 Liferay 数据库等),或者您是否只需要访问您的数据库以使您的 portlet 工作?如果是后者,则不需要特别使用ServiceBuilder。

标签: liferay liferay-6


【解决方案1】:

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

这种方法的一些问题是:

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

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

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

【讨论】:

    【解决方案2】:

    您可以通过以下链接了解 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

    希望对你有帮助!

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 他们怎么能忽略这一点,即使他们推动 J2EE 应用程序迁移到 liferay portlet。
      • 他们不提倡 J2EE 应用程序迁移到 Liferay。 Portal 和 Enterprise Application 的实际概念是不同的。与企业门户相比,Liferay 在某些方面仍然落后,但它们正在升级并非常快速地响应您的查询。大约 8 个月前我参加培训时,这可能已经在他们的管道中,但没有收到他们团队的任何消息。
      【解决方案4】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2017-07-13
        • 1970-01-01
        • 1970-01-01
        • 2015-12-30
        • 1970-01-01
        • 2018-12-22
        • 1970-01-01
        • 2023-02-16
        • 2016-06-04
        相关资源
        最近更新 更多