Исключение преобразования SQL Server: ошибка преобразования типа данных varchar в числовой - PullRequest
0 голосов
/ 08 июля 2010

Я работаю над проектом, целью которого является преобразование существующего приложения в SQL Server.Однако у меня возникают проблемы с генерацией идентификаторов, в частности, с преобразованием типов данных.

Спящие аннотации для моего столбца идентификаторов:

@Id
@GeneratedValue(generator="ID_GEN", strategy=GenerationType.TABLE)
@TableGenerator(name="ID_GEN", table="[$SSMA_seq_SEQ_EXAMPLE_ID]")
@Column(name="ID", unique="true", nullable="false")
public String getId() {
    return this.id;
}

Этот столбец идентификаторов этоготаблица сопоставляется с varchar(50), а $SSMA_seq_SEQ_EXAMPLE_ID сопоставляется с таблицей с одним столбцом id с типом данных numeric(38,0).

Когда я пытаюсь вставить (путем создания объекта Javaи сохраняя его), я получаю следующее исключение: com.microsoft.sqlserver.jdbc.SQLServerException: Error converting data type varchar to numeric.

Концептуально, имеет смысл, что numeric(38,0) будет соответствовать varchar(50), но кажется, что неявное преобразование SQL Server в этом случае не работает.К сожалению, изменение определения базы данных на данный момент невозможно.

Существуют ли какие-либо глобальные параметры, которые приведут к принудительному преобразованию в спящем режиме или в SQL Server?Поскольку я использую hibernate для генерации идентификаторов, у меня нет большого контроля над SQL, который генерируется для получения идентификатора перед передачей этого объекта в базу данных.

1 Ответ

0 голосов
/ 14 апреля 2011

Я закончил тем, что написал собственный Генератор, который принял известные типы данных и сделал преобразования.См. это для получения полной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...