Datanucleus JDO + MySQL создает столбец длинного текста - PullRequest
0 голосов
/ 29 декабря 2011

Я пытаюсь использовать JDO DataNucleus в своем собственном Java-проекте (не GAE), и мне нужно хранить довольно длинные фрагменты текста в моей БД.

Я использую Eclipse для выполнения всей грязной работы, например, для улучшения и создания схемы, но, к сожалению, все String ивары отображаются в VARCHAR столбцах.Но как мне заставить Datanucleus создать для меня столбец LONGTEXT?

Я также попробовал аннотацию @Colunn, но я все еще получил VARCHAR.

@Persistent @Column(name="COMPONENT", jdbcType="LONGVARCHAR", length=1000000) private String component;

Я также попытался указать LONGTEXT как jdbcType, но Schematool сообщил мне, что этот тип данных не может быть использован.

Заранее спасибо,
С Новым годом,
С уважением,
Тимофей.

Ответы [ 2 ]

2 голосов
/ 29 декабря 2011

LONGTEXT не относится к типу JDBC .Все они четко перечислены в http://docs.oracle.com/javase/6/docs/api/java/sql/Types.html

Журнал DataNucleus сообщает, какие типы JDBC доступны для этого драйвера JDBC (поскольку он предоставляет эту информацию используемому программному обеспечению).Он выбирает для сопоставления JDBC тип LONGVARCHAR на IIRC "LONG VARCHAR" (легко увидеть с помощью SchemaTool "dbinfo").Очевидно, вы могли бы сгенерировать схему в текстовый файл и обновить ее самостоятельно перед применением.

0 голосов
/ 13 июня 2016
@Persistent
@Column(name="COMPONENT", jdbcType="CLOB")
private String component;

Тип данных CLOB отображается на средний текст.Но как только база данных создана, вы можете изменить ее на LONGTEXT

...