2009-07-24 11 views
4

Je veux savoir quelle est la meilleure façon de stocker une image avec l'aide de mise en veille prolongée (en MySQL) J'ai cette classe Mappingmagasin et récupérer l'image par Hibernate

@Entity 
@Table(name = "picture") 
public class PictureEntity implements Serializable { 

    @Id 
    @Column(name = "id") 
    @GeneratedValue 
    private int id; 
    @Column(name = "format", length = 8) 
    private String format; 
    //@Basic(fetch = FetchType.LAZY) 
    @Lob 
    @Column(name = "context", nullable = true, columnDefinition = "mediumblob") 
    private java.sql.Blob myBlobAttribute; // or byte[] no diff 
    @ManyToOne(fetch = FetchType.EAGER) 
    @JoinColumn(name = "branch_fk", referencedColumnName = "id", nullable = false) 
    private BranchEntity branch; 

Aussi, j'ai PictureDAO; Je veux savoir comment dois-je mettre en œuvre mon PictureDAO pour enregistrer et récupérer l'image.

+0

définir/obtenir des valeurs myBlobAttribute ne le fait pas? Quelles erreurs avez-vous? qu'avez-vous essayé? em.persist (entité), em.find (entité, id) –

Répondre

5

La version avec le tableau d'octets est simple.

public class PictureEntity implements Serializable { 
    private byte[] imageBytes; 

    public BufferedImage getImage() { 
     InputStream in = new ByteArrayInputStream(imageBytes); 
     return ImageIO.read(in); 
    } 

    public void setImage(BufferedImage image) { 
     ByteArrayOutputStream out = new ByteArrayOutputStream(); 
     ImageIO.write(image, "PNG" /* for instance */, out); 
     imageBytes = out.toByteArray(); 
    } 
} 
+0

? vous oubliez de terminer ou vous voulez écrire trop court? – Am1rr3zA

+0

Désolé, j'ai envoyé le formulaire par erreur. –

+0

Tanx pour vous Modifier mais ça ne m'aide pas Je veux du setter et du getter Je veux l'implémentation de PictureDAo – Am1rr3zA

Questions connexes