2010-06-11 29 views
7

Tôi đang phát triển một ứng dụng web Java có sử dụng Hibernate (dựa trên chú thích) cho các thực thể bền vững với cơ sở dữ liệu Oracle 11g. DBA đã tạo các từ đồng nghĩa cho các bảng và yêu cầu tôi sử dụng các từ đồng nghĩa này thay vì các bảng vật lý. (Ví dụ: Bảng "Foo" có từ đồng nghĩa "S_Foo")Hibernate Schema Validation Fails trên Bảng Oracle Từ đồng nghĩa

Nếu tôi đã bật "hibernate.hbm2ddl.auto = validate", thì ứng dụng sẽ không khởi động được với "Thiếu bảng: S_Foo". Nếu tôi tắt xác thực, thì ứng dụng sẽ khởi động tốt và hoạt động bình thường. Tôi đoán là Hibernate chỉ kiểm tra các bảng vật lý và không phải là từ đồng nghĩa khi xác nhận rằng một bảng tồn tại.

Có cách nào để bật xác thực giản đồ Hibernate với các từ đồng nghĩa không? Tôi có thể chỉ định cả bảng vật lý và từ đồng nghĩa trong chú thích không? Tôi thích có kiểm tra an toàn thêm rằng cấu trúc bảng là chính xác khi ứng dụng khởi động.

+0

Bạn có thể đăng dấu vết ngăn xếp đầy đủ và cũng đề cập đến các phiên bản của trình điều khiển Hibernate, jdbc và phương ngữ. –

+0

Từ đồng nghĩa được tạo ra dưới dạng từ đồng nghĩa PUBLIC hay từ đồng nghĩa thuộc sở hữu của người dùng mà Hibernate đăng nhập bằng? Điều này có thể ảnh hưởng đến kết quả. (hoặc có thể không) –

Trả lời

0

Tôi không quen với ngủ đông, nhưng bạn có thể thử xem thay vì từ đồng nghĩa. Nếu bạn chỉ sử dụng các bảng này cho các khung nhìn, nó sẽ hoạt động giống như một từ đồng nghĩa. Nếu bạn muốn có thể làm CRUD trên "bảng" mặc dù bạn cần phải xây dựng một loạt các thay vì kích hoạt.

1

Thay đổi hibernate.hbm2ddl.auto=validate thành hibernate.hbm2ddl.auto giá trị = "" thì không thành công.

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