unit is no longer removed when saving a supervisor profile

This commit is contained in:
Fredrik Friis 2012-02-09 16:13:33 +09:00
parent b034253933
commit 00b68aa5a9

@ -1,6 +1,8 @@
package se.su.dsv.scipro.user.facade;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
@ -13,6 +15,7 @@ import se.su.dsv.scipro.data.dataobjects.Language;
import se.su.dsv.scipro.data.dataobjects.User;
import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
import se.su.dsv.scipro.match.dataobject.Keyword;
import se.su.dsv.scipro.match.dataobject.Keywords;
@Service
public class UserFacade {
@ -28,7 +31,15 @@ public class UserFacade {
keywords = new HashSet<Keyword>();
if(languages == null)
languages = new HashSet<Language>();
employee.getKeywords().setKeywords(keywords);
Set<Keyword> oldKeywords = new HashSet<Keyword>(employee.getKeywords().getAll());
for (Keyword k : keywords){
oldKeywords.add(k);
}
employee.getKeywords().setKeywords(oldKeywords);
//the line below is why the unit disappears when saving a supervisor profile- the unit is never specified so it saves null over the existing value.
// employee.getKeywords().setKeywords(keywords);
employee.getCapabilities().setLanguages(languages);
supervisorDao.save(employee);
userDao.save(employee.getUser());