Những lỗi của Frameword Hibernate Tôi từng gặp .
Wednesday, December 8, 2010 5:07:20 PM
- Lỗi về Dialiect : Dialect là những thuật ngữ ( hay là từ khóa ) ... ở mỗi cơ sở dữ liệu có 1 nhóm thuật ngữ khác nhau vd:MySQL ,Oracle, SQLServer ...... ta cần phải chọn đúng dialect cho nó nếu không nó sẽ báo lỗi này .... 1 trường hợp khác xảy ra nữa là ta đã khai báo dialect trong hibernate,hbm.xml rồi nhưng lại vẫn gặp nó ... Đơn giản là khi cơ sở dữ liệu bạn không kết nối đến được ở FactorySession sẽ throw ra 1 ngoại lệ (Exception) và khi đến Dialect ngoại lệ đó được bắt và khiến ta hiểu lầm là Dialect , trường hợp này cần coi lại tên Cơ sở dữ liệu , password , kết nối và cấu hình JDBC thật kĩ .
- Lỗi khác là do 1 số Object do Netbean tự tạo ra sẽ có thêm những quan hệ 1 nhiều nhiều nhiều nhiều 1 ..... Dĩ nhiên đôi khi ở phần này sẽ bị báo lỗi .. Ta vào Object đó xóa phần code về 1 nhiều đó đi ... Có lẽ nó được sử dụng theo 1 phương pháp nào đó . Những giờ tôi hiểu đến đó thôi .
28/12/2010
Khi đang save 1 object vào DB ... Tôi ko chú ý kiểm tra lại DB ... và object đã ko được lưu. Tìm một hồi ... tôi thấy phải có 1 dòng trong file cấu hình hibernate là <property name="connection.autocommit">true</property> . Lúc đầu khi nó ko lưu . Tôi dùng hệ quản trị DB SQLServer để mở table lên xem .. kết quả là mở ko được ... rõ ràng 1 điều là Hibernate đang giữ kết nối với table này , và nó ko nhả ra cho việc truy xuất của tôi = hệ quản trị. Khi thêm 1 dòng <property name="connection.autocommit">true</property> thì chạy rất tốt , tôi nghĩ object lúc đó đã commit lên DB rồi ... nếu ko có dòng đó thì có lẽ tôi phải sử dụng tới transaction mới commit được . Nếu ko Application sẽ giữ kết nối . Đây có lẽ là 1 lỗi ===> và cũng có thể là 1 điểm để tấn công DB ... nếu như người đó thay đổi được code .














