Peter Klimo píše v St 12. 07. 2006 v 14:50 +0200: > co s tym ma spolocne dialect ? > > problem je v tom, ze v hbm.xml musis specifikovat id a properties. > cez sql-insert sa da aj nahradit insert za storovanu proceduru. > co mi robi problem je, ze storovana procedura ocakava N+1 parametrov, kde n > je pocet properties a ta 1 je prave id .. > ked vyriesim toto, tak je po probleme .. > > jednoducho povedane potrebujem zo stavu > > hibernate -> volanie sekvencie -> priradenie id -> ulozenie > > urobit nasledovne > > hibernate -> volanie storovanej procedury, ktora interne priradi id a uklada > ..
Zdravím, Jen mně teď napadlo, že to asi potřebujete jen u některých dotazů a ne u všech:-) K tomu dialectu - když se podíváte jak funguje mysql tak zjistíte, že nepodporuje sequence. Zde je položka tzv. auto_increment. To znamená, že po tom co vložíte záznam si můžete zjistit s jakým ID byla vložena. A tohle přesně určuje dialect. Hibernate podporuje různé způsoby přidělování ID. Pokud nenajdete žádný, který by Vám umožňoval to co potřebujete, zkusil bych jít cestou vytvoření nového druhu a úpravou dialectu. A k těm mapováním kde chcete nechat přidělení na databázi nastavíte nový způsob přidělení ID. A pokud jej při obsluze v dialectu objevíte tak s ním budete pracovat jinak. Dialect obvykle odvodím od původního - např. PostgreSQLDialect. Nevýhodou tohoto řešení je, že budete muset pro každou podporovanou databázi upravit dialect (i když v podstatě asi stejně). Pokud se jedná jen o pár případů (tj. zrovna to jedno místo kde to dělá největší výkonnostní problémy) tak bych zkusil použít přímo SQL Query (session.createSQLQuery). Pokud by jste měl zájem tak naše společnost nabízí konzultantské služby a s hibernate máme bohaté zkušenosti. Petr Ferschmann SoftEU s.r.o. ----------------------------------- Sady Petatricatniku 31 301 00 Plzen Czech Republic ----------------------------------- Phone: +420 373 729 300 Fax: +420 373 729 301 Cell: +420 775 638 008 E-mail: [EMAIL PROTECTED]