Académique Documents
Professionnel Documents
Culture Documents
Cette FAQ a t ralise partir des questions frquemment poses sur les forums java de www.developpez.com et de l'exprience personnelle des auteurs. Je tiens souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prtend pas non plus tre complte. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rdacteur, lisez les modalits de participation. Bonne lecture tous, L'quipe Java
La FAQ Hibernate
1. 2. 3. 4.
Informations gnrales (5) ..................................................................................................................................... 4 Gnralits (5) ........................................................................................................................................................6 Les fichiers de config (8) ....................................................................................................................................... 8 Les fichiers de mapping (7) ................................................................................................................................. 12 4.1. La gnration (3) ......................................................................................................................................... 15 5. Les objets (5) ....................................................................................................................................................... 17 6. Utilisation (23) ...................................................................................................................................................... 19 6.1. Le language HQL (6) ...................................................................................................................................22 6.2. Les Criteria (9) .............................................................................................................................................24 7. Divers (10) ............................................................................................................................................................27 7.1. Exceptions (6) .............................................................................................................................................. 28
-3Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
-4Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
LLC. Sinon vous encourez selon la loi jusqu' 3 ans de prison et jusqu' 300 000 E de dommages et intrts. Cette page est dpose la SACD.
Remerciements
Auteur : Baptiste Wicht Un grand merci tous ceux qui ont pris de leur temps pour la ralisation de cette FAQ. Remerciements galement aux personnes qui ont relu les textes pour supprimer un maximum de fautes de franais. Aux visiteurs : Remerciements enfin tous ceux qui ont consult cette FAQ, et qui, par leurs remarques, nous ont aid la perfectionner.
-5Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
En plus de votre driver, il vous faut aussi les librairies suivantes : Jakarta Commons Logging Jakarta Commons Collections Log4j dom4j Jta asm cglib.jar
Il est noter aussi que les dernires versions d'Hibernate fournissent dj toutes ces librairies. Pour les utiliser, il vous suffira des les ajouter au classPath.
-7Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
-8Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
Base de donnes DB2 DB2 AS/400 DB2 OS390 PostgreSQL MySQL Oracle (toute version) Oracle 9/10g Sybase Sybase Anywhere MS SQL Server SAP DB Informix HypersonicSQL Ingres Progress Mckoi SQL Interbase Pointbase FrontBase Firebird
Dialecte net.sf.hibernate.dialect.DB2Dialect net.sf.hibernate.dialect.DB2400Dialect net.sf.hibernate.dialect.DB2390Dialect net.sf.hibernate.dialect.PostgreSQLDialect net.sf.hibernate.dialect.MySQLDialect net.sf.hibernate.dialect.OracleDialect net.sf.hibernate.dialect.Oracle9Dialect net.sf.hibernate.dialect.SybaseDialect net.sf.hibernate.dialect.SybaseAnywhereDialect net.sf.hibernate.dialect.SQLServerDialect net.sf.hibernate.dialect.SAPDBDialect net.sf.hibernate.dialect.InformixDialect net.sf.hibernate.dialect.HSQLDialect net.sf.hibernate.dialect.IngresDialect net.sf.hibernate.dialect.ProgressDialect net.sf.hibernate.dialect.MckoiDialect net.sf.hibernate.dialect.InterbaseDialect net.sf.hibernate.dialect.PointbaseDialect net.sf.hibernate.dialect.FrontbaseDialect net.sf.hibernate.dialect.FirebirdDialect
-9Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
hibernate.c3p0.timeout=Temps pendant lequel une connexion peut tre utilise avant d'tre libre. 0 signifie qu'une connexion n'expire pas. hibernate.c3p0.max_statements=La taille du cache de statements de C3P0. 0 signifie qu'on dsactive le cache.
Vous pouvez aussi configurer C3P0 dans le fichier hibernate.cfg.xml. La seule diffrence rside dans le fait qu'une proprit se prsente ainsi :
<property name="c3p0.max_size">100</property>
- 10 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
Vous ajouterez cette ligne autant de fois que vous aurez de fichier de mapping.
Si vous utilisez un nom, Hibernate va tenter de faire le binding avec JNDI ce qui va vous poser problme si vous n'avez pas de contexte JNDI configur.
- 11 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
La seule chose que nous lui disons pour le moment est quelle classe (un simple javaBean) correspond quelle table. Le nom de ces fichiers doit se terminer par .hbm.xml pour qu'Hibernate sache que c'est un fichier de mapping. De plus, par convention, on crit un fichier de mapping par classe de persistance. lien : Comment doivent tre faites mes classes de persistance ?
Comme vous le voyez, c'est trs simple, il vous juste associer le nom de la variable du Javabean au nom de la colonne de la base de donnes.
- 12 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
Il faut faire trs attention la casse des variables et de leurs getters/setters. Un nom de variable commence par une minuscule et le nom de son getter est form de get suivi du nom de la variable avec la premire lettre en majuscule. Si vous ne respectez cette casse, Hibernate ne vas pas trouver vos proprits et ne pourra donc pas fonctionner correctement. lien : Pourquoi est-ce que j'obtiens une erreur lorsque j'utilise un type primitif dans mon javabean ?
Ou Ceci :
<id column="nomColumn" name="unNom" type="LeType" > </id>
- 13 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
- 14 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
Sommaire > Les fichiers de mapping > La gnration Comment gnrer les fichiers de mapping depuis les classes ?
Auteur : Baptiste Wicht Vous pouvez gnrer directement les fichiers de mapping depuis vos classes Java avec un outil intgr dans Hibernate (MapGenerator). L'emploi de cet utilitaire est trs simple, il vous suffit de lancer la ligne de commande suivante :
java -cp classpath_contenant_hibernate_et_vos_classes net.sf.hibernate.tool.class2hbm.MapGenerator options et noms_des_classes
La principale option est la configuration du fichier de sortie : --output=Fichier_de_sortie lien : Plus d'infos sur les outils Hibernate
Les options possibles sont : --output=repertoire : Rpertoire des fichiers gnrs --config=fichier_config : fichier de configuration de la gnration Ce fichier permet entre autres, de configurer le package des classe gnres et de modifier la porte des setters. Pour plus d'infos sur ce fichier de configuration (il est optionnel), je vous invite lire ce qu'en dit la documentation officielle lien : Plus d'infos sur les outils Hibernate
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
export.create(true, true);
Vous pouvez aussi utiliser SchemaUpdate pour mettre jour le schma et SchemaValidator pour vrifier qu'il est correct. lien : Plus d'infos sur cet outil
- 16 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
public static void registerHibernateConverter(XStream xstream) { xstream.registerConverter(new CollectionConverter(xstream.getMapper()) { public boolean canConvert(Class type) { return type == PersistentSet.class; } }); xstream.aliasType("java.util.Set", PersistentSet.class); xstream.registerConverter(new CollectionConverter(xstream.getMapper()) { public boolean canConvert(Class type) { return type == PersistentBag.class; } }); xstream.aliasType("java.util.ArrayList", PersistentBag.class); xstream.registerConverter(new CollectionConverter(xstream.getMapper()) { public boolean canConvert(Class type) { return type == PersistentList.class; } }); xstream.aliasType("java.util.ArrayList", PersistentList.class); xstream.registerConverter(new MapConverter(xstream.getMapper()) { public boolean canConvert(Class type) { return type == PersistentMap.class; } }); xstream.aliasType("java.util.HashMap", PersistentMap.class); xstream.registerConverter(new MapConverter(xstream.getMapper()) { public boolean canConvert(Class type) { return type == PersistentSortedMap.class; } }); xstream.aliasType("java.util.SortedMap", PersistentSortedMap.class); xstream.registerConverter(new CollectionConverter(xstream.getMapper()) { public boolean canConvert(Class type) { return type == PersistentSortedSet.class; } }); xstream.aliasType("java.util.SortedSet", PersistentSortedSet.class);
Et voici comment utiliser cette mthode pour rcuprer un objet exempt de tout code Hibernate :
public static<T> Object deepCopyObject(T o) { XStream xstream = new XStream(); xstream.autodetectAnnotations(true); registerHibernateConverter(xstream); String xml = xstream.toXML(o); XStream xstreamOut = new XStream(); T newObject = (T) xstreamOut.fromXML(xml); return newObject; }
Vous avez maintenant une copie conforme de votre objet au format pur POJO.
- 18 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
new Configuration().configure() charge tout simplement les paramtres de configuration d'Hibernate dans la classe. Ensuite, partir de cette classe, on cr la factory. Pour obtenir une session partir de cette factory, il suffit d'appeller openSession :
Session session = factory.openSession();
Vous disposez maintenant d'une session sur laquelle vous allez pouvoir travailler.
Il ne faut pas oublier de committer les changements de la transaction via la mthode commit() :
session.getTransaction().commit();
- 19 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
session.refresh(votreObjet);
Si c'est une requte de mise jour, vous pouvez utiliser executeUpdate pour l'excuter ou sinon, utiliser list() pour rcuprer les rsultats lien : Pour plus d'infos
Ensuite, vous pouvez le mettre comme tout autre objet dans une classe persistante et la sauver. Il est vident que le champ dans le fichier de mapping doit tre de type blob.
Pourquoi rien n'est modifi sur la base bien que j'utilise save ?
Auteur : Baptiste Wicht La mthode save est l pour dire Hibernate que cet objet va tre sauv, mais il faut encapsuler ces sauvegardes dans un transaction. Avant tout changement, il vous faut donc dmarrer une transaction et committer cette transaction la fin :
Transaction tc = session.beginTransaction() ; //Diffrentes modifs tc.commit() ;
- 20 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
Ainsi, les changements seront rpercuts dans la base de donnes. lien : Qu'est ce qu'une transaction ?
- 21 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
Exemple :
FROM infos.Contact contact WHERE contact.nom = 'Dupont'
Cette requte slectionne tous les contacts, dans la classe infos.Contact, ayant comme nom Dupont. Vous remarquerez l'utilisation d'un alias essentiel si on fait rfrence la classe dans diffrents endroits de la requte. lien : Plus d'infos lien : Comment excuter du code HQL ? lien : Les requtes HQL sont-elles sensibles la casse ?
Ensuite, si c'est une requte de slection, vous pouvez rcuprer les rsultats avec la mthode list() ou alors excuter la requte avec la mthode executeUpdate().
- 22 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
Ainsi FrOm est tout fait gal FROM et from. Mais from Cat n'est pas gal from cAt.
- 23 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
Ensuite, pour rcuprer les rsultats de la recherche, vous pouvez employer la mthode list() qui va vous renvoyer les rsultats sous forme d'une liste (List).
List results = criteria.list();
Vous avez maintenant tous vos rsultats sous forme d'objet dans votre liste. lien : Comment rcuprer le rsultat d'un Criteria dans un Set ?
Vous pouvez employer encore d'autres restrictions, telles que between ou lt (less than). lien : Comment grouper les restrictions de manire logique ?
- 24 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
- 25 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
Ainsi, tous les lments de votre liste se trouveront exemptes de doublons dans votre Set.
- 26 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
- 27 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
Sommaire > Divers > Exceptions Comment rsoudre l'erreur HQL : net.sf.hibernate.QueryException: undefined alias ?
Auteur : minosis Un alias de classe doit tre cr. Contrairement au SQL, le HQL impose la plupart du temps d'utiliser des alias des objets sur lesquels on travaille pour en manipuler leurs membres.
SELECT produits.reference,produits.titre FROM stock.Produits produits WHERE produits.prix > 50
Pourquoi est-ce que j'obtiens une erreur lorsque j'utilise un type primitif dans mon javabean ?
Auteur : Baptiste Wicht Tout simplement, parce qu'il ne faut pas employer des types primitifs, Hibernate n'acceptant que les types Serializable. Il vous faut employer des types srializables, Integer par exemple. C'est pareil pour boolean, double, long, . Il vous faut toujours employer un type qui soit srializable.
Pourquoi est-ce qu'Hibernate ne fonctionne pas avec toute les version de MySql ?
Auteur : Baptiste Wicht Certaines versions de Mysql ne fonctionnent pas correctement avec les preparedStatement. Il faut donc dsactiver les preparedStatement.
- 28 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/
La FAQ Hibernate
Pour cela, il vous faut ajouter useServerPrepStmts=false l'url de connexion votre base de donnes.
Pourquoi est-ce que j'obtiens une OutOfMemory lors de l'insertion de beaucoup d'objets ?
Auteur : Baptiste Wicht Tout simplement parce qu'Hibernate va devoir stocker tout vos objets dans le cache et que cela va demander normment de mmoire si vous avez beaucoup d'objet. Comment y remdier ? Il faut procder une insertion par paquet. C'est--dire que tous les 20 (taille d'un paquet JDBC, mais vous pouvez mettre autre chose) insertions, il faut faire un flush de la session et un clear du cache :
for(int index = 0 ; index < 100000 ; index++){ Od objet = new Od(/* Paramtres divers */); session.save(objet); if(index % 20 == 0){ session.flush(); session.clear(); }
Ainsi vous aurez des petits paquets et un risque quasi nul de dpassement mmoire.
- 29 Les sources prsentes sur cette page sont libres de droits et vous pouvez les utiliser votre convenance. Par contre, la page de prsentation constitue une uvre intellectuelle protge par les droits d'auteur. Copyright 2006 - 2009 Developpez LLC. Tous droits rservs Developpez LLC. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://java.developpez.com/faq/hibernate/