Có ai có giải pháp cho sự cố này không: https://hibernate.atlassian.net/browse/HHH-9663?Loại bỏ trẻ mồ côi JPA không hoạt động đối với quan hệ OneToOne
Tôi cũng đang gặp phải sự cố tương tự. Khi tôi tạo một mặt (không có tham chiếu ngược) một mối quan hệ giữa hai thực thể và đặt thuộc tính loại bỏ mồ côi thành true, đối tượng được tham chiếu vẫn nằm trong cơ sở dữ liệu sau khi đặt tham chiếu thành null.
Đây là mẫu mô hình miền:
@Entity
public class Parent {
...
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "child_id")
private Child child;
...
}
@Entity
public class Child {
...
@Lob
private byte[] data;
...
}
Tôi hiện đang làm việc này bằng cách trẻ mồ côi tự xóa.
tôi đã cố gắng này và nó đang làm việc như bạn mô tả, nhưng vì một lý do của tôi tải chậm đã ngừng hoạt động ngay bây giờ. Tôi nhìn vào truy vấn được tạo ra và tôi có thể thấy hai cuộc gọi chọn xảy ra một để nhận cha mẹ và người khác cho trẻ em và cha mẹ tham gia. Bất kỳ ý tưởng? – ankurvsoni
Hai lựa chọn có nghĩa là LAZY hoạt động. Bạn có thể JOIN FETCH bằng truy vấn HQL/JPQL. –
Tôi có nghĩa là khi tôi làm một cái gì đó như - Parent result = repository.findOne (parent.getId()). Tôi thấy hai lựa chọn. Tôi đã nghĩ chỉ khi tôi làm một cái gì đó như: result.getChild() - Tôi sẽ thấy lựa chọn thứ hai. Đó không phải là một giả định đúng? – ankurvsoni