6
我有以下错误为什么不能将JPA/hibernate映射到MySQL blob类型?
Caused by: org.hibernate.HibernateException: Wrong column type in TestTable for column PAYLOAD. Found: blob, expected: tinyblob
at org.hibernate.mapping.Table.validateColumns(Table.java:284)
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1174)
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:139)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:387)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:883)
... 60 more
列休眠抱怨被声明为
private byte[] messagePayload;
@Column(name="PAYLOAD")
public byte[] getMessagePayload() {
return messagePayload;
}
public void setMessagePayload(byte[] messagePayload) {
this.messagePayload = messagePayload;
}
在MySQL表的表声明为BLOB类型。为什么Hibernate不想映射它,为什么它坚持使用TINYBLOB?
感谢
'columnDefinition'是不可移植的,就是后来的标准。 “类型”在休眠时可用,但不在JPA中。 – 2012-02-15 19:48:49
我已经用EclipseLink和MySQL完成了第二次,并且可以验证它是否按预期工作。 – 2012-02-20 19:00:44
我已经添加了关于OP的更多信息的评论,因为OP提到了JPA/Hibernate标记,而不是它的工作原理。 – 2012-02-21 16:37:18