gpt4 book ai didi

java - 用户定义的数据类型遇到错误的列类型

转载 作者:行者123 更新时间:2023-12-01 09:29:48 25 4
gpt4 key购买 nike

我正在使用 hibernate 从 SQL Server 2014 数据库获取一些数据。

有一个表,其中包含用户定义的数据类型的列:

dbo.Nodos
Id (PK, int, not null)
Tipo (PK, FK, TipoNodo(tinyint), not null)
Nombre (varchar(40), null)
PosX (Coordenada(real), not null)
PosY (Coordenada(real), not null)
Label (varchar(8), not null)

这些数据类型是 Coordenada 和 TipoNodo:

User-Defined Data Types
dbo.Coordenada (real, not null)
dbo.TipoNodo (tinyint, not null)

我将 Nodos 表映射为 Java 中的 StopDTO 类:

@Entity
@Table(name = "Nodos")
public class StopDTO {

/*
* Atributos
*/
@Id
@Column(name = "Id", insertable = false, updatable = false)
private Integer id;
@Column(name = "Tipo", insertable = false, updatable = false)
private Integer tipo;
@Column(name = "Nombre", insertable = false, updatable = false)
private String nombre;
@Column(name = "PosX", insertable = false, updatable = false)
private Float posx;
@Column(name = "PosY", insertable = false, updatable = false)
private Float posy;
@Column(name = "Label", insertable = false, updatable = false)
private String label;
...

当我查询 StopDTOs(使用 NamedNativeQuery)时出现问题,我收到以下消息:

Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [PosX] in table [Nodos]; found [coordenada (Types#REAL)], but expecting [float (Types#FLOAT)] at org.hibernate.tool.schema.internal.SchemaValidatorImpl.validateColumnType(SchemaValidatorImpl.java:165) at org.hibernate.tool.schema.internal.SchemaValidatorImpl.validateTable(SchemaValidatorImpl.java:150) at org.hibernate.tool.schema.internal.SchemaValidatorImpl.performValidation(SchemaValidatorImpl.java:95) at org.hibernate.tool.schema.internal.SchemaValidatorImpl.doValidation(SchemaValidatorImpl.java:62) ...

这个问题可以通过为 Coordenada 和 TipoNodo 实现几个 UserType 来解决吗?如果不是我该怎么办?

谢谢!

最佳答案

请检查Hibernate中配置的方言,应该是SQLServer2008Dialect。

关于java - 用户定义的数据类型遇到错误的列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39527033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com