如何使用Hibernate保存两个具有一对一关系的类?

时间:2015-06-21 11:44:33

标签: java spring hibernate api rest

我使用Hibernate创建了一个Spring应用程序,我在其中实现了用户和地址表之间的一对一关系。为同一个创建了两个表,一个用于用户,另一个用于地址。现在,我想实现同样的,但面临障碍。以下是我的方法,

  1. 创建了一个地址类及其getter和setter。
  2. 创建了一个用户类及其getter和setter + @OneToOne映射与地址class.Like,
  3. @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "AddressId")
    private Address address;
    
    1. 创建了DAO&用户和地址的服务类。
    2. 如何在控制器中调用服务类,以便将用户和地址详细信息作为输入并将其保存在数据库中?
    3. @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 个答案:

答案 0 :(得分:2)

调用entityManager.persist(user)就足够了,因为关联上有cascade=ALL:实体管理器将持久保存用户并在地址上级联持久操作。