Tôi nhận được ngoại lệ sau khi tôi đang cố gắng thay đổi @ID
của mình trong một @Entity
.Hibernate, thay đổi số nhận dạng/khóa chính
identifier of an instance of com.google.search.pagerank.ItemEntity was altered from 1 to 2.
Tôi biết rằng tôi đang thay đổi khóa chính trong bảng của mình. Tôi đang sử dụng chú thích JPA.
tôi giải quyết điều này bằng cách sử dụng này truy vấn HQL duy nhất: update Table set name=:newName where name=:oldName
Thay vì sử dụng cách tiếp cận OO hơn:
beginTransaction();
T e = session.load(...);
e.setName(newName);
session.saveOrUdate(e);
commit();
Bất cứ ý tưởng gì khác là gì?
Bạn đang cố gắng sử dụng một pháp nhân khác làm PK? –
bây giờ tôi đang cố gắng thay đổi khóa riêng của tôi từ một thực thể kiên trì. trong sql nó sẽ là một cái gì đó như: "Cập Nhật Khách hàng thiết lập customerId = 1492 nơi customer_id = 42;" và customer_id là khóa riêng của tôi – Schildmeijer