gpt4 book ai didi

java - 无法使用 MongoRepository 从 Spring 保存 Mongo DB 中的值

转载 作者:行者123 更新时间:2023-12-01 09:17:52 25 4
gpt4 key购买 nike

我正在尝试使用 Spring 根据某些输入进行加法并将其保存在 Mongo 数据库中。

因为我必须进行多次加法:

1.所以一种方法是手动添加值并将它们设置在bean中并将其保存到数据库中。

或者

2.只需将它们添加到字段的 getter 中并在需要时获取即可。

当尝试使用第二种方法时,我无法将数据保存在 MongoDB 中

请查找示例代码:-

Bean 类:

class Addition {

private double a;
private double b;
private double c;
private double d;

//getters and setters of a & b;

//getter of c;
public double getC() {
return a + b;
}

//getter of d;
public double getD() {
return getC() + a;
}

}

扩展 MongoRepository 的接口(interface):

@Repository
public interface AdditionRepository extends MongoRepository<Addition, String> {

}

调用类:

@Controller
public class Add {

@Autowired
private AdditionRepository additionRepository;

@RequestMapping(value = "/add", method = RequestMethod.GET)
public void addNumbers(){
Addition addition = new Addition();
addition.setA(1.0);
addition.setB(2.0);
System.out.println(addition.getC()); //able to print expected value
System.out.println(addition.getD()); //able to print expected value

additionRepository.save(addition);

}

}

数据保存在 Mongo DB 中:

{
"_id" : ObjectId("581b229bbcf8c006a0eda4b2"),
"a" : 1.0,
"b" : 2.0,
"c" : 0.0,
"d" : 0.0,
}

任何人都可以让我知道我做错了什么,或者有任何其他方法可以做到这一点。

最佳答案

setter/getter 实际上并不用于持久性。该框架正在使用该字段:“对象的字段用于在文档中的字段之间进行转换” http://docs.spring.io/spring-data/mongodb/docs/1.6.3.RELEASE/reference/html/#mapping-conventions

在您的情况下,您可以创建一个构造函数来处理计算:

class Addition {

private double a;
private double b;
private double c;
private double d;

public Addition(double a, double b){
this.a = a;
this.b = b;
this.c = a+b;
this.d = this.c + a;
}
}

关于java - 无法使用 MongoRepository 从 Spring 保存 Mongo DB 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40402663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com