Hibernate, repository.save - java.lang.NullPointerException: null - пока объект существует - PullRequest
0 голосов
/ 21 мая 2018

Я пишу этот код, чтобы просто сохранить новые данные в mySql db, создал класс, репозиторий и основной контроллер, он на самом деле работает для одного класса, но не для этого, оцените некоторые указатели, так как я не совсем понимаю, почемунулевой указатель:

Код: главный контроллер:

    @GetMapping(path = "/addExchange") 
public @ResponseBody String addNewExchange (@RequestParam String exchange)
{
    //check1
    System.out.println("creating Exchange constructor");
    Exchange e = new Exchange(); 
    //check 2
    System.out.println("created exchange constructor, " + exchange);
    e.setE_name(exchange);
    //check 3
    System.out.println("Exhange name is, " + e.getE_name());
    //check 4
    System.out.println(e);
    exchangeRepository.save(e); 
    return "Saved Exchange";
}

Ошибка вывода из консоли Eclipse: мои проверки показанного ниже объекта показываются из сопоставления:- создание конструктора Exchange - создание конструктора обмена, оранжевый - имя обмена, оранжевый - Exchange [idexchange = 0, e_name = orange]

2018-05-21 15: 59: 43.528 ОШИБКА 5118 --- [nio-8080-exec-4] oaccC [. [. [/]. [DispatcherServlet]: Servlet.service () для сервлета [dispatcherServlet] в контексте с путем [] выдало исключение [Ошибка обработки запроса;вложенное исключение - java.lang.NullPointerException] с коренной причиной

java.lang.NullPointerException: null at com.instantmoney.MoneyServices.MainController.addNewExchange (MainController.java:47) ~ [classes /: na]

Репозиторий Exchange:

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

1 Ответ

0 голосов
/ 21 мая 2018

Попробуйте это

@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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...