這是我的模型的一部分:映射一個@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 /休眠抱怨:
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
任何想法,讚賞!
錯誤創建:http://opensource.atlassian.com/projects/hibernate/瀏覽/ JPA-11 – 2011-01-24 04:52:01