所以这里的情况。我想将来自我们之前网站的“旧”新闻添加到我们新 Liferay 6.1 网站上的资产发布者 portlet 中。问题是我希望它们显示出来,就好像我过去添加了它们一样。
所以,我想,修改它有多难createDate
?我已经能够直接访问 MySQL 数据库并在文章对象的createDate
字段上执行更新。但是,无论清除缓存、重新索引搜索索引和重新启动 Liferay,它似乎都不会传播到我的 Liferay 部署中。createDate
尽管数据库将其显示为我已将其更改为的值,但Web 内容仍保持其“原始” 。
这是我使用的查询:
mysql> UPDATE JournalArticle SET createDate='2012-03-08 15:17:12' WHERE ArticleID = 16332;
从那以后,我了解到直接操作数据库是一个禁忌,因为数据库/Liferay 的动态并不像 Liferay 执行查找那样直接。所以看起来我可能需要使用 Liferay API,即,setCreateDate
如此处所示。
但我完全不知道在哪里以及如何利用 API。我是否需要创建一个仅用于使用此 API 调用的虚拟 portlet?或者我可以在运行我的 Liferay 部署的服务器上的某处创建一个 .java 文件并运行它以利用此方法吗?
我只有 15 篇文章需要这样做。我可以通过引用 ArticleID 和 GroupID 找到它们。
任何帮助将不胜感激。我已经grep
对 Liferay 部署进行了测试,发现setCreateDate
它在知识库 portlet 内的 .java 文件中被大量使用,但我不知道如何在不创建 portlet 的情况下直接使用它们。
另一方面,如果有人知道如何让我的数据库传播它对 Liferay 部署的更改,即使我知道这是一个肮脏的 hack,那可能是最简单的。
谢谢; 对此,我真的非常感激。