これが状況です。以前のWebサイトからの「古い」ニュースを新しいLiferay6.1サイトのアセットパブリッシャーポートレットに追加したいと思います。問題は、過去に追加したかのように表示してほしいということです。
だから、私は理解します、それを変更するのはどれほど難しいcreateDate
でしょうか?createDate
それ以来、MySQLデータベースに直接アクセスして、記事オブジェクトのフィールドを更新することができました。ただし、キャッシュのクリア、検索インデックスのインデックスの再作成、Liferayの再起動に関係なく、Liferayデプロイメントに伝播されないようです。createDate
データベースに変更した値として表示されていても、Webコンテンツは「元の」状態を維持します。
これが私が使用したクエリです:
mysql> UPDATE JournalArticle SET createDate='2012-03-08 15:17:12' WHERE ArticleID = 16332;
それ以来、データベース/ Liferayのダイナミクスは、Liferayがルックアップを実行するほど単純ではないため、データベースを直接操作することはノーノーであることを学びました。つまり、ここsetCreateDate
に示すように、LiferayAPIを使用する必要があるようです。
しかし、APIをどこでどのように活用するかはまったくわかりません。このAPI呼び出しを使用することのみを目的として、ダミーのポートレットを作成する必要がありますか?または、Liferayデプロイメントを実行しているサーバーのどこかに.javaファイルを作成し、それを実行してこのメソッドを活用できますか?
これを行うために必要な記事は15件しかありません。ArticleIDとGroupIDを参照することでそれらを見つけることができます。
どんな助けでも大歓迎です。私はgrep
LiferayデプロイメントをsetCreateDate
調べて、ナレッジベースポートレット内の.javaファイル内で頻繁に使用されていることを発見しましたが、ポートレットを作成せずにそれらを直接使用する方法を他に知ることはできません。
一方、データベースを伝播させる方法を誰かが知っている場合は、それがダーティハックであることを知っていても、Liferayデプロイメントへの変更はおそらく最も簡単です。
ありがとう; ほんとうにありがとう。