Liferay通过service.xml生成数据库的表在哪里?我在Postgres中看不到它。有太多表,我试图找到它,但是没有找到。任何人都可以帮助我,谢谢
最佳答案
除非您在service.xml中声明的实体中明确指定表名,否则将使用名称空间和实体名来构造表名。
<service-builder package-path="com.liferay.docs.guestbook">
<namespace>GB</namespace>
<entity name="Guestbook" local-service="true" uuid="true">
...
将生成
GB_Guestbook
作为表名。从very well documented DTD:
<namespace>
名称空间元素必须是此组件的唯一名称空间。
表名将以该命名空间开头。生成的JSON
JavaScript也将限于此命名空间(即,
Liferay.Service.Test。*(如果名称空间为Test)。
<entity>
服务构建者的孩子实体通常代表业务门面和表中的表
数据库。如果实体没有任何列,则仅
代表业务门面。服务生成器将始终生成
空的业务外观POJO(如果不存在)。随后
几代人,服务构建器将检查是否业务
门面已经存在。如果存在并且具有其他方法,则
Service Builder也将更新SOAP包装器。
如果实体确实具有列,则为值对象POJO类
映射到数据库,其他持久性实用程序是
也基于order和finder元素生成。
...
(您会在该文档中找到更多提示,例如明确的表名)
笔记:
如果声明实体存储在外部(非Liferay)数据源中,则不会创建任何表。
此外,Liferay的某些版本会在部署新插件版本时自动更新数据库结构(具有更新的持久层),而其他一些版本则不会自动执行此操作(无论如何这是开发人员功能,不利于大量生产-大量数据的存储) )