Wstęp
Mechanizm wtyczek dostarcza narzędzi, które umożliwiają wtyczkom korzystanie z bazy danych. Zalecanym sposobem jest używanie biblioteki Hibernate.
Wtyczka może uzyskać dostęp do jakiejkolwiek bazy danych, jednak w tym rozdziale opisana zostanie tylko obsługa systemowej bazy danych.
Konfiguracja obiektów
W rozdziale Konfiguracja kontekstu wtyczki opisane zostało, w jaki sposób dodawać beany do kontekstu. Obsługa bazy danych bazować będzie na integracji SpringFramework i Hibernate. Opisana zostanie konfiguracja XML.
Aby zarejestrować SessionFactory wystarczy dodać taką deklarację bean'a. Obiekt automatycznie konfiguruje używany dialect, datasource etc.
<bean id="sessionFactory" class="com.suncode.pwfl.persistence.support.hibernate.SystemBaseSessionFactoryBean"> <property name="packagesToScan" value="com.suncode.plugin.tutorial" /> </bean>
Klasa com.suncode.pwfl.persistence.support.hibernate.SystemBaseSessionFactoryBean bazuje na klasie LocalSessionFactoryBean. Tam również znajduje się dokumentacja.
Prawdopodobnie chcemy także wykorzystać inne mechanizmy, które upraszczają kod transakcyjny:
<!-- adnotacje @Transactional --> <tx:annotation-driven/> <!-- TransactionManager --> <bean name="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean>
Teraz należy stworzyć naszą encję:
@Entity @Table(name = "pm_tutorial_note") @SequenceGenerator(name = "note", sequenceName = "pm_tutorial_note_id") public class Note { @Id @GeneratedValue(strategy = GenerationType.AUTO, generator = "note") private Long id; @Column(length = 2000) private String text; // getters... // setters... }
Nazwy tabel, kolumn i sequencerów nie powinny przekraczać 30 znaków (limit Oracle)