Saya mencoba menggunakan org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxy
dalam proyek Musim Semi saya, tetapi saya tidak yakin bagaimana menggunakannya atau apakah itu persis apa yang saya cari. Saya menyadari itu dapat membantu membuat DAO saya berfungsi dengan JDO sederhana PersistenceManagerFactory
. Pertanyaan lain adalah: apa yang terjadi jika proxy tidak dibuat dengan benar? Bisakah saya masih menggunakannya untuk mengakses pabrik saya untuk membuat manajer persistensi yang sadar transaksi? Jika objek yang dikelola oleh pabrik adalah singleton, apakah ini mengubah keadaan? Mengapa tidak langsung mengakses PersistenceManagerFactory secara langsung? Mungkin PersistenceManagerFactoryUtils.getPersistenceManager
akan lebih cocok dengan kebutuhan saya? Dapat getObject
mengembalikan nol?
192
Jawaban:
Jawaban tersedia langsung pada dokumentasi
Iya. Proksi TransactionAwarePersistenceManagerFactoryProxy memungkinkan DAO bekerja dengan referensi JDO PersistenceManagerFactory, sambil tetap berpartisipasi dalam sumber daya dan manajemen transaksi Spring (atau server J2EE). Anda pasti dapat menggunakannya di aplikasi Anda. Tetapi tanpa mengetahui kebutuhan pasti Anda, kami tidak dapat mengkonfirmasi lebih lanjut.
DAO dapat dengan mulus beralih antara JNDI PersistenceManagerFactory dan proksi ini untuk PersistenceManagerFactory lokal.
Biasanya lebih baik untuk menulis DAO Anda yang berbasis JDO dengan Spring's JdoTemplate, menawarkan manfaat seperti pengecualian akses data yang konsisten daripada JDOExceptions pada layer DAO. Namun, sumber daya dan manajemen transaksi Spring (dan Injeksi Ketergantungan) akan bekerja untuk DAO yang ditulis terhadap API JDO juga.
sumber