「Seasar」の編集履歴(バックアップ)一覧に戻る

Seasar - (2007/12/04 (火) 00:48:45) のソース

何もないのは悲しいのでリンクを
-[[The Seasar Project>http://www.seasar.org/index.html]]

#contents()

*S2Dao
**readXlsAllReplaceDb()と外部キー制約
readXlsAllReplaceDb()は、シートの逆順でテーブルの内容を削除し、シート順でデータを挿入する。
Aテーブルの外部キーがBテーブルの列を指しているとする。Excelのシート順は、B,Aの並びにしないと外部キー制約となる。
&br;&br;

**setUp()・setUpXxx()で、readXlsAllReplaceDb()を呼び出すとエラーを吐く
setUp()・setUpXxx()で、readXlsAllReplaceDb()を呼び出そうとすると、DataSourceがないとエラーが出る。S2FrameworkTestCaseクラス内で、次のような呼び出しになっているため。setUpAfterContainerInit()が呼ばれて、DataSourceが設定される。&br;
それ以前に呼びたいときは、DataSourceを設定するメソッドを自分で呼び出さないといけない。
#highlight(java){{
    // S2FrameworkTestCaseクラス
    /**
     * @see junit.framework.TestCase#runBare()
     */
    public void runBare() throws Throwable {
        setUpContainer();
        try {
            setUp();
            try {
                setUpForEachTestMethod();
                try {
                    container.init();
                    try {
                        setUpAfterContainerInit();
                        try {
                            bindFields();
                            try {
                                setUpAfterBindFields();
                                try {
                                    doRunTest();
                                } finally {
                                    tearDownBeforeUnbindFields();
                                }
                            } finally {
                                unbindFields();
                            }
                        } finally {
                            tearDownBeforeContainerDestroy();
                        }
                    } finally {
                        container.destroy();
                    }
                } finally {
                    tearDownForEachTestMethod();
                }
            } finally {
                tearDown();
            }
        } finally {
            tearDownContainer();
        }
    }
}}

#highlight(java){{
    // S2TestCaseクラス
    protected void setUpAfterContainerInit() throws Throwable {
        super.setUpAfterContainerInit();
        setupDataSource();
    }
}}
&br;
目安箱バナー