我有技能的POJO class.SkillsParts是array.Using skillsParts的字符串我是设置Skillsname.My问题是,我第一次设置为空,然后解析SkillsParts,创作手法的新对象&添加它来设置,然后update.But我想避免 这如果存在然后删除,如果不存在,则添加。从HashSet的在java中添加和删除对象
POJO类
package com.cloudcodes.gdirectory.pojo;
import java.io.Serializable;
public class Skills implements Serializable{
private static final long serialVersionUID = 1L;
private Long skillId;
private String skillName;
private String skillDesc;
private Long categoryId;
public Long getSkillId() {
return skillId;
}
public void setSkillId(Long skillId) {
this.skillId = skillId;
}
public String getSkillName() {
return skillName;
}
public void setSkillName(String skillName) {
this.skillName = skillName;
}
public String getSkillDesc() {
return skillDesc;
}
public void setSkillDesc(String skillDesc) {
this.skillDesc = skillDesc;
}
public Long getCategoryId() {
return categoryId;
}
public void setCategoryId(Long categoryId) {
this.categoryId = categoryId;
}
}
这是我的关系表
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
private java.util.Set<Skills> skillsList = new HashSet<Skills>();
这是我的控制器
@RequestMapping(value="/ajax/saveSkills.htm")
public @ResponseBody String saveSkills(HttpServletRequest request,@RequestParam String skills,@RequestParam String Email) throws IOException
{
Domain domain1 = (Domain)request.getSession().getAttribute("Domain");
Long domanId =domain1.getDomainId();
String[] skillsParts = skills.split(",");
UserProfile user = userProfileManager.getUserByEmail(domain1.getPrimary_Domain_Id(), Email);
/* Here is problem */
Set<Skills> remove = new HashSet<Skills>();
user.setSkillsList(remove);
for(int i =0;i<skillsParts.length;i++){
Skills skillObj = new Skills();
skillObj.setSkillName(skillsParts[i]);
user.getSkillsList().add(skillObj);
}
userProfileManager.update(user);
Gson gson = new Gson();
return gson.toJson(user);
}
你能重构你的最后一行吗?目前还不清楚你想达到什么目的。如果SkillsList是一个Set,它将始终有唯一的值。 – Edge
是爵士它含有独特的value.i想用getSkillsList方法获取先前的值,然后检查使用skillsParts字符串Array.If skillsParts值出现在前面的列表然后将其删除如果没有的话在以前的列表中添加... –
尝试的解决方案下面......看看这你的意思做,虽然我不是很清楚为什么你会想这样做 – Edge