Khi lớp doanh nghiệp tạo một thực thể mới.), đây có phải là phương pháp sáp nhập thực hành xấu không?kết hợp một thực thể tách rời hoặc mới với đối tượng hiện có trong câu hỏi thực hành tốt nhất hibernate/jpa
public User add(User user){
User existingUser = getUserDao().findByBusinessKey(user.getBusinessKey(), false);
user.setId(existingUser.getId());
user = getUserDao().merge(user);
return user;
}
Tôi hỏi vì thiết lập ID một cách rõ ràng trên thực thể tách rời cảm thấy khá xa lạ với tôi, nhưng dù bằng và hashCode phương pháp của đối tượng người dùng được thực hiện một cách thích hợp, thiết lập ID ở đây là cách duy nhất để đảm bảo việc hợp nhất diễn ra.
Có thực tiễn nào tốt hơn không?
Có những hạn chế cụ thể nào đối với phương pháp này có thể khiến tôi khó chịu sau này không?
Cảm ơn bạn đã xem!
Một điều mà đoạn mã của tôi không chứng minh thuộc tính đã thiết lập kết quả getUserDao(). Kết hợp (của người dùng) với tham chiếu người dùng ban đầu ... cập nhật đoạn mã để hiển thị điều đó. –
Tại sao có ID (autogenerated) và khóa doanh nghiệp ở vị trí đầu tiên? Tại sao không sử dụng khóa Busines làm ID? Điều này giả định rằng nó không bao giờ thay đổi tất nhiên .. – bert
Nó luôn luôn là đề nghị của nhóm ngủ đông từ những gì tôi đã đọc - và nó dường như làm việc tốt trong hầu hết các tình huống, ngoại trừ một trong những tôi đặt ra: s http: // community.jboss.org/wiki/EqualsandHashCode –