我有一个具有基础数据库 (Oracle) 的应用程序。它从基本数据库中的表中获取另一个租户数据库连接字符串。这些租户可以是 Oracle、Postgres 或 MSSQL。
当应用程序启动时,方言被设置为org.hibernate.dialect.SQLServerDialect基本数据库的休眠状态。但是当我尝试在 MSSQL 数据库的租户中插入数据时,它在插入数据时抛出错误。com.microsoft.sqlserver.jdbc.SQLServerException: DEFAULT 或 NULL 不允许作为显式标识值
这是因为它正在为 Oracle 数据库设置 MSSQL 方言。
[WARN ] 2020-01-21 09:16:22.504 [https-jsse-nio-22500-exec-5] [o.h.e.j.s.SqlExceptionHelper] -- SQL Error: 339, SQLState: S0001
[ERROR] 2020-01-21 09:16:22.504 [https-jsse-nio-22500-exec-5] [o.h.e.j.s.SqlExceptionHelper] -- DEFAULT or NULL are not allowed as explicit identity values.
[ERROR] 2020-01-21 09:16:22.535 [https-jsse-nio-22500-exec-5] [o.a.c.c.C.[.[.[.[dispatcherServlet]] -- Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute statement; SQL [n/a]; nested …Run Code Online (Sandbox Code Playgroud)