我正在使用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表作为StopDTO类Java:
@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)时,我刚刚克以下消息:
所致:org.hibernate.tool.schema.spi.SchemaManagementException: 架构验证:在柱[POSX]遇到 表[Nodos]错列类型;发现[coordenada(类型#REAL)],但期待在 org.hibernate.tool.schema.internal.SchemaValidatorImpl.validateColumnType(SchemaValidatorImpl.java:165) [漂浮 (类型#FLOAT)]在 org.hibernate作为。 tool.schema.internal.SchemaValidatorImpl.validateTable(SchemaValidatorImpl.java:150) 在 org.hibernate.tool.schema.internal.SchemaValidatorImpl.performValidation(SchemaValidatorImpl.java:95) 在 org.hibernate.tool.schema。 internal.SchemaValidatorImpl.doValidation(SchemaValidatorImpl.java:62) ...
这方面的问题通过实施解决Coordenada和TipoNodo的UserType几个?如果不是,我该怎么办?
谢谢!
我有:configuration.setProperty(AvailableSettings.DIALECT,“org.hibernate.dialect.SQLServer2012Dialect”); – russellhoff