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