Tidak yakin apakah saya mengerti TransactionAwarePersistenceManagerFactoryProxy

192

Saya mencoba menggunakan org.springframework.orm.jdo.TransactionAwarePersistenceManagerFactoryProxydalam 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.getPersistenceManagerakan lebih cocok dengan kebutuhan saya? Dapat getObjectmengembalikan nol?

megazord
sumber
193
Lol! Maaf tidak bisa menahannya. Aku hampir menangis ketika aku melihat nama objeknya.
Eric des Courtis
133
Dan ini, anak-anak terkasih, itulah mengapa Jawa harus berhenti memakai narkoba.
Griwes
48
Anda tahu Anda sudah terlalu lama berada di dunia Java ketika nama-nama seperti ini sepertinya tidak masuk akal ...!
Brian
27
Kawan Hai teman-teman, dengarkan. Anda membuat kesalahan pemula lagi. Spring Framework bukan Java dan Java bukan Spring framework. Jangan membingungkan mereka.
Torben
49
Mengenai pertanyaan awal: ini adalah jenis trolling berkualitas tinggi yang benar-benar dapat saya hargai.
Torben

Jawaban:

20

Jawaban tersedia langsung pada dokumentasi

Saya menyadari itu dapat membantu membuat DAO saya berfungsi dengan JDO PersistenceManagerFactory.

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.

Dapatkah saya masih menggunakannya untuk mengakses pabrik saya untuk membuat manajer persistensi yang sadar transaksi

DAO dapat dengan mulus beralih antara JNDI PersistenceManagerFactory dan proksi ini untuk PersistenceManagerFactory lokal.

Jika objek yang dikelola oleh pabrik adalah singleton, apakah ini mengubah keadaan? Mengapa tidak langsung mengakses PersistenceManagerFactory secara langsung?

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.

Chand Priyankara
sumber