Как создать поле строки ключа JDO DataNucleus неизвестного размера? - PullRequest
1 голос
/ 03 марта 2012

Я использую реализацию DataNucleus JDO для экземпляра базы данных H2, открытого в режиме MySQL.

Мне нужно создать элементы из трех строк в таблице. Последняя строка может быть любой длины. Я создал следующий объект, который сохраняется хорошо, за исключением значений, превышающих 256 символов. DataNucleus автоматически устанавливает ограничение размера 256:

@PersistenceCapable(objectIdClass=RawItemKey.class)
@Index(name="BEGIN_IDX", members={"prefix", "language", "value"})
public class RawBeginItem {

    @PrimaryKey
    @Column(length=40)
    private String prefix = "";

    @PrimaryKey
    @Column(length=2)
    private String language = "";

    @PrimaryKey
    @Column(jdbcType="VARCHAR")
    private String value = "";    

    public RawBeginItem() {

    }

    public RawBeginItem(String prefix, String language, String value) {

        this.prefix = prefix;
        this.language = language;
        this.value = value;

    }

    ...

}

Как я могу сказать JDO, что 3-е поле - это строка любой длины? Какой тип SQL мне следует использовать? Как мне это объявить? Спасибо.

1 Ответ

1 голос
/ 06 марта 2012

Тип столбца VARCHAR неопределенной длины не совместим со стандартом SQL.JDO ожидает, что один установлен.H2, кажется, позволяет не слишком указывать его, но, по-видимому, он по умолчанию имеет значение max sign int, поэтому @Column (length = Integer.MAX_VALUE) будет правильным отображением imho.

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