我被困在这里,我想保留用户的地址为嵌入式文件。但在那里,它正在数据库中创建另一个地址表。所以我想要一个表“用户”,在里面,我希望我的嵌入式文档像“地址”。什么是用户的域名设计?。
现在,我的用户域是
class User{
String name;
Address adress;
}
我的地址域是
class Address{
String city;
}
我的控制器是
@RestController
@RequestMapping("/api/v1")
public class UserController {
public Map<String, Object> saveUser(@RequestBody User user) {
userService.saveUser(user);
return ResponseHandler.generateResponse("User registerted successfully", HttpStatus.ACCEPTED, false, null);
}
}
我的服务是
public void saveUser(User user){
Address a = new Address();
a.setCity("delhi");
User user = new User();
user.setAddress(a);
userDao.save(user);
}
我想结果是在数据库中,而不是单独的地址表。我正在使用spring-data-mongotemplate for this.how我可以这样做吗?
user{
address:[{},{}] // multiple address could be
}
答案 0 :(得分:1)
也许是这样的?
User.Address address = new User.Address("NY");
user.setAddress(address);
mongoTemplate.save(user);
在控制器中:
{ name : "userName", addresses : [ { city : 'NY' } ] }
基本上,从json解析User应该可以工作:
{{1}}
并且您不必将Address类嵌入到User类中。只需在User和ebmed Address对象中添加@Document即可。
答案 1 :(得分:0)
在用户中使用@Document
注释,两者都必须实现Serializable
。
问候。