SpringBoot Hibernate Entity сопоставление для существующей таблицы базы данных - PullRequest
0 голосов
/ 21 марта 2019

Мне нужно использовать SpringBoot на старой устаревшей базе данных, где таблица уже определена и заполнена. Я не понимаю, возможно ли вообще сопоставить @Entity с существующей таблицей. Я пытался использовать

@Entity
 public class MyTable {...}

но каждый раз, когда я запускаю приложение SpringBoot, таблица уничтожается и воссоздается пустым ... Я попытался заглянуть в документ аннотации Hibernate Entity, но ничего полезного не нашел. Я видел вокруг несколько инструментов, но я бы предпочел сделать это быстро вручную.

Я даже не знаю, имеет ли смысл то, что я собираюсь сделать, впервые используя Hibernate.

Ответы [ 3 ]

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

Полагаю, вы каким-то образом используете springboot-data-jpa, поэтому вы должны знать следующее:

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

, поэтому попробуйте отключить создание DDL, установив spring.jpa.hibernate.ddl-auto = none в своем приложении. Свойства

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

Поскольку он уже с данными, я рекомендую вам установить spring.jpa.hibernate.ddl-auto = update, чтобы он ничего не удалял при перезапуске проекта. Также вы можете добавить следующие свойства, чтобы получить больше информации о том, что они на самом деле выполняют: spring.jpa.show-SQL = верно spring.jpa.properties.hibernate.format_sql = верно

Эта конфигурация добавлена ​​в файл application.properties

здесь вы можете найти больше информации: как именно свойство Spring.jpa.hibernate.ddl-auto работает в Spring? https://www.baeldung.com/sql-logging-spring-boot

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

о, у меня был spring.jpa.hibernate.ddl-auto = create в моем application.properties ....

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