# BufferedImage in JavaDB mit Hibernate und JPA



## Audio Anarchy (10. Okt 2008)

Hallo Forum, 

ich versuche wie im Titel beschrieben ein Bild in die Datenbank zu speichern. 
Leider bekomme ich von Hibernate folgende Fehlermeldung:


```
Bei dem Versuch, BLOB 'XX-RESOLVE-XX' auf die Länge 255 zu kürzen, ist ein Abschneidefehler aufgetreten
```

Mein Code sieht folgendermassen aus:



```
@Entity
public class objectImagePanelDB implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    
    @Lob
    private byte[] imgOut;
    ....
```



```
ByteArrayOutputStream baos = new ByteArrayOutputStream();
    
       try {
        ImageIO.write(imgOut, "jpg", baos);
        baos.flush();
        resultImageAsRawBytes = baos.toByteArray();
        baos.close();
    } catch (IOException ex) {
        Logger.getLogger(objectImagePanel.class.getName()).log(Level.SEVERE, null, ex);
    }

    objectImagePanelDB oIP = new objectImagePanelDB();
    oIP.setImgOut(resultImageAsRawBytes);
```


```
try {
            DBServiceFactory.getInstance().saveObjectImagePanel(oIP);  
    } catch (DBException e) {
        e.printStackTrace();
    }
    System.out.println("Bild in Datenbank geschrieben");
```


Wie bekomme ich ein Bild in die JavaDB? Ich mache da schon seit einigen Stunden rum, leider ohne Erfolg. 
Danke für Eure Hilfe


----------



## HoaX (11. Okt 2008)

das blob kann in der datenbank nur 255 bytes haben und deine daten sind mehr als diese 255. -> pass die spalte an (alter table)


----------



## Audio Anarchy (13. Okt 2008)

Danke für den Hinweis. Mit einer kleinen Modifikation geht es nun:


```
@Lob
    @Column(columnDefinition="BLOB")
    private byte[] imgOut;
```


----------

