java如何使用Hibernate保存具有一对一关系的两个类?
我使用Hibernate创建了一个Spring应用程序,在其中实现了用户和地址表之间的一对一关系。将为同一个like创建两个表,一个用于用户,另一个用于地址。现在,我想实现同样的目标,但面临着障碍。以下是我的做法,
- 创建了一个地址类及其getter和setter李>
- 创建了一个用户类及其getter和setters+@OneToOne映射和address类。像
@OneToOne(cascade = CascadeType.ALL) @JoinColumn(name = "AddressId") private Address address;
- 创建了一个道&;用户和地址的服务类李>
- 如何在控制器中调用服务类,以便它将用户和地址详细信息作为输入,并将其保存在数据库中李>
@RequestMapping(value = "/create", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) public @ResponseBody Status addUserAddress(@RequestBody User user) throws Exception { userServices.addUser(user); // What shall I add here to save address also? }
# 1 楼答案
调用
entityManager.persist(user)
就足够了,因为关联上有一个cascade=ALL
:实体管理器将持久化用户,并对地址级联持久化操作