почему не могу сохранить объект в jpa - PullRequest
0 голосов
/ 04 марта 2019

На самом деле я пишу API только для извлечения данных из таблицы, поэтому мне не нужно создавать таблицу, но мне нужно регистрировать каждый вызов в базу данных. Я просто прокомментировал spring.jpa.hibernate.ddl-auto = updateв файле свойств, чтобы избежать создания таблицы при запуске.После комментирования кода автоматического создания jpa я столкнулся с проблемой сохранения объекта (случай, когда id равен 0).

pojos

@Entity
@Table(name = "blabla")

public class ABCD{

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String name;
    private int xxx;
    private Date yyyy;
   //
   //
}

Сохранениекод

model obj = new model(xx, yyy, zzz);
repository.save(obj);

1 Ответ

0 голосов
/ 04 марта 2019

Вероятно, не стоит комментировать эту запись конфигурации, согласно документации , при ее отсутствии она может быть автоматически установлена ​​на create-drop, я бы посоветовал вам изменить ее на none наизбегать неприятностей.

Вы можете явно установить spring.jpa.hibernate.ddl-auto , и стандартными значениями свойств Hibernate являются none , validate , update , create и create-drop .Spring Boot выбирает значение по умолчанию для вас в зависимости от того, считает ли он, что ваша база данных встроена.По умолчанию это создает-отбрасывание, если менеджер схемы не был обнаружен или нет во всех других случаях.Встроенная база данных обнаруживается при просмотре типа подключения.hsqldb, h2 и derby встроены, а другие нет.Будьте осторожны при переключении из оперативной памяти в «настоящую» базу данных, чтобы не делать предположений о существовании таблиц и данных на новой платформе.Вы должны либо явно установить ddl-auto, либо использовать один из других механизмов для инициализации базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...