วันพฤหัสบดีที่ 29 กันยายน พ.ศ. 2554

Hibernate config auto load sql script

     โดยปกติ Hibernate สามารถจะโหลด sql script เข้าไปได้ ถ้าเราสร้างไฟล์ชื่อ import.sql น่ะครับ แล้วกำหนด hibernate properties
hibernate.hbm2ddl.auto ให้มีค่า create หรือ create-drop แล้ว Hibernate จะโหลดไฟล์นี้ขึ้นมาให้อัตโนมัติ (ไฟล์จะไปวางไว้ที่ classpath เช่น src/main/resources)
แต่เราจะไม่เห็น log ว่าโหลด sql script ทำสำเร็จหรือไม่สำเร็จโดย
1. ต้องไปเพิ่ม Log4j ของ package org.hibernate.tool.hbm2ddl
2. Hibernate จะใช้ slf4j มาเพราะฉะนั้นเราต้องเอา Jar ของ slf4j มาด้วย ไม่อย่างนั้นพอเวลารันไปก็ไม่เห็นอยู่ดีครับ เพิ่มใน pom.xml เข้าไปก็จะใช้งานได้แล้วครับ

        <dependency>
            <groupid>org.slf4j</groupid>
            <artifactid>slf4j-log4j12</artifactid>
            <version>1.6.2</version>
        </dependency>


     ปล. ผมใช้ hibernate 3.6.3 (ต่ำกว่านี้น่าจะใช้ได้ตั้งแต่ 3.x) จะสามารถกำหนด sql script ได้ และสามารถกำหนัดได้หลายๆ ไฟล์ โดยใช้ , ต่อกัน ซึ่งจะใช้ hibernate properties อันนี้ครับ
hibernate.hbm2ddl.import_files