隐式转换发生

问题描述 投票:0回答:0
Issue Description:

我正在使用 Springboot 2.7.9 和 microsoft sqlserver 作为数据库。 Spring data Jpa 将 BigDecimal 数据类型作为 decimal(38,0) 发送到 MssqlServer,其中列定义为 decimal(12,0),这会在数据插入期间导致隐式转换。此外,在数据库中定义为 char(6) 的字符串列正在发生隐式转换,但 jpa 将其作为 varchar(8000) 发送。有谁知道如何解决这个问题?

Entity class column:
@Column(name = "APP_ID", precision = 12, scale = 0, insertable = true, updatable = true)
private BigDecimal appId;

Database table:
 CREATE TABLE [dbo].[abc](
[ID] [decimal](12, 0) NOT NULL,
[TYP] [char](6) NOT NULL,
[VAL] [decimal](12, 0) NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING ON
GO
ALTER TABLE [dbo].[abc] ADD  CONSTRAINT [X_CROSS_REFERENCE] PRIMARY KEY       CLUSTERED 
( 
[ID] ASC,
[TYP] ASC,
[VAL] ASC
 )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY =     OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
spring-boot hibernate sql-server-2008 jdbc spring-data-jpa
© www.soinside.com 2019 - 2024. All rights reserved.