Ahoj,
odpovídám na zprávu z pondělka, 18. září 2006,
kterou Martin Krajci napsal(a) v 9:42:04:

   Spring je webový framework, ne? Píšu desktopovou aplikaci.

   Jinak používat pro autoincrement speciální tabulku nechci, když to
databáze umí sama. U MySQL ten TopLink nepodporuje ani cizí klíče,
hibernate ano, má celkem myslím 3 různé dialekty dle verze a typu
MySQL. Známý říkal, že z Derby ten Toplink spolupracuje dobře. Ono jde
asi o to, že nelze očekávat skvělou podporu cizích DB, když Oracle
mají svou vlastní. Podle mě je to spíše reklamní tah, tak jako třeba
Windows zdarma do škol a pro studenty.

 Zkoušel jsem ProGuard, který umí z několika Jarů udělat jeden s tím,
že se vyhází, co není potřeba, ale jakmile se tam používá nějaká
reflexe, tak jsem v koncích. Ale nějak to řešit musím. Mám už v
aplikaci přes 40 jarů knihoven a zdá se mi to moc velké :-(

Persistance.xml mám standardní, tak jak jej generuje Netbeans IDE, jen
pro hibenrate jsem přidal:

 <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
 <property name="hibernate.show_sql" value="true"/>

 a pro Toplink:

 <property name="toplink.platform.class.name" 
value="oracle.toplink.essentials.platform.database.HSQLPlatform"/>
 <property name="toplink.logging.level" value="INFO"/>

 Generovat DB hibernate taky umí, ale zatím se toho nějak bojím, že to
nebude dle mých představ a zůstávám u toho, že se DB vygeneruje pomoci
mnou dodaných SQL scriptů.

--------------------------- Původní zpráva ---------------------------
 Odesilatel: Martin Krajci <[EMAIL PROTECTED]>
    Předmět: JPA a autoincrement
      Datum: 18. září 2006, 09:42:04 (GMT +0200)
    Přílohy: <none>
      msgid:[EMAIL PROTECTED]
    
M> Dobry den,

M> Tiez sa mi na Hibernate nepacilo mnozstovo jar-ov ale velkostou su 
M> porovnatelne s Toplinkom (3,5 MB vs 2,2 MB).

M> Ja som pouzil na perzistenciu Spring 2.0 + Hibernate / Toplink + HSQL /
M> MySQL a s autoincrementom som nemal problemy pri ani jednej kombinacii.

M> ID vyzeralo takto:

M> @Entity
M> public class Employee {
M>    
M>     @Id
M>     @GeneratedValue(strategy = GenerationType.TABLE)
M>     private long id;
M> ...

M> GenerationType.TABLE - je portable nad vsetkymi databazami.

M> Pre vas nezaujimavy Spring config takto:

M>             <bean 
M> class="org.springframework.orm.jpa.vendor.TopLinkJpaVendorAdapter">
M>             <!-- <bean 
M> class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> -->
M>                <property name="showSql" value="true"/>
M>                <property name="generateDdl" value="true"/>
M>                       
M>                <property name="databasePlatform" 
M> value="oracle.toplink.essentials.platform.database.HSQLPlatform"/>

M>             </bean>   

M> Zaujimava je ale ta properta 'generateDdl' ktora ak 'true' tak 
M> vygeneruje DB schemu nanovo. Ak nepouzivate Spring tak to spravi java2db.

M> Pisem to preto lebo mozno je chyba niekde v scheme kedze chcete pouzivat
M> Identity a vasa exception

M> 'Exception Description: SEQ_GEN_SEQUENCE ...'

M> vravi ze sa robi nieco so Sequence.

M> Takze by som pouzil GenerationType.TABLE a schemu si pregeneroval 
M> nanovo. JPA je pomerne nova, takze by som sa uistil ze mam najnovsi 
M> toplink-essentials.jar a tiez HSQL driver (hsqldb.jar) - mozno niesu u
M> vas kompatibilne.

M> Ja by som tomu Toplinku sancu dal :-)

M> Inac ako vyzara vas persistence.xml?

M> Martin Krajci


M> Tomáš Procházka wrote:
>> Ahoj,
>> odpovídám na zprávu z neděle, 17. září 2006,
>> kterou Petr Schreib napsal(a) v 13:38:41:
>>
>>    Hibernate funguje dle očekávání, TopLink bude nejspíše k ničemu,
>> ostatně mám podobné zkušenosti se vším od Oraclu. Jen mě vadí, že
>> Hibernate je 3x větší a je to hromada jarů, kdo se v tom pak má
>> orientovat.
>>
>> --------------------------- Původní zpráva ---------------------------
>>  Odesilatel: Petr Schreib <[EMAIL PROTECTED]>
>>     Předmět: JPA a autoincrement
>>       Datum: 17. září 2006, 13:38:41 (GMT +0200)
>>     Přílohy: <none>
>>       msgid:[EMAIL PROTECTED]
>>     
>> P> Zkuste přidat k @Id ještě anotaci @GeneratedValue(strategy =
>> P> GenerationType.IDENTITY). Pokud autoincrementaci zajišťuje přímo
>> P> databáze, mělo by to stačit.
>>
>> P> Petr
>>
>> P> On 9/17/06, Tomáš Procházka <[EMAIL PROTECTED]> wrote:
>>   
>>>> Ahoj.
>>>>
>>>> Nevíte někdo, zda jde Java Persistance API donutit, aby používalo
>>>> autoincrementaci primárního klíče? Respektive to umí databáze sama,
>>>> problém, je že když provedu:
>>>>
>>>>             EntityManager em = DataConn.getEM();
>>>>             em.getTransaction().begin();
>>>>
>>>>             Customers cust = new Customers();
>>>>             cust.setType((short)0);
>>>>             cust.setFirstname("Tomáš");
>>>>             cust.setLastname("Procházka");
>>>>             cust.setRc("811019/5148");
>>>>
>>>>             em.persist(cust);
>>>>             em.getTransaction().commit();
>>>>
>>>>
>>>> Tak TopLink vygeneruje:
>>>>
>>>> INSERT INTO CUSTOMERS (ID, TITLE, STREE, TYPE, CITY, DIC, ZIP, BNAME, 
>>>> STATE, LASTNAME, PHONE, ICO, EMAIL, FIRSTNAME, OPNUM, RC, DATE_CREATE)
>>>> VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
>>>>
>>>> A já bych se potřeboval zbavit toho ID, co se tam snaží vnutit.
>>>>
>>>> Zkoušel jsem:
>>>>
>>>>     @Id
>>>>     @Column(name = "ID", nullable = false,insertable = false,unique=true)
>>>>      private Integer id;
>>>>
>>>>
>>>> v definici entity a nepomohlo to :-(
>>>>
>>>>
>>>>
>>>> Datum: 11:44:06    17. září 2006
>>>> --
>>>> ---------------------------------------------------------------------
>>>>  TomášProcházka
>>>>
>>>>
>>>>  E-mail: [EMAIL PROTECTED]
>>>>     WWW: http://atom.sf.cz
>>>>     ICQ: 87147320
>>>> ---------------------------------------------------------------------
>>>>
>>>>
>>>>       
>>
>> ------------------------ Konec původní zprávy ------------------------
>>
>>   


M> ______________________________________________________________________
M> This email has been scanned by the MessageLabs Email Security System.
M> For more information please visit http://www.messagelabs.com/email 
M> ______________________________________________________________________

------------------------ Konec původní zprávy ------------------------

-- 
---------------------------------------------------------------------
 Tomáš Procházka


 E-mail: [EMAIL PROTECTED]
    WWW: http://atom.sf.cz
    ICQ: 87147320
---------------------------------------------------------------------

Odpovedet emailem