2011-07-24 10 views
5

Tôi hiện đang làm việc trên một ứng dụng sử dụng Hibernate và chúng tôi muốn có thể chèn cột và bảng khi đang di chuyển, tức là lúc chạy và tiếp tục làm việc với ứng dụng mà không phải khởi động lại ứng dụng. Chúng tôi hiện đang xây dựng các thực thể, nhưng chưa sử dụng chúng. Chúng ta có mã C cũ (để được di trú sang Java một ngày nào đó) lưu trữ logic nghiệp vụ của chúng ta và thực hiện các cuộc gọi tới Java/Hibernate thông qua JNI để lấy các bản ghi từ cơ sở dữ liệu. Sau khi đọc vài bài (xem dưới đây để biết các liên kết) và các tài liệu tham khảo Hibernate 3.6 tôi vẫn còn có một số câu hỏi:Thêm Bàn và Cột trong Hibernate trên Bay?

1. Nếu tôi nhúng SchemaUpdate trong ứng dụng của tôi, như đã đề cập ở đây: http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/toolsetguide.html#toolsetguide-s1-6 Tôi thì phải tạo lại SessionFactory (đó là một hoạt động tốn kém) ngay cả khi tôi không sử dụng các thực thể (như hiện tại, nhưng trong tương lai tất nhiên điều này sẽ thay đổi)? Sau đó, phiên cũ sẽ không hợp lệ, tức là tôi phải di chuyển các thực thể đã có trong bộ nhớ và được duy trì bởi phiên, sang phiên mới? Điều này có thể bằng cách nào đó? Hibernate có duy trì thông tin ngoài ORM cho các thực thể về sơ đồ không? Sẽ không có hiệu lực bộ nhớ cache (phiên, tức là cấp độ đầu tiên) như được đề xuất ở đây: changes to the schema while hibernate is running

2. Làm cách nào để thay đổi cột? Tôi đoán nó vẫn là @Bozho đã viết: "Than ôi, hibernate không thể thay đổi cột."? Hibernate to update table schema

Đó là câu hỏi của tôi cho đến giờ, cảm ơn sự giúp đỡ của bạn.

tài liệu tham khảo

Hơn nữa tôi đã đọc:

+0

Bạn đã bao giờ tìm thấy một số giải pháp cho điều này chưa? Tôi cũng quan tâm, có vẻ như Grails có thể làm điều đó với khung GORM của họ. – codevour

Trả lời

5

Vâng, có một bài viết tốt trên InfoQ about adding fields dynamically.

+0

Cảm ơn bạn rất nhiều vì tài liệu tham khảo tuyệt vời này. Tôi hiện đang làm việc trên các dự án khác, nhưng tôi sẽ thử điều này ngay sau khi tôi tìm thấy thời gian. – juniper

+0

Bạn có thể tóm tắt các điểm chính của bài viết để giảm sự phụ thuộc của câu trả lời này vào liên kết không? – Jasper