2011-02-08 2 views
0

Im использование сущности 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

Коллекция с каскадом = «все-удалить-сироту» было больше не ссылается владеющего объектом

сообщение показывает в консоли

ответ

2

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

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

+0

sm может объяснить это немного больше – jennifer

+0

@jennifer: Что именно неясно? Вы называете 'setUserMaster()' где-то? Вы не должны этого делать. – axtavt

Смежные вопросы