ここにその状況があります。以前のウェブサイトからの古いニュースを、新しいLiferay 6.1サイトのアセット・パブリッシャー・ポートレットに追加したいと考えています。問題は、私が過去に追加したかのように見せたいということです。Liferay API(Liferayジャーナル記事(Webコンテンツ))のcreateDateの変更
だから、createDate
を変更するのはどれほど難しいのですか?以来、私はMySQLデータベースに直接アクセスし、記事オブジェクトのcreateDate
フィールドの更新を実行することができました。ただし、キャッシュのクリア、検索インデックスの再インデックス付け、およびLiferayの再起動に関係なく、Liferayの展開には反映されていないようです。データベースはそれを私がそれを変更した値として示すにもかかわらず、Webコンテンツはまだそれを '元の' createDate
に維持します。
ここで私が使用したクエリです:
mysql> UPDATE JournalArticle SET createDate='2012-03-08 15:17:12' WHERE ArticleID = 16332;
私は以来、直接データベースを操作するには、no-noでないことを学んできた、データベースのダイナミクスとして/ Liferayはのようにまっすぐ進むのLiferayの実行などではありませんルックアップ。だから、hereのように、Liferay API、つまりsetCreateDate
を使用する必要があるようです。
しかし、私はどこでどのようにAPIを活用するかについて全く考えていません。このAPI呼び出しを使用する唯一の目的でダミーのポートレットを作成する必要がありますか?または、私のLiferayデプロイメントを実行しているサーバ上のどこかに.javaファイルを作成し、このメソッドを利用するために実行することができますか?
私はこれを行うために必要な15の記事しかありません。私はArticleIDとGroupIDを参照することでそれらを見つけることができます。
ご協力いただければ幸いです。私はgrep
をLiferayのデプロイメントに利用し、setCreateDate
がknowledge-base-portlet内の.javaファイル内で頻繁に使用されていることを発見しましたが、ポートレットを作成せずに直接使用する方法はわかりません。
一方、私のデータベースを伝播させる方法を誰かが知っていれば、それがLiferayの展開に変更されていることがわかります。汚いハックだとわかっていても、おそらく最も簡単でしょう。
ありがとうございます。ほんとうにありがとう。
これで解決しました。ニース!私は、AssetEntryテーブルにも関連するフィールドが含まれていることを認識していませんでした。私が両方の点でそれを変更した場合、それは動作します! – HodorTheCoder