【发布时间】:2015-05-11 09:54:09
【问题描述】:
我是 Liferay 的新手。现在我需要在以下场景中创建具有 Liferay 表工作流程的流程图,
1) 如果我们创建站点管理员,将反映/更新哪些表列表?
2) 如果我们创建站点,将反映/更新哪些表列表?
我尝试打开数据库表并注意到 USER_、CONTACT_ 会反映,但我需要在我们创建站点和站点管理员时反映的所有相关表的列表?我正在使用 Liferay 6.2 版本。
提前致谢。
【问题讨论】:
我是 Liferay 的新手。现在我需要在以下场景中创建具有 Liferay 表工作流程的流程图,
1) 如果我们创建站点管理员,将反映/更新哪些表列表?
2) 如果我们创建站点,将反映/更新哪些表列表?
我尝试打开数据库表并注意到 USER_、CONTACT_ 会反映,但我需要在我们创建站点和站点管理员时反映的所有相关表的列表?我正在使用 Liferay 6.2 版本。
提前致谢。
【问题讨论】:
当您想了解任何系统的内部结构时,最好查看相关的源代码。因此,在这种情况下,您可以检查那些用于用户和站点上的 CRUD 操作的类的源代码。
1) 如果我们创建站点管理员,将反映/更新哪些表列表?
Power user角色)UserLocalServiceImpl、RoleLocalServiceImpl和GroupLocalServiceImpl的源代码,查看前缀为add、update等的相关方法。service.xml 将显示正在使用的数据库表。2) 如果我们创建站点,将反映/更新哪些表列表?
Group_ 表正在发挥重要作用。Layout。我强烈建议继续探索类的源代码,您就会了解流程 - 何时以及哪些表受到影响。
这里有一些约定可以帮助您遍历源代码,几乎每个*LocalServiceImpl 都与*Model 相关联,例如UserLocalServiceImpl 和UserModel,几乎每个*Model 都有一个对应的数据库表,其中一样的名字。
此外,在大多数情况下,功能名称会暗示正在使用哪些服务类连接到数据库,例如添加User 会暗示使用UserLocalServiceImpl。
希望我已经理解了您的问题,并能够给出一些正确的方向。
【讨论】:
如果您想知道这一点,因为您还想写入这些表:不要去那里!您应该纯粹使用 API 来更改 Liferay 存储的数据。否则,您将在未来某个时间遇到灾难 - 承诺。
为了获取 Liferay 实际使用的 SQL 命令,配置 portal-ext.properties 并更改此默认值:
hibernate.show_sql=false
然后转到“Server Administration/Log Levels”并添加一个新类别“org.hibernate.SQL”,将其配置为级别DEBUG。然后结果显示在日志中。请注意,此日志配置是暂时的,将在下次服务器启动时恢复。如果您希望设置持久化,您需要进入 Liferay 的 log4j 配置文件。
记住:你不想要写入到表中永远。承诺!
【讨论】: