Данные ответа rest api не сохраняются в базе данных с использованием Spring JPA

Я новичок во всем, что связано с Spring, не могли бы вы мне помочь? Я пытаюсь написать регистрационный api, который сохраняет некоторые данные в базе данных с помощью Spring JPA.

Вот мой код:

@ Модель объекта:

@Entity
@Table(name = "registerapplications")
public class RegisterApplication {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id; 

    private String applicationId;

    public RegisterApplication (String applicationId) {
        this.applicationId = applicationId;
    }

    // Getters and Setter
}

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

public interface RegisterRepository extends CrudRepository<RegisterApplication, Long>{

}

Контроллер:

@RestController
public class RegisterApplicationController {

    @Autowired
    private RegisterRepository registerRepository;

    @RequestMapping (path = "/register", method=RequestMethod.POST)
    public @ResponseBody RegisterApplication registerApplicationController() {
        RegisterApplication registerApplication = new RegisterApplication(UUID.randomUUID().toString());
        registerRepository.save(registerApplication);
        return registerApplication;
    }   
}

application.properties:

spring.jpa.hibernate.ddl-auto=create
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/register
spring.datasource.username=admin
spring.datasource.password=admin

Запрос работает правильно, но не сохраняет данные в моей таблице: Скриншот базы данных

Я не получаю ошибки, поэтому не знаю, в чем проблема. Не могли бы вы взглянуть на код и дать мне несколько советов?

какой ответ? что вы отправляли на /register?

Andrew Tobilko 13.01.2019 21:21

У меня нет тела запроса. Это ответ: {"id": 1, "applicationId": "fc1d499e-133c-42de-912d-082957d0baca"}, и я хочу добавить идентификатор и applicationId в базу данных в таблице registerapplications.

deedee88 13.01.2019 22:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
2
827
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, что причина вашей проблемы в том, что вы забыли аннотировать поле applicationId в вашем entity с помощью @Column.

@ deedee88 вы создавали свою db-таблицу вручную? Потому что в нем больше столбцов, чем определено в сущности. Возможно, удалите эту таблицу и позвольте JPA создать ее

Valentin 14.01.2019 10:04

Я пробовал использовать только эти 2 столбца, и я также попытался позволить JPA создать таблицу, но он не создает ее.

deedee88 14.01.2019 20:28

Есть ли журналы sql? Добавьте spring.jpa.show-sql=true к вашему application.proprties, чтобы включить ведение журнала sql

Valentin 14.01.2019 22:54

После многих изменений мне удалось исправить проблему. Я думаю, что основная проблема заключалась в том, что пакет ресурсов находился в пакете java, а не в основном пакете. И оттуда я переходил от ошибки к ошибке, пока она не сработала. Спасибо за помощь Валентин.

deedee88 15.01.2019 19:41

Другие вопросы по теме