2016-05-24 9 views
0

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

Antwort

0

Sie können Ihre Servereinstellungen für innodb_log_file_size in my.cnf erhöhen müssen. Dann starte MySQL neu.

+0

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

Verwandte Themen