logo       

Re: Recuperation d'image en BD via Hibernate: msg#00036

java.french.general

Subject: Re: Recuperation d'image en BD via Hibernate

Suite a tes conseils, j'ai essaye de passer par un type Blob.
Mais, chose etrange, le bean resultant de ma requete hibernate
select v from Visual as v where v.visual_id = :id
est null. Alors qu'il ne l'est pas quand je le cast en byte[].


Cependant j'ai fait un second test avec un byte[] : au lieu de faire
une requete qui recupere tous les champs (cf requete plus haut), je
fais une requete qui ne recupere que le champs "binary". Et la ca
fonctionne...

J'en deduis cela vient d'Hibernate. Aurais je homis qqchose dans mon
fichier de mapping ?
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd";>

<hibernate-mapping>

<class name="test.Visual" table="visual">

<id name="visual_id" type="long">
<column name="visual_id" not-null="true"/>
<generator class="identity"/>
</id>

<property name="visual_desc" type="string"/>
<property name="ui_cible" type="integer"/>
<property name="offer_id" type="long">
<column name="offer_id" not-null="true"/>
</property>
<property name="img" type="binary"/>

</class>

</hibernate-mapping>

en tout cas dans mon fichier de conf hibernate j'ai bien mis :
<property name="jdbc.use_streams_for_binary">true</property>

merci d'avance !

On 7/14/05, Patrice Godard <patrice.godard@xxxxxxxxxxx> wrote:
> Salut Laurent,
>
> Wednesday, July 13, 2005, 5:31:22 PM, tu disais:
>
> LD> Bonjour,
>
> LD> J'arrive à insérer une image gif dans ma BD via hibernate, mais
> LD> lorsque je la récupere elle est mal encodée.
> LD> Dans mon fichier de mapping j'utilise le type hibernate binary
> LD> Dans mon bean java j'utilise le type byte[]
>
> LD> récuperer un byte[] me permettrait ensuite d'afficher l'image dans ma
> LD> servlet via le code (testé et éprouvé) :
> LD> byte[] buffer = monbean.getImage();
> LD> OutputStream o = response.getOutputStream();
> LD> o.write(buffer, 0, buffer.length);
> LD> o.flush();
> LD> o.close();
>
> LD> Comment faire pour récuperer l'image ?
> LD> Est ce un pb d'encodage ?
>
> LD> J'ai suivi un peu la piste de l'encodage/decodage avec
> LD> celui Hexadecimal de Jakarta Commons Codec (Hex.encode() et
> LD> Hex.decode()), mais ca ne me sort pas l'image bien encodee...
>
> Je ne comprends pas bien.
> Il manque le positionnement du content-type HTML dans ton code.
> Moi je stocke mes images dans un BLOB et ça marche impec.
> Ensuite je récupère un InputStream sur de Blob que j'envoie au
> navigateur.
> J'ai juste eu quelques pbs pour créer des Blob avec Hibernate et
> Oracle mais je pense que je m'y suis mal pris.
> Je stocke le nom du fichier, le type mime (que me donne l'objet
> FileForm de Struts), et le flux binaire dans un blob.
>
> My 2 cents.
>
> Patrice
>
> --
>
>
>




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise