質問

記事の改訂システムを実装する必要があります 聖杯 ウェブアプリ。grails フォーラム、stackoverflow、grails プラグインを検索し、インターネットでグーグル検索した結果、3 つのオプションが見つかりました。

オプション1 - の使用 grails Envers プラグイン (見る http://code.google.com/p/grails-envers-plugin/)。誰かがそれをうまく使ったことがありますか?または使用して アンヴェール プラグインなし (参照) ここ) しかし、GORM で動作させるにはどうすればよいでしょうか?

オプション 2 - の使用 Gvers プラグイン ここで分かりました: https://github.com/ziftytodd/gvers. 。使っている人を聞いたことがないので、うまく使ったことのある人はいますか?

オプション 3 - 内蔵機構. ウィーシーム は、Weceem CMS のあらゆるコンテンツのバージョン管理システムを作成しました。この素晴らしいアプリケーションのコードとデザインのロジックからインスピレーションを得ることができますが、それはやりすぎのように思えて、非標準のソリューションを使用するのはあまり好きではありません。

それで私の質問ですが、あなたは私に何をすべきだとアドバイスしますか?これらのオプションのいずれかを使用したことがありますか?

貴重なご意見をありがとうございました。

役に立ちましたか?

解決

私の質問から数日間回答が得られなかったため、すべての選択肢の調査を開始し、次の結果/結論に達しました。

  1. Envers プラグイン :Envers は Hibernate でオブジェクトのリビジョンと監査を処理する確立された方法ですが (Vadeg が指摘したように)、Grail にはそのようなすぐに使えるソリューションはありません。Envers プラグインはまったく役に立たず、決して誕生しないプロジェクトです。したがって、GORM で Envers を使用することはまだ直接は不可能ですが、Envers は Hibernate コア モジュールの不可欠な部分になっているため、Envers プラグイン (おそらく grail 2.0 の一部?) のためのスペースがあると思います。しかし、そのようなソリューション (時間とリソースが十分にある場合には、これが断然最善のソリューションです) を実装する時間がなかったので、このソリューションは削除しました。

  2. Gvers プラグイン :驚くべきことに、このプラグインは、GRAILS の世界では誰も使っていないようにも関わらず (無効な電子メールを持っているプラ​​グイン作成者でさえも!) 魅力的に機能しています。これを使用するのは危険に思えますが、要件が低い場合 (基本的なバージョン管理システムなど)、使用する必要があります。

  3. 内蔵システム :非常に特殊なニーズを持つ CMS システムを構築している場合、またはその逆に非常に単純なものを構築している場合を除き、それ以外の場合には私はそれを選びません。Weceem は非常によく実装されており、CMS コンテンツのリビジョン用のサンプルが豊富にありますが、この場合でも代わりに Envers を使用していないのは残念です。車輪を再発明する必要はありません...既存のフェラーリを改良した方が良いですよね?

  4. VCSシステム :ある友人は、この種のタスク用に特別に構築された既存のソリューションを使用することを私に提案しました。 バージョン管理システム もちろん!!実は ギット 完璧な候補者だと思われます:高速で信頼性が高く、ほぼ無料のリポジトリを自由に利用できます。実際、これは完璧な解決策です。私の唯一の問題:そうですね、私は Git (ましてやその API) の使い方がわかりませんし、やはり時間がありません。

結論

必ず使います ジーヴァーズ しかし、あなたが知っているなら ギット または、快適に感じられる場合は、 ゴーム そして 休止状態, 、聖杯プラグインの構築に進みます(いずれかに基づいて) ギット または アンヴェール)

他のヒント

Hibernateを使用してプロジェクトのEnversを使用しましたが、正常に機能しています。 Gormは冬眠に基づいているので、問題はないと思います。

まず第一に、必要なバージョンの種類を決定する必要がありますか?オブジェクトグラフの変更をロールバックする必要がありますか、それともいくつかのフィールドの世話をする必要がありますか?巨大なライブラリを注入するよりも、小さなローカルの実装を行う方が良い場合があります。

オブジェクトのグラフを改訂する必要がある場合、エンバスは良い選択です。 1つのフィールドを改訂する必要がある場合、DIY :)

ルーカスワードのプラグイン 作品。 Grails 1.3.7で確認された重要なことは、エンティティの更新がトランザクション内にあることを確認することです。 Grails Controllersがデフォルトでトランザクションではないことを思い出させるだけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top