liferay生成的数据库的名称是什么?

时间:2019-02-25 04:57:35

标签: java postgresql liferay

Liferay通过service.xml生成数据库的表在哪里?我在Postgres中看不到它。有太多的表,我试图找到它,但是没有找到。任何人都可以帮助我,谢谢

1 个答案:

答案 0 :(得分:1)

除非您在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的某些版本会在部署新插件版本时自动更新数据库结构(具有更新的持久层),而其他一些版本则不会自动执行此操作(无论如何这是开发人员功能,不利于大型生产-数据量)