Grails の学習を開始するためのチュートリアルに取り組んでいるときに、間違えて次のように実行しました。
grails create-domain-class com.FooBar
それ以外の:
grails create-domain-class com.acme.FooBar
エラーが発生したことがすぐに明らかになったので、次のことを試しました。
- create-domain-class コマンドを逆にする関数を検索しましたが、ないようです。
- Web でアドバイスを検索したところ、コンセンサスは、ドメイン クラス ファイル、関連するビューとテストを削除してから、プロジェクト ディレクトリでクラス名のテキスト検索を安全に実行して、見逃した可能性のある参照がないかどうかを確認することです。私はこれをすべてやりました。
- 次に、正しいコマンドを実行して com.acme.FooBar を作成しましたが、うまくいきました。
この後、アプリは実行に失敗し、次のエラーが報告されます。
org.hibernate.DuplicateMappingException: duplicate import: FooBar refers to both com.acme.FooBar and com.FooBar (try using auto-import="false")
次のコードを com.acme.FooBar に追加した後:
...
static mapping = {
autoImport false
}
...
アプリが期待どおりに実行されるようになりました。
ただし、時々パッケージをリファクタリングする経験豊富な Java 開発者として、DuplicateMappingException を発生させたり、「autoImport false」ソリューションに頼ったりせずにそれを行う方法を理解したいと思います。
ありがとう。