Java.sql.BatchUpdateException: невозможно вставить значение NULL в столбец, но это значение не равно нулюJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java.sql.BatchUpdateException: невозможно вставить значение NULL в столбец, но это значение не равно нулю

Сообщение Anonymous »

ОБНОВЛЕНИЕ:
Проблема каким-то образом вызвана этой конфигурацией:
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»