Я хочу использовать Hibernate при запуске исходного файла sql. Проблема, с которой я столкнулся в настоящее время, заключается в том, что я получаю следующее исключение: я хочу, чтобы HIBERNATE вставлял идентификатор вместо базы данных!
Caused by: java.sql.SQLException: Field 'id' doesn't have a default value
Мои application.properties выглядят так:
spring.jpa.database-platform=org.hibernate.dialect.MariaDBDialect
#Data Source Settings
spring.datasource.url=jdbc:mariadb://localhost:3306/kotlin
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.dbcp2.test-while-idle=true
spring.datasource.dbcp2.validation-query=SELECT 1
spring.datasource.continue-on-error=false
#Add Initial Date for Testing
spring.datasource.initialization-mode=always
spring.jpa.hibernate.ddl-auto=create
spring.jpa.properties.hibernate.hbm2ddl.import_files=data.sql
Моя пользовательская модель содержит:
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
var id: Long = 0
Мой запуск sql скрипт:
INSERT INTO user (first_name, last_name, pass_word, user_name, version, email) VALUES ('deepak', 'sp', '$2a$10$2nU5xMCyzPMeNiGQsrjzQeWNcHf9NjtGzVFgy6kVRcZlLh/ABTgZW', 'spdeepak', 1, "example@example.com");
Кажется, что он хочет напрямую выполнить sql (сгенерированный идентификатор в Hibernate не используется) вместо создания объекта User и последующей вставки данных.
Я также получаю эту ошибку при работе со значениями по умолчанию (он говорит, что в базе данных нет значения по умолчанию). Поэтому, пожалуйста, не просто отвечайте «Использовать GenerationType.IDENTITY)