У меня есть некоторые проблемы с генерацией идентификатора hibernate и сервером ms sql.
Я использую GenerationType.SEQUENCE
в своем приложении для генерации идентификаторов с помощью hibernate.
@Id
@SequenceGenerator(name = "SequenceGenerator", sequenceName = "SEQUENCE_NAME")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SequenceGenerator")
private Long id;
В качестве БД я использую Microsoft SQL Server 2017.
Я создаю последовательность с помощью Liquibase:
<createSequence incrementBy="50" sequenceName="SEQUENCE_NAME" startValue="100000"/>
При запуске Spring Boot Application я получаюошибка:
Schema-validation: missing table [SEQUENCE_NAME]
Когда я вручную запрашиваю последовательность, она может быть найдена:
SELECT COUNT(*) FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[SEQUENCE_NAME]') AND type = 'SO'
Я немного сбит с толку, что она говорит "отсутствует таблица ».С оракулом все нормально работает.Mssql не поддерживает генерацию идентификатора через последовательности.
Моя конфигурация:
spring:
datasource:
url: "jdbc:sqlserver://localhost:1433"
username: sa
password: ABc12345!
jpa:
properties:
hibernate.dialect: org.hibernate.dialect.SQLServerDialect
Я использую этот образ докера: mcr.microsoft.com/mssql/server:2017-CU12-ubuntu