1
私は2つのエンティティPersonとcarの間に多量のマッピングを作成しました。予想通り、新しいテーブルPerson_Carが表示されます。以下はPerson.javaのコードですSpring Roo Hibernateの更新エントリの多対多マッピング
@ManyToMany(cascade = CascadeType.ALL, mappedBy = "persons")
private Set<Car> cars= new HashSet<Car>();
ここで、テーブルにエントリを追加します。私は車をpersonオブジェクトに設定し、person.merge()を実行します。
@RequestMapping(value ="/saveCars", method = RequestMethod.POST)
@ResponseBody
public String saveCars(@RequestParam("personId")Long personId, @RequestParam("cars") String incomingCars){
Map<String, Object> response = new HashMap<String, Object>();
try{
...
Person person = Person.findPerson(personId);
Set<Car> cars = person.getCars();
for(int i=0 ; i<temp.length ; i++){
carID = Long.parseLong(temp[i]);
cars.add(Car.findCar(carID));
}
person.setCars(cars);
person.merge();
}
LOG.debug("cars successfully added to questionnaire");
response.put("message", "success");
}
return new JSONSerializer().exclude("*.class").deepSerialize(response);
}
ただし、Person_Carテーブルにはエントリが作成されていません。しかし、私が何かをすると、
Person person = Person.findPerson(personId);
person.setName("Jonathan");
person.merge();
私は人のテーブルに反映されて参照してください。私は間違って何をしていますか?ありがとう