1
我想将一对多关系保存到数据库中。在这种情况下,一个父母和两个孩子。Spring Hibernate - 保存一对多关联
DAO代码
public void createMatch() {
UserEntity checker = new UserEntity();
UserEntity setter = new UserEntity();
setter.setChecker(checker);
checker.addSetter(setter);
if (checker != null)
sessionFactory.getCurrentSession().persist(checker);
}
型号代码
public class UserEntity implements Serializable {
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name="checker_id")
private UserEntity checker;
@OneToMany(mappedBy="checker", orphanRemoval=true, cascade = CascadeType.ALL)
private Set<UserEntity> setters = new HashSet<UserEntity>();
// getters and setters
public void addSetter(UserEntity setter) {
if(setters == null) {
setters = new HashSet<UserEntity>();
}
setter.setChecker(this);
this.setters.add(setter);
}
jsp的
控制器后处理
@RequestMapping(value="/student", method = RequestMethod.POST)
public ModelAndView hello(@ModelAttribute("checker") UserEntity checker) {
userService.createMatch();
return new ModelAndView ("redirect:/admin");}
它保存到数据库:
CREATE TABLE `user` (
`user_id` INT(11) NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NULL DEFAULT NULL ,
`checker_id` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`user_id`),
FOREIGN KEY (`checker_id`) REFERENCES `user` (`user_id`));
问题是,一个孩子被保存为父级,并且当它被保存时,所有的字段都显示为空,除了userId。我想为父对象保存多个对象,并将值显示在数据库中。我想问我如何执行它?
感谢您的回复。我修改了代码来进行争论。它不仅保存父母,而且保存具有相同ID的同一行中的孩子。这是一个错误。 – user2259555