Giả sử tôi có một thực thể User
như thế này:Các thuộc tính có thể ánh xạ trong hbm.xml có bị tạm thời không?
class User {
private String login;
transient private String hashedPassword;
}
Tôi không muốn bao giờ chuyển hashedPassword
cho khách hàng, vì vậy tôi làm cho nó thoáng.
Lớp này được ánh xạ bởi Hibernate, với cả hai trường được ánh xạ bằng hbm.xml.
Việc triển khai này có an toàn và chính xác không? Sẽ Hibernate lưu trữ một cách chính xác hashedPassword
trong cơ sở dữ liệu, tải nó vào các đối tượng từ cơ sở dữ liệu, giữ nó trong bộ nhớ cache cấp 2 nhân rộng và bộ nhớ cache phiên cục bộ vv?
Theo thứ tự, Hibernate hoặc mức độ bộ nhớ cache cấp 2 tôn trọng transient
theo bất kỳ cách nào hoặc hoàn toàn bỏ qua nó?
EDIT: Tôi đã có hai câu trả lời dường như không bao gồm một khía cạnh cụ thể của phương trình. Tôi hoàn toàn không sử dụng chú thích, chỉ ánh xạ XML trong hbm.xml
. Và trường Java-thoáng qua này là OR-ánh xạ trong hbm.xml
.
Cảm ơn bạn, nhưng tôi đã đề cập cụ thể rằng trường được ánh xạ trong hbm.xml. Tôi không kiện các chú thích. –
Hibernate có thực sự ánh xạ thuộc tính trong trường hợp đó không? Tôi đã được giả định rằng các chú thích và hbm.xml hành xử giống nhau, nhưng có lẽ đó không phải là trường hợp. Vì 'transient' sẽ đảm bảo rằng thuộc tính không được tuần tự hóa, câu hỏi của bạn hoàn toàn về hành vi Hibernate? – wrschneider