は私が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
コラムHibernateは
private byte[] messagePayload;
@Column(name="PAYLOAD")
public byte[] getMessagePayload() {
return messagePayload;
}
public void setMessagePayload(byte[] messagePayload) {
this.messagePayload = messagePayload;
}
MySQLのテーブル内のテーブルはBLOB型として宣言されているように宣言されて文句を言っている、次のエラーを得ました。なぜHibernateはそれにマップしたいのですが、なぜ私はTINYBLOBを使用すると主張していますか?
おかげ
'columnDefinition'は後に標準で、移植性がありません。 'type'はJPAにはないが、hibernateで利用可能です。 –
私はEclipseLinkとMySQLで2番目の作業を行い、期待通りに動作することを確認できます。 –
OPにはJPA/Hibernateというタグが記載されているので、その作業についてではなく、私は答えに追加のコメントを追加しました。 –