Tôi gặp sự cố khi viết kiểm tra cho ứng dụng cơ sở dữ liệu bằng JPA2 và EclipseLink:Trường id của thực thể JPA có được xem xét bằng equals và hashCode không?
Tôi thêm một số thực thể vào cơ sở dữ liệu, truy xuất lại và muốn so sánh nó với một trường hợp có giá trị tôi mong đợi xác nhận việc bổ sung đã làm việc như tôi dự định.
Đầu tiên tôi đã viết một cái gì đó giống như
assertEquals(expResult, dbResult);
mà thất bại, vì tôi có thể không thực sự biết giá trị của id
lĩnh vực, được tạo ra bởi các cơ sở dữ liệu và do đó dbResult
khác với expResult
mà tôi tạo ra với new
và được điền thủ công.
tôi thấy hai lựa chọn:
Hoặc là tôi loại bỏ các lĩnh vực
id
từequals
vàhashCode
để so sánh chỉ dựa trên "giá trị thực". Tôi không biết nếu điều này gây ra vấn đề trong cơ sở dữ liệu hoặc ở nơi khác, mặc dù.Hoặc tôi viết các bài kiểm tra để kiểm tra rõ ràng mọi trường ngoại trừ
id
theo cách thủ công.
Tôi nên làm gì?
có thể tìm thấy rất nhiều tranh cãi? Đó là lạc quan. – digitaljoel