当前位置: 首页 > 知识库问答 >
问题:

如何修复从普通类调用JpaRepository时的java.lang.NullPointerException?

贺奕
2023-03-14
java.lang.NullPointerException
    at com.wecommit.criticalService.controller.TableSpaceWarningCRC.doTransData(TableSpaceWarningCRC.java:34)
    package com.wecommit.criticalService.critical;

import org.springframework.beans.factory.annotation.Autowired;

import com.wecommit.criticalService.entity.HistoryUpload;

public class CreateDataPerTable {

    HistoryUpload historyUpload;
    int l_historyUpload;

    @Autowired
    TableSpaceWarningCRC tableSpaceWarning;
    //Constructor
    public CreateDataPerTable(TableSpaceWarningCRC tableSpaceWarning) {
    }

    public void setHistoryUpload(HistoryUpload historyUpload) {
        //Get time_upload in historyUpload by historyUploadID

        this.historyUpload = historyUpload;
        l_historyUpload = historyUpload.getId();
    }   

    public void creatDataTables() {
//the error row bellow
            tableSpaceWarning.setTableSpaceWarningCRC(historyUpload);
            tableSpaceWarning.doTransData();


    }

}
package com.wecommit.criticalService.critical;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import com.wecommit.criticalService.entity.TableSpace;
import com.wecommit.criticalService.repository.TableSpaceRepository;
import com.wecommit.criticalService.entity.HistoryUpload;

@Component
public class TableSpaceWarningCRC {
    HistoryUpload historyUpload;

    @Autowired
    TableSpaceRepository tableSpaceRepository;

        public TableSpaceWarningCRC() {
    }

    public void setTableSpaceWarningCRC(HistoryUpload historyUpload) {
        this.historyUpload = historyUpload;
    }
    public void doTransData() {
        //TableSpace Data
        List<TableSpace> listTableSpace;
        listTableSpace = tableSpaceRepository.findByLogFileId(historyUpload.getLogFileId());
            for (int i = 0; i < listTableSpace.size(); i++) {
                TableSpaceWarningCreateTableData tableSpaceWarningCreateTableData = new TableSpaceWarningCreateTableData(listTableSpace.get(i),historyUpload.getLogFileId());
            }
    }
}

共有1个答案

卢永寿
2023-03-14

您的类TableSpaceWarningCRC似乎不是spring bean。自动布线只在spring托管类中工作。

尝试在TableSpaceWarningCRC类的顶部添加@Component注释,然后从应用程序上下文中实例化该类,而不是调用构造函数。

如何在Spring Boot中使用应用程序上下文获取bean

此外,默认情况下spring bean是单例的。因此,如果您的类是有状态的或需要多个实例,请使用bean定义中的prototype作用域

https://www.baeldung.com/spring-inject-prototype-bean-into-singleton

 类似资料:
  • 我已经使用Spring MVC实现了Web Socket,它对我来说运行良好,即从一个浏览器工作到另一个浏览器,该浏览器使用此代码为那些套接字打开。 有人能帮我从普通的api控制器中给谁打电话@SendTo(“/主题/问候”)吗?我试过用这个,但对我不起作用。 对此有什么想法吗? 谢谢

  • 我正在研究Java和mysql,但我无法修复错误。当我将新农场主插入到表中时,我正面临着这些错误... java.sql.sqlexception:AutoCommit=true时无法调用commit 错误如下 java.sql.sqlexception:AutoCommit=true时无法调用commit 在com.mysql.jdbc.sqlerror.createsqlexception(s

  • 有人能告诉我用两种不同的方法调用同一个函数的区别,以及编译器在这两种情况下到底做了什么;比如:

  • null null 在简单的java应用程序中读取图像, 将图像转换为字节数组 将其存储到远程DB2数据库中(使用的技术不是imp,所以我现在使用的是纯jdbc) 从数据库回读它,并 将其转换回来,以确保图像作品的再创作。(我可以在任何图像查看器中打开重新创建的新图像) 问题 问题发生在步骤5。 null null null 我已经参考了以下链接进行验证1。在DB2中插入图像。这里的链接提供了洞察

  • 本文向大家介绍在普通网页中如何调用html5+的plus对象?相关面试题,主要包含被问及在普通网页中如何调用html5+的plus对象?时的应答技巧和注意事项,需要的朋友参考一下 document.addEventListener( "plusready", onPlusReady, false ); onPlusReady 函数中就可以引用plus对象

  • 我有一个长期运行的AWSJavaSDKDynamoDB应用程序,当我启动它时,它的行为正常。但是,在几个小时后(大约12小时),我开始一遍又一遍地接收相同的,并对DynamoDB API进行任何调用。如果我重新启动服务器,会消失...只是稍后再次出现。 确切的ExpiredTokenException错误文本是: 请求中包含的安全令牌已过期(服务:AmazonDynamoDBv2;状态代码:400