gpt4 book ai didi

java - Spring roo Hibernate更新入口多对多映射

转载 作者:太空宇宙 更新时间:2023-11-04 08:22:02 25 4
gpt4 key购买 nike

我在 spring roo 中在两个实体 Person 和 car 之间创建了多对多映射,正如预期的那样,我看到了一个新表 Person_Car。下面是Person.java中的代码

@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();

我看到人员表中反射(reflect)了更改。我究竟做错了什么?谢谢

最佳答案

尝试将 @Transactional(rollback=false) 添加到您的 Controller 方法中。

rollback=false 是默认值,因此您可以跳过它,只剩下 @Transactional

关于java - Spring roo Hibernate更新入口多对多映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9356234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com