2012-03-28 27 views
6

Tôi có một bảng được gọi là Person mà tôi đã ánh xạ ở chế độ ngủ đông Tôi đã có một số dữ liệu mà tôi không muốn mất. Tôi cần phải thêm cột mới được gọi là địa chỉ, Bất kỳ ý tưởng làm thế nào để làm điều đó trong ngủ đông?Thêm cột vào bảng được ánh xạ bằng hibernate, mà không làm mất dữ liệu hiện có

Cảm ơn trước ..

+0

Bạn sẽ phải sử dụng [hbm2ddl] (http://www.jroller.com/eyallupu/entry/hibernate_s_hbm2ddl_tool) –

Trả lời

0

Có thể bạn không bị buộc phải sử dụng Hibernate để tạo/cập nhật giản đồ cơ sở dữ liệu. Tôi cho rằng bạn có nội dung như thế này trong cấu hình của mình:

<property name="hibernate.hbm2ddl.auto" value="create-drop" /> 

Chỉ cần thay đổi giá trị thành "xác thực", thực hiện thay đổi đối với ánh xạ và thực hiện câu lệnh ALTER TABLE riêng biệt.

Tùy chọn khác là sử dụng "cập nhật" để cho Hibernate tìm ra cách cập nhật cấu trúc bảng của bạn. Tôi đề nghị để giữ nó trong tay của bạn và chỉ cần thực thi DDL SQL bằng tay.

6

Nếu bảng hiện tại của bạn được tạo bởi Hibernate, bạn có thể chỉ cần thêm thuộc tính địa chỉ trong lớp thực thể java cho cột địa chỉ. Sau đó, đặt thuộc tính hibernate.hbm2ddl.auto thành update và hibernate sẽ tự động tạo cột này khi SessionFactory được xây dựng lần sau. Hibernate sẽ không thay đổi bất kỳ kho dữ liệu nào trong cơ sở dữ liệu của bạn khi hibernate.hbm2ddl.autoupdate.

Hoặc, bạn có thể tự phát hành SQL để thay đổi cấu trúc bảng và sau đó thêm thuộc tính địa chỉ trong lớp thực thể java cho cột địa chỉ.

Các vấn đề liên quan