gpt4 book ai didi

java - Spring Boot JPA 不工作

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

我有一个 Controller 类,如下。我有一个 TagRepository 接口(interface),它扩展了 JPA 存储库,我用它来将 TagReader 实例保存到我的数据库中,当我在 Controller 类中使用它时,它工作正常。但是,当我尝试在另一个类中使用 tagRepository 并尝试从那里保存我的 TagReader 对象时,它会抛出空指针异常。 p>

以下逻辑工作正常。

@RestController
public class Controller {

@Autowired
TagRepository tagRepository;

@Autowired
Rfid6204Connection rfid6204Connection;

@RequestMapping(value = "/test")
public void testRepoController(){

String tagid = "0x3504ACE6E0040E5147D516A6";
String serial ="00333478";
String departure ="2017-12-22T12:16:58.857";
String type = "ISOC";


TagReader tagReader = new TagReader(tagid,serial,departure,type,"5");


tagRepository.save(tagReader);
}
}

以下逻辑抛出空指针异常。

@component
public class Rfid6204Connection{

@Autowired
static TagRepository tagRepository;

public static void test(TagReader tag){
tagRepository.save(tag);
}

}

有人可以告诉我问题是什么吗?

最佳答案

我认为您正在使用 Rfid6204Connection.test 作为静态方法。 Spring 不支持静态方法。它与 Spring 容器实例化的对象一起使用。因此,如下更改您的 Rfid6204Connection

@Component
public class Rfid6204Connection{

@Autowired
private TagRepository tagRepository;

public void test(TagReader tag){
tagRepository.save(tag);
}

}

并在您想要的任何地方使用它,如下所示;

@Autowired 
Rfid6204Connection rfid6204Connection;

// Within a method or constructor
rfid6204Connection.test(tag);

关于java - Spring Boot JPA 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47973667/

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