1. Potrzebujemy odpowiedni sterownik JDBC, który możeby znaleźć standardowo w: "C:\Program Files\IBM\SQLLIB\java\db2jcc.jar"
2. W pliku konfiguracyjnym seam-gen musimy nanieść kilka zmian:
2.1. hibernate.connection.driver_class=com.ibm.db2.jcc.DB2Driver
2.2. hibernate.default_schema=ANDRZEJ
//oczywiście powinien być to odpowiednia wartość dla danej bazy
2.3. użytkownika i hasło pozostawić puste, ponieważ nie są wymagane przy łączeniu się z localhost'a
2.4. hibernate.connection.url=jdbc\:db2\:NAZWA_BAZY //jeśli używamy kreatora, podajemy oczywiście: jdbc:db2:NAZWA_BAZY
2.5. driver.jar=c\:/java_libs/db2jcc.jar
3. Po uruchomieniu polecenia: seam generate, posypie się jeden błąd, który niema znaczenia i cała operacja powinna zakończyć się sukcesem
4. Co mnie najbardziej zdziwiło, to fakt, że tak wygenerowany projekt w moim przypadku nie chciał się deployować na serwerze z powodu błędu:
2010-03-25 11:45:27,781 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/DB2Test3]] Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListenerPowodowanego przez:
org.jboss.seam.InstantiationException: Could not instantiate Seam component: DB2Test3EntityManagerFactory
Caused by: org.hibernate.HibernateException: Wrong column type: CO_CD, expected: varchar(3)Rozwiązaniem problemu była zmiana typu kolumn w bazie z CHARACTER na VARCHAR, przypuszczam, że wiąże się to z jakimiś niepasującymi dialektami, i bardzo możliwe, że istnieje lepsze rozwiązanie, aczkolwiek na chwilę obecną nie jest mi ono znane.
Mógłbyś wyjaśnić to zdanie: Ogólnie DB2, jak na komercyjne rozwiązanie, sprawia wiele problemów dla użytkownika, który ma pierwszy raz z nim styczność.? Co dokładnie było problemem? Samo działanie Hibernate nie wliczasz w to, prawda?
OdpowiedzUsuńChodziło mi bardziej o moje osobiste wrażenia, spodziewałem się chyba czegoś innego, czegoś co będzie się przyjemnie obsługiwało już od samego początku. Powoli zaczynam się przekonywać... możliwe, że brakowało mi po prostu większego poziomu intuicyjności w obsłudze.
OdpowiedzUsuń