Шов спящий, удалить проблему сирот - PullRequest
0 голосов
/ 08 февраля 2011

Я использую сущность Employee, и внутри нее определен список UserMaster

public class EmployeeMaster{
    private String employee_id;
    private String first_name;
    private String last_name;
    private List<UserMaster> userMaster = new ArrayList<UserMaster>();

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "employeeMaster")
    @Cascade(value = {CascadeType.SAVE_UPDATE,CascadeType.DELETE_ORPHAN})   
    public  List<UserMaster> getUserMaster() {
        return userMaster;
    }
    public void setUserMaster(List<UserMaster> userMaster) {
        this.userMaster = userMaster;
    }
}

в моем методе я звоню

xsession.saveOrUpdate(employeeMaster);

Здесь я явно очищаю предыдущую дочернюю коллекцию и добавляю новые дочерние объекты

Но удаление сироты здесь не работает .. Только запрос на вставку работает Pls Help

Коллекция cascade = "all-delete-orphan" больше не ссылался на объект-владелец

сообщение отображается в консоли

1 Ответ

2 голосов
/ 08 февраля 2011

Похоже, вы заменили коллекцию, содержащуюся в загруженном объекте, на setUserMaster().

Когда коллекция настроена на DELETE_ORPHAN, вы не можете заменить коллекцию таким образом, вам нужно изменить существующую коллекцию, используя ее собственные методы.

...