Hibernate,repository.save-java.lang.NullPointerException:null-对象存在时
我写这段代码只是为了将新数据保存到mySql db,创建了类、存储库和主控制器,它实际上适用于一个类,但不适用于这个类,请欣赏一些指针,因为我不太明白为什么使用空指针: 代码: 主控制器: Eclipse控制台的输出错误: 下面的我的检查显示对象是从映射中拾取的: -创建Exchange构造函数 -已创建exchange构造函数,橙色 -呼气名称为,橙色 -交换[idexchange=0,e_name=orange] 2018-05-21 15:59:43.528错误5118---[nio-8080-exec-4]o.a.c.c.c.[/].[dispatcherServlet]:路径为[]的上下文中Servlet[dispatcherServlet]的Servlet.service()引发异常[请求处理失败;嵌套异常为java.lang.NullPointerException],其根本原因是 java.lang.NullPointerException:null 在com.instantmoney.MoneyServices.MainController.addNewExchange(MainController.java:47)~[classes/:na] Exchange存储库: //接球手和接球手 卷曲 试试这个Hibernate,repository.save-java.lang.NullPointerException:null-对象存在时,java,mysql,spring,hibernate,Java,Mysql,Spring,Hibernate,我写这段代码只是为了将新数据保存到mySql db,创建了类、存储库和主控制器,它实际上适用于一个类,但不适用于这个类,请欣赏一些指针,因为我不太明白为什么使用空指针: 代码: 主控制器: Eclipse控制台的输出错误: 下面的我的检查显示对象是从映射中拾取的: -创建Exchange构造函数 -已创建exchange构造函数,橙色 -呼气名称为,橙色 -交换[idexchange=0,e_name=orange] 2018-05-21 15:59:43.528错误5118---[nio-80
@Controller
public class ExchangeController {
@RequestMapping(path = "/addExchange", method = RequestMethod.POST)
public @ResponseBody String addNewExchange (@RequestParam String exchange)
{
if (exchange != null ) {
Exchange e = new Exchange();
e.setE_name(exchange);
exchangeRepository.save(e);
return "Saved Exchange";
} else {
return new BadRequestException("exchange name can not be null!");
}
}
@Autowired
public ExchangeController(ExchangeRepository exchangeRepository) {
this.exchangeRepository = exchangeRepository;
}
private ExchangeRepository exchangeRepository;
}
我认为
exchangeRepository
为空,您可以添加MainController
代码吗?因为我们看不到您的原始行号,请在您的code@GetMapping(path=“/addExchange”)public@ResponseBody String addNewExchange(@RequestParam String exchange){//check1 System.out.println(“创建Exchange构造函数”);Exchange e=new Exchange();//check 2 System.out.println(“创建的Exchange构造函数”+Exchange);e.setE_name(Exchange);//check 3 System.out.println(“Exchange name是”+e.getE_name());//check 4 System.out.println(e);exchangerepositionary.save(e);返回“已保存的Exchange”;}请在Repository类中使用@Repository annotation,然后将其自动连接到控制器中……应该可以使用了。@Eihab您可以编辑您的帖子来添加代码,请不要在注释中添加代码……我还利用了您的帮助Devratna,添加!=null很有用,我添加了这段代码以避免出现null异常。谢谢您的帮助
public interface ExchangeRepository extends CrudRepository<Exchange, Long> {
@Entity
public class Exchange {
@Id
@GeneratedValue (strategy = GenerationType.AUTO)
private int idexchange;
private String e_name;
public Exchange() {}
http://localhost:8080/moneyservice/addExchange?exchange=orange
@Controller
public class ExchangeController {
@RequestMapping(path = "/addExchange", method = RequestMethod.POST)
public @ResponseBody String addNewExchange (@RequestParam String exchange)
{
if (exchange != null ) {
Exchange e = new Exchange();
e.setE_name(exchange);
exchangeRepository.save(e);
return "Saved Exchange";
} else {
return new BadRequestException("exchange name can not be null!");
}
}
@Autowired
public ExchangeController(ExchangeRepository exchangeRepository) {
this.exchangeRepository = exchangeRepository;
}
private ExchangeRepository exchangeRepository;
}