我是liferay的新手,任何人都可以建议一些方法来为现有数据库Discussion on Liferay Website生成service.xml。我希望人们可能已经开发了一些方法或者liferay为此开发了一些插件。
答案 0 :(得分:3)
我认为将servicebuilder引入大型现有数据库并没有特别的用途:您可以将servicebuilder实体连接到“遗留数据源”或“遗留表”(那些构成良好的搜索术语)但是service.xml生成尚未完成AFAIK。
这种方法的一些问题是:
我的建议是在现有的业务逻辑上建立适当的接口,例如: Webservice,JSON,休息,什么是流行的。然后在Liferay的portlet中使用此接口。
另一种选择可能是将现有的持久性代码引入Liferay,只是在不使用Servicebuilder的持久性功能的情况下公开服务。为此,您只需定义空<entity>
块(带名称等)。这将生成相应的DoSomethingLocalService
,但省略持久性实现 - 您可以在这些服务中连接现有代码。
答案 1 :(得分:1)
您可以通过以下链接了解liferay中的服务构建器
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
希望它有帮助!
答案 2 :(得分:1)
尚未完成AFAIK。由于Liferay不直接支持DB的所有数据属性,如外键,一对一映射等,因此创建一个崇敬的工程是一个挑战。但你可以尝试一下。
答案 3 :(得分:1)
Service Builder通常是一个很好的功能,可以创建相对较小的数据库和简单的业务逻辑,同时为您提供以下优势:在部署portlet时自动生成表,并具有查找器(通过X属性搜索)不费吹灰之力。如果您的数据库就是这种情况,那么从头开始创建新的service.xml将会容易得多。
除此之外,我认为在Liferay的Service Builder中使用扩展数据库会在实现复杂业务逻辑时引入更多问题并减缓开发,每当需要查询表连接时创建自定义Finder等等上。因此,对我来说,将数据库转换为Service Builder似乎很正常。
换句话说,如果您的数据库太大而无法在service.xml中编写它,那么您不应该首先使用Service Builder