ドメインクラスを切り替えて、そのIDに可変長のUUIDを使用したいとします。私は単純にURLに逐次IDを表示して、人々が試して混乱させるようにしたくありません。可変長を可能にするJava UUIDメソッドのカスタムバージョンを作成しましたので、大きく成長しないモデルでは短いIDを使用できます。カスタムID生成をGrailsでデフォルトとして定義する最良の方法は何ですか?
「割り当て済み」に変更できるように、デフォルトのマッピングを変更する方法を説明したこのスレッドが見つかりました。 Modify Id generation for a Grails Plugin
デフォルトのbeforeInsertを(カスタムUUIDを生成するために)設定し、Grailsに整数の代わりに文字列を使いたい場合は、どうすればいいですか?
私はgrails.gorm.default.beforeInsertを設定に追加しようとしましたが、動作しませんでした。
ataylorさんの答えは以下の通りですが、私は通常、生成されたIDをデータベースに残しておき、ある種の相関IDを必要とするオブジェクトに別の文字列/ GUIDフィールドを追加しました。エンドユーザーに公開される。 このようにして、grails/hibernateとデータベースがチューニングされている(そしてSQLを書くのが簡単です)通常の結合/外部キーの動作が得られますが、その外部IDが必要なときにもそうです。 –
それは私が前にやったことですが、idによってそれを行うので、あなたはデフォルトのキャッシュを失うことを読んでいます。そして、私はdb(または私たちは代替キーを持っている)に対して何かをしないようにしようとするので、私はこれを撃つつもりです。 – ahanson