如何在 java 中使用 mongodb 嵌入式架构
How to use mongodb embedded schema in java
我被困在这里,我想将用户地址保留为嵌入式文档。但是在那里,它正在数据库中创建另一个 table 地址。所以我想要一个 table "user",在里面,我想要我的嵌入式文档,比如 "address"。用户的域设计是什么?
现在,我的用户域是
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);
}
我想要结果在数据库中,而不是地址 separately.i 的 table 我正在为 this.how 使用 spring-data-mongotemplate 我可以这样做吗?
user{
address:[{},{}] // multiple address could be
}
在用户中使用@Document
注释,两者都必须实现Serializable
。
此致。
也许是这样的?
@Document
public class User {
private String name;
private List<Address> addresses = new ArrayList<>();
// ctr, getters, setters...
public static class Address {
private String city;
public Address(String city) {
this.city = city;
}
// getters, setters...
}
}
在控制器中:
User.Address address = new User.Address("NY");
user.setAddress(address);
mongoTemplate.save(user);
基本上,从 json 解析用户应该可行:
{ name : "userName", addresses : [ { city : 'NY' } ] }
而且您不必将地址 class 嵌入到用户 class 中。只需在用户和 ebmed 地址对象上添加@Document。
我被困在这里,我想将用户地址保留为嵌入式文档。但是在那里,它正在数据库中创建另一个 table 地址。所以我想要一个 table "user",在里面,我想要我的嵌入式文档,比如 "address"。用户的域设计是什么?
现在,我的用户域是
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);
}
我想要结果在数据库中,而不是地址 separately.i 的 table 我正在为 this.how 使用 spring-data-mongotemplate 我可以这样做吗?
user{
address:[{},{}] // multiple address could be
}
在用户中使用@Document
注释,两者都必须实现Serializable
。
此致。
也许是这样的?
@Document
public class User {
private String name;
private List<Address> addresses = new ArrayList<>();
// ctr, getters, setters...
public static class Address {
private String city;
public Address(String city) {
this.city = city;
}
// getters, setters...
}
}
在控制器中:
User.Address address = new User.Address("NY");
user.setAddress(address);
mongoTemplate.save(user);
基本上,从 json 解析用户应该可行:
{ name : "userName", addresses : [ { city : 'NY' } ] }
而且您不必将地址 class 嵌入到用户 class 中。只需在用户和 ebmed 地址对象上添加@Document。