ho ottenuto il seguente errorePerché non inserire JPA/hibernate map in 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
La colonna di ibernazione si lamenta è dichiarato come
private byte[] messagePayload;
@Column(name="PAYLOAD")
public byte[] getMessagePayload() {
return messagePayload;
}
public void setMessagePayload(byte[] messagePayload) {
this.messagePayload = messagePayload;
}
La tabella in tabella MySQL è dichiarato come un tipo BLOB. Perché Hibernate non vuole mapparlo e perché insiste a usare TINYBLOB?
Grazie
'columnDefinition' non è portabile, in seguito è di serie. 'type' è disponibile in ibernazione mentre non è in JPA. –
Ho fatto il secondo con EclipseLink e MySQL e posso verificare che funzioni come previsto. –
Ho aggiunto un commento per ulteriori informazioni alla risposta in quanto OP ha menzionato i tag JPA/Hibernate, non per il suo funzionamento. –