我有技能的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