这是A级
@Document
class Socity{
private String id ;
private String name;
}
这是社会阶级
public User addUser(User user) {
List<Socity> socity = new ArrayList<>();
user.setsocitys (socity );
return userRepository.save(user);
}
这是添加用户功能
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run (App.class, args);
SocityDao SDao = ctx.getBean(SocityDao .class);
UserRepository userRepository = ctx.getBean(UserRepository.class);
User u = userRepository.findOne("");
Socity s = new Socity("soc1");
SDao .addSocity(e);
u.getSocitys().add(e);
}
我想为现有用户添加社交性 我试试这个,但它不起作用
@RequestMapping(value = "up/{id}", method = RequestMethod.POST ,produces =
"application/json")
public User addSocityToUser(@RequestBody Socity, @PathVariable String id)
{
return SocityDAO.addSocityToUser(e, id);
}
这是休息服务
<input type="checkbox" id="checkbox" value="brand.php?brand=bmw" name="bmw" <?php echo $checked; ?> > BMW</li>
<input type="checkbox" id="checkbox" value="brand.php?brand=toyota" name="toyota"> Toyota</li>
<input type="checkbox" id="checkbox" value="brand.php?brand=farari" name="farari" checked > Farari</li>
<input type="checkbox" id="checkbox" value="brand.php?brand=nissan" name="nissan" checked > Nissan</li>
答案 0 :(得分:0)
在代码的最后添加userRepository.save(u)
以保留对数据库的更改。
只要它作为ID(因为它是一个持久化对象),它就会被更新。如果它没有ID,它将被保存为数据库中的新对象。
答案 1 :(得分:0)
添加新社交后,您似乎忘记保存用户。请检查我的更新
@Document
public class Socity {
private String id ;
private String name;
}
@Document
public class User {
private String id;
private String name;
@DBRef
private List<Socity> socitys = new ArrayList<>();
}
然后你不需要使用你的addUser()方法。如果您想添加新用户,请使用
userRepository.save(user);
您还需要两个存储库
public interface SocityRepository extends MongoRepository<Socity, String> {
}
和
public interface UserRepository extends MongoRepository<User, String> {
}
你在主要方法中需要什么
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run (App.class, args);
UserRepository userRepository = ctx.getBean(UserRepository.class);
SocityRepository socityRepository = ctx.getBean(SocityRepository.class);
User u = userRepository.findOne("");
Socity s = socityRepository.save(new Socity("soc1"));
u.getSocitys().add(s);
userRepository.save(u);
}
答案 2 :(得分:0)
总是最好使用MongoTemplate编写更新查询并使用Push函数添加到列表中。
@Autowired
private MongoTemplate mongoTemplate;
function(String id, Socity socity){
Query query = new Query(Criteria.where("id").is(id));
Update update = new Update();
update.push("Socitys", socity);
mongoTemplate.updateFirst(query, update, User.class);
}