Сопоставление карты с оценкой @Lob

Это часть моей модели:

@Entity
public class Entry
{
    @Id @GeneratedValue
    private long identifier;

    @ElementCollection
    @Column(nullable = false)
    private Map<String, String> titles;

    @ElementCollection
    @Column(nullable = false)
    @Lob
    private Map<String, String> contents;

    // Getters and setters, other fields and methods
}

Я использую аннотацию @Lob, потому что значение «содержимого» карты может быть большим. Обратите внимание, что меня не волнует, как ключ «содержимого» карты отображается в базе данных. Я просто не мог найти способ указать, что аннотация @Lob должна применяться только к значению карты.

Хотя Entry.titles отображается в базу данных без проблем, Entry.contents - нет. Таблица базы данных не создается, и MySQL / Hibernate жалуется, что:

Unsuccessful: create table myblog.Entry_contents (Entry_identifier bigint not null, contents longtext not null, contents_KEY longtext, primary key (Entry_identifier, contents_KEY)) type=InnoDB
BLOB/TEXT column 'contents_KEY' used in key specification without a key length

Любые идеи приветствуются!

6
задан OMG Ponies 22 May 2011 в 16:13
поделиться