2012-10-24 46 views
7

Tôi có một lớp siêu ánh xạ, có một trường mà một số bảng trong phần chia sẻ DB của tôi.Ghi đè Hibernate @transient

Tôi muốn chú thích trường này bằng @Transient để hầu hết các thực thể sẽ bỏ qua nó, nhưng de- @ Transient hoặc un- @ Transient nó trên thực thể con.

Điều này có khả thi không?

Cảm ơn bạn, Idob

Trả lời

1

Bạn có thể có thể sử dụng mô hình phân biệt

http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/mapping.html

Bạn sẽ phải thiết lập một siêu lớp phụ huynh và sau đó sub-class nó, một cái gì đó như

ClassWithSharedFields 
ClassExtensionThatUpdatesCertainFields 
ClassExtensionThatReadsCertainFields 

Sau đó, ClassExtensionThatReadsCertainFields có thể chỉ định trường mà bạn không có ý định cập nhật s chỉ đọc.

Đây có thể là một gợi ý mơ hồ, vì vậy nếu bạn muốn trợ giúp cụ thể hơn, có thể cung cấp một số ví dụ cụ thể hơn về cách các lớp miền của bạn cần hành xử trong mối quan hệ với DB của bạn.