2012-03-11 2 views
1

Мне нужно хранить практически неограниченную строку (документ), и я не смогу определить ее длину. Я знаю, что есть CLOB, но я не смог найти его реализацию в JDO, только JPA.Неограниченная строка в JDO @ DataNucleus? (H2 DB)

Я попробовал, что:

@Column(jdbcType="CLOB") 
private String contents = ""; 

Но когда я бегу инструмент проверки схемы я получаю:

Исключение было брошено во время работы SchemaTool. Подробные сведения см. В журнале. Следующие могут помочь: Несовместимый тип данных для столбца SCENE.CONTENTS: был VARCHAR (хранилище данных), но ожидаемый тип был CLOB (метаданные). Убедитесь, что тип хранилища данных и тип, указанные в метаданных, согласованы.

Я должен что-то не хватает ... основной

ответ

2

Вы не смогли найти CLOB в JDO? JDO позволяет определить «jdbc-type», поэтому у вас есть полный набор типов. В JPA у вас очень ограниченный набор

+0

Да, я пытался установить тип JDBC в CLOB, но он не имел никакого эффекта, он все еще сказал, что String слишком длинная (более 256 символов), что является правильным способом определить String как CLOB с аннотациями JDO? – Paul

+0

jdbc-type = "clob", очевидно, согласно спецификации JDO и документам. Но если в вашей таблице уже задан VARCHAR (256), тогда это будет бессмысленно. Вы не указали эту деталь – DataNucleus

+0

Ну, я не определяю ее, это все автоматическое вещество датануклеуса. Я использовал: @Column (jdbcType = "CLOB") Содержимое строки = ""; Я удалял и создавал схему после моих изменений. – Paul

Смежные вопросы