Я использую 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)], но ожидая [всплывают (типы # FLOAT)] на org.hibernate.tool.schema.internal.SchemaValidatorImpl.validateColumnType (SchemaValidatorImpl.java:165) на 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) ...
Является ли эта проблема решена путем внедрения пару UserTypes для Coordenada и TipoNodo? Что я могу сделать, если это не так?
Спасибо!
У меня есть : configuration.setProperty (AvailableSettings.DIALECT, "org.hibernate.dialect.SQLServer2012Dialect"); – russellhoff