Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java springboot中带布尔值的查询返回空值_Java_Mysql_Spring Boot - Fatal编程技术网

java springboot中带布尔值的查询返回空值

java springboot中带布尔值的查询返回空值,java,mysql,spring-boot,Java,Mysql,Spring Boot,您好,我在Java springboot上遇到了一个奇怪的问题 java.lang.NullPointerException:无法调用“fr.MelodyApp.repository.OrderProductRepository.findByActiveFalse()”,因为“this.OrderProductRepository”为null\ 我想获得所有仍处于活动状态的OrderProduct的列表!所以我做了一个查询,它拼命地返回空值。我不知道为什么。。我尝试了SQL上的查询,效果很好!我

您好,我在Java springboot上遇到了一个奇怪的问题

java.lang.NullPointerException:无法调用“fr.MelodyApp.repository.OrderProductRepository.findByActiveFalse()”,因为“this.OrderProductRepository”为null\

我想获得所有仍处于活动状态的OrderProduct的列表!所以我做了一个查询,它拼命地返回空值。我不知道为什么。。我尝试了SQL上的查询,效果很好!我在问可能是因为java和MySQL之间的转换问题。我在寻求一些建议;)

公共接口OrderProductRepository扩展了Crudepository{ @查询(“从OrderProduct o中选择o,其中o.active=0”) 公共列表findByActiveFalse(); }
@RestController
@请求映射(“/api/auth/orders”)
@交叉原点()
公共类OrderController{
产品服务产品服务;
订单服务订单服务;
OrderProductService OrderProductService;
用户服务用户服务;
OrderProductRepository OrderProductRepository;
public OrderController(ProductService ProductService、OrderService OrderService、OrderProductService OrderProductService){
this.productService=productService;
this.orderService=orderService;
this.orderProductService=orderProductService;
}
@GetMapping(“/getAllOrders”)
公共列表listOrderActive(){
return orderProductRepository.findByActiveFalse();
}

@实体
@表(name=“OrderProduct”)
公共类订单产品{
@嵌入ID
@杰索尼奥雷
私有订单产品pk;
@列(name=“QUANTITY”,nullable=false)私有整数数量;
@列(name=“USER”,nullable=false)私有整数用户;
@列(name=“ORDERING_DATE”,null=true)私有日期排序;
@列(name=“DELIVER\u DATE”,null=true)私有日期dateDeliver;
私有布尔活动;
公共秩序产品(){
超级();
}
公共订单产品(订单、产品、整数用户、整数数量){
pk=新订单产品pk();
pk.setOrder(订单);
pk.setProduct(产品);
this.user=用户;
这个。数量=数量;
}
@短暂的
公共产品{
返回此.pk.getProduct();
}
@短暂的
公共双getTotalPrice(){
返回getProduct().getPrice()*getQuantity();
}
public OrderProductPK getPk(){
返回主键;
}
公共无效setPk(OrderProductPK){
this.pk=pk;
}
公共整数getQuantity(){
退货数量;
}
公共无效设置数量(整数数量){
这个。数量=数量;
}
公共整数getUser(){
返回用户;
}
公共void setUser(整数用户){
this.user=用户;
}
公共日期getDateOrdering(){
退货日期订购;
}
公共无效setDateOrdering(日期排序){
this.dateOrdering=dateOrdering;
}
公共日期getDateDeliver(){
交还日期;
}
公共无效设置日期交付(日期交付){
this.dateDeliver=dateDeliver;
}
公共布尔getActive(){
主动返回;
}
public void setActive(布尔激活){
这个.active=active;
}
@凌驾
公共int hashCode(){
最终整数素数=31;
int结果=1;
result=prime*result+((pk==null)?0:pk.hashCode();
返回结果;
}
@凌驾
公共布尔等于(对象obj){
if(this==obj){
返回true;
}
if(obj==null){
返回false;
}
如果(getClass()!=obj.getClass()){
返回false;
}
OrderProduct other=(OrderProduct)obj;
if(pk==null){
如果(other.pk!=null){
返回false;
}
}如果(!pk.equals(other.pk)){
返回false;
}
返回true;
}
}

未初始化OrderProductRepository

公共OrderController(ProductService ProductService、OrderService OrderService、OrderProductService OrderProductService、OrderProductRepository OrderProductRepository){ ... this.orderProductRepository=orderProductRepository; }
我没有看到您的代码,但可能是您将
OrderProductRepository
OrderProductService
混在了一起:

@GetMapping(“/getAllOrders”)
公共列表listOrderActive(){
return orderProductRepository.findByActiveFalse();
}

并在存储库上方添加
@Repository
注释。

粘贴您的代码而不是屏幕截图。@fr3ddie它很好;)@luk2302它说的东西太多了…^^^您似乎没有在使用orderProductRepository之前初始化它。将它添加到您的构造函数中并初始化它。是的,我刚刚错过了它!我不太明白h为什么必须将其放入构造函数中,但没问题!之后,对于列表,我必须添加到我的用户实体@JsonIgnoreProperties({“hibernateLazyInitializer”,“handler”})和spring.jackson.serialization.fail on empty beans=false to my application.properties以获得查询的所有列表结果!感谢您的回答;)您的控制器类使用spring引导注释进行注释(
@RestController
).Spring自动注入存储库,因为存储库继承自
crudepository
,控制器由
@Rest controller
标记(这只是我的观察,但它们似乎反映了现实))没问题。每一个答案都能让我学到很多。;)如果你愿意,我已经发布了另一个关于查询的问题^^