Проблема каким-то образом вызвана этой конфигурацией:
hibernate:
jdbc:
batch_size: 20
Установка размера пакета на 0 решает проблему.
Вопрос в том, почему это проблема и как лучше всего ее избежать?
Вот все весенние данные и JPA конфигурация:
Код: Выделить всё
spring:
datasource:
driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://${DB_HOST}
hikari:
username: ${DB_USERNAME}
password: ${DB_PASSWORD}
maximum-pool-size: 30
jpa:
database: SQL_SERVER
hibernate:
ddl-auto: none
dialect: org.hibernate.dialect.SQLServer2012Dialect
use-new-id-generator-mappings: true
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
properties:
hibernate:
jdbc:
batch_size: 20
batch_versioned_data: true
order_inserts: true
Исходный вопрос:
У меня есть база данных SQL Server и Kotlin/ Код JPA.
Сценарий №1:
Код: Выделить всё
CREATE TABLE test(
id varchar(30) PRIMARY KEY
)
@Entity
@Table(name = "test")
data class Test(
@Id
@Column(name = "id")
var id: String
)
@Repository
interface TestRepository: JpaRepository
fun testInsert() {
val h = Test(id = "1")
testRepository.save(h)
}
Сценарий №2
Код: Выделить всё
CREATE TABLE test(
id varchar(30) PRIMARY KEY,
group_name VARCHAR(9)
)
@Entity
@Table(name = "test")
data class Test(
@Id
@Column(name = "id")
var id: String,
@Column(name = "group_name")
val groupName: String
)
@Repository
interface TestRepository: JpaRepository
fun testInsert() {
val h = Test(id = "1", groupName="g")
testRepository.save(h)
}
o.h.e.jdbc.spi.SqlExceptionHelper — невозможно вставить значение NULL в столбец «id», таблица « тест'; столбец не допускает нулевых значений. Ошибка INSERT.
java.sql.BatchUpdateException: невозможно вставить значение NULL в столбец «id», таблицу «test»; столбец не допускает нулевых значений. Ошибка INSERT.
Как в сценарии №1 значение «1» было вставлено в столбец id, но при добавлении второго столбца в сценарии № 2, и оба столбца имеют ненулевые значения, возникает ошибка о том, что первый столбец имеет значение NULL?
(И почему возникает ошибка «BatchUpdateException»?)
Подробнее здесь: https://stackoverflow.com/questions/793 ... umn-but-th