Salut a tous 
j'ai la table suivante :
	
	| 12
 3
 4
 5
 6
 
 | CREATE TABLE gallet
(
  nom_gallet character varying(20) NOT NULL,
  img_gallet bytea,
  CONSTRAINT pk_gallet PRIMARY KEY (nom_gallet)
) | 
  mappé par le code
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 
 |  
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
   "-//Hibernate/Hibernate Mapping DTD//EN"
   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
 
<hibernate-mapping package="hibernateClass">
   <class
      name="Gallet"
      table="gallet"
   >
      <meta attribute="sync-DAO">false</meta>
      <id
         name="nom_gallet"
         type="string"
         column="nom_gallet"
      >
 
      </id>
 
      <property
         name="ImgGallet"
         column="img_gallet"
         type="java.sql.Blob"
         not-null="false"
      />
         <set name="InfoModeleAvions" inverse="true">
         <key column="nom_gallet"/>
         <one-to-many class="InfoModeleAvion"/>
      </set>
   </class>   
</hibernate-mapping> | 
 j'ai mis comme type pour imgGallet java.sql.Blob , je ne sais si exact ou pas .
Bref je rencontre une exception lorsque j'essaie d'inserer un gallet dans la table
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | Session s=HibernateUtil.currentSession();
      Transaction tx = s.beginTransaction();
      Gallet g=new Gallet();
      File fd = new File("c:\\img.jpg");
      FileInputStream fis;
      try {
         fis = new FileInputStream(fd);
         byte[] b = new byte[512];
      fis.read(b);
           g.setNom_gallet("petit gallet de test");
      g.setImgGallet(Hibernate.createBlob(b));
      s.save(g);
      tx.commit();
      HibernateUtil.closeSession(); | 
 
	
	| 12
 3
 4
 5
 6
 7
 8
 
 | Caused by: java.sql.BatchUpdateException: L'élément du batch 0 insert into gallet (img_gallet, nom_gallet) values (17027, petit gallet de test) a été annulé. Appeler getNextException pour en connaître la cause.
   at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2531)
   at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1344)
   at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:343)
   at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2668)
   at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
   at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
   ... 8 more | 
 je ne sais si l'erreur provient du fichier de mappage ou de la maniere utilisé pour insérer le blob .
J'ai inserer ces 2 lignes dans le fichier .config la l'exception a changé 
	
	| 12
 3
 
 | <property name="hibernate.jdbc.batch_size">0</property>
 
      <property name="hibernate.jdbc.use_streams_for_binary">true</property> | 
 l'exception
	
	org.postgresql.util.PSQLException: ERREUR: la colonne « img_gallet » est de type bytea mais l'expression est de type bigint
 Merci d'avance pour votre aide.
Cordialement
						
					
Partager