2012-01-07 29 views

Trả lời

5

http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/mapping.html

chưa được lưu giá trị (không bắt buộc - mặc định là một giá trị "hợp lý"): một định giá trị tài sản đó cho thấy một thể hiện mới được khởi tạo (chưa được lưu), phân biệt nó từ các trường hợp tách ra rằng đã được lưu hoặc được tải trong phiên trước.

Trong ví dụ của bạn, unsaved-value="null" có vẻ khá vô nghĩa, vì tôi nghi ngờ "mặc định hợp lý" cho một Longnull.

Đó là hữu ích hơn cho các kiểu dữ liệu (ví dụ int), mà không thể được null, và mặc định chưa được lưu giá trị của 0 có thể không mong muốn trong một số ứng dụng (0 là một giá trị số hoàn toàn hợp lệ).

+0

ai và khi bộ giá trị chưa lưu này? bạn có thể vui lòng đưa ra một ví dụ? – jhegedus

13

Nó được giải thích trong bài viết this rực rỡ:

Các tập tin bản đồ Hibernate chỉ ra rằng trường id trên Person là cơ sở dữ liệu ID (tức là nó là chìa khóa chính trong bảng NGƯỜI). Trong thẻ id là thuộc tính, unsaved-value = "null", điều đó cho biết Hibernate để sử dụng trường id để xác định xem đối tượng Person có đã được lưu trước đó hay chưa. Khung ORM phải làm cho sự khác biệt này là để biết liệu chúng có nên lưu đối tượng bằng câu lệnh SQL INSERT hoặc UPDATE hay không. Trong trường hợp này, Hibernate giả định rằng trường id bắt đầu rỗng trên đối tượng mới và được gán khi chúng được lưu giữ lần đầu tiên .

Ngoài ra, bạn có thể đọc về "chưa được lưu giá trị" trong cuốn sách "Java Persistence với Hibernate":

enter image description here

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