Ich speichere Bilder von 1MB und maximal 7mb in einer MySQL-Datenbank. Um dies zu tun, erstellte ich eine Tabelle mit einem Feld MEDIUMBLOB Typ mit einer Kapazität von 16,777,215 Bytes, die die gleichen 16 MB ist. Wenn ich Bilder speichern zu 2,2 MB bis es perfekt gespeichert ist, aber wenn Bilder größer sparend, aber nicht über die 7mb die folgende Fehlermeldung erhalten:Fehler: Daten zu lang für Spalte "imagen" in Zeile 1 mit Spalte "MEDIUMBLOB" in MySQL
com.mysql.jdbc.MysqlDataTruncation: Data truncation:
Data too long for column 'imagen' at row 1
Dies ist die Definition des Bildfeldes in meinem Unternehmen Bild:
@Entity
@Access(AccessType.FIELD)
@Table(name = "Imagen")
@XmlRootElement
public class Imagen implements Serializable {
// otros campos
@Lob
@Column(name = "imagen", columnDefinition = "mediumblob")
private byte[] imagen;
// getters and setters
}
Meine Repository-Klasse:
public interface ImagenRepository extends BaseRepository<Imagen, Integer> {
// other query operations
}
Basisklasse Repository:
@NoRepositoryBean
public interface BaseRepository<T, ID extends Serializable> extends Repository<T, ID>, Finder<T>, Counter {
public T save(T save);
public void delete(ID id);
public void delete(T entity);
public Optional<T> findOne(ID id);
}
Bild Tabelle:
CREATE TABLE Imagen (
id INT(10) NOT NULL AUTO_INCREMENT,
-- Otros campos
imagen MEDIUMBLOB,
type VARCHAR(10) COLLATE UTF8_SPANISH_CI,
PRIMARY KEY (id)
);
Für Abfrageoperationen und Persistenz Verwendung feder Daten-JPA.
Ich verstehe nicht, warum nicht Bilder von mehr als 2,2 MB speichern, bitte helfen Sie
Ich hatte bereits auf 160 MB erhöht, weil ich verstanden habe, dass es 10 mal die Größe der Spalte (16x10 = 160) sein sollte. Ich habe recht? – ferchop1089