اپلیکیشن اندرویدی فلشکارت آموزشی ORM: مقایسه Hibernate و JPA
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره ORM: مقایسه Hibernate و JPA
موضوع کلی: برنامه نویسی
موضوع میانی: ORM (Object-Relational Mapping)
📋 سرفصلهای دوره
- 1. مقدمهای بر پایگاههای داده رابطهای
- 2. مبانی SQL: دستورات DDL و DML
- 3. معایب کار مستقیم با JDBC
- 4. معرفی Object-Relational Mapping (ORM)
- 5. چرا از ORM استفاده کنیم؟ مزایا و معایب
- 6. مفهوم Persistence و Persistence Layer
- 7. آشنایی با Java Persistence API (JPA)
- 8. JPA به عنوان یک استاندارد: نقش و اهمیت آن
- 9. پیادهسازیهای JPA: معرفی Hibernate
- 10. تاریخچه و تکامل Hibernate
- 11. اکوسیستم JPA/Hibernate
- 12. پیشنیازها: JDK, Maven/Gradle
- 13. راهاندازی پروژه ساده JPA/Hibernate با Maven
- 14. پیکربندی اولیه فایل persistence.xml
- 15. تعریف واحد Persistence (Persistence Unit)
- 16. اتصال به پایگاه داده: تنظیمات DataSource
- 17. ساختار پروژه و دایرکتوریها
- 18. معرفی EntityManagerFactory
- 19. معرفی EntityManager
- 20. تفاوت EntityManager و Session در Hibernate
- 21. تعریف یک کلاس Entity ساده
- 22. Annotation پایه: @Entity
- 23. Annotation پایه: @Id
- 24. Annotation پایه: @GeneratedValue و استراتژیها
- 25. Annotation پایه: @Table و @Column
- 26. نگاشت انواع دادهای اولیه (Basic Types)
- 27. نگاشت انواع دادهای تاریخ و زمان (Date/Time Types)
- 28. نگاشت اشیاء Embeddable با @Embedded و @Embeddable
- 29. استفاده از @AttributeOverride برای Embeddable ها
- 30. عملیات CRUD: ایجاد (Persist) یک Entity
- 31. عملیات CRUD: بازیابی (Find) یک Entity
- 32. عملیات CRUD: بهروزرسانی (Merge) یک Entity
- 33. عملیات CRUD: حذف (Remove) یک Entity
- 34. درک مفهوم Persistence Context
- 35. حالتهای یک Entity: New, Managed, Detached, Removed
- 36. متدهای flush() و refresh()
- 37. مفاهیم اولیه تراکنشها (Transactions)
- 38. مدیریت تراکنشها با JTA و Resource-Local
- 39. Annotation: @Transactional
- 40. نگاشت رابطه یک به یک (One-to-One Mapping)
- 41. One-to-One: ارتباط مالک و غیرمالک (Owning vs. Inverse Side)
- 42. One-to-One: با کلید خارجی مشترک (Shared Primary Key)
- 43. نگاشت رابطه یک به چند (One-to-Many Mapping)
- 44. نگاشت رابطه چند به یک (Many-to-One Mapping)
- 45. Many-to-One: بهترین روش برای طرف مالک
- 46. One-to-Many با لیست (List) و مجموعه (Set)
- 47. نگاشت رابطه چند به چند (Many-to-Many Mapping)
- 48. Many-to-Many: جدول واسط (Join Table)
- 49. پیچیدگیهای Many-to-Many و راهکارهای جایگزین
- 50. استراتژیهای fetch: بارگذاری Lazy و Eager
- 51. مشکل N+1 در بارگذاری و راه حلها
- 52. استراتژی وراثت: Single Table (@Inheritance(strategy=SINGLE_TABLE))
- 53. استراتژی وراثت: Joined Table (@Inheritance(strategy=JOINED))
- 54. استراتژی وراثت: Table Per Class (@Inheritance(strategy=TABLE_PER_CLASS))
- 55. مقایسه استراتژیهای وراثت و انتخاب بهترین گزینه
- 56. معرفی زبان JPQL (Java Persistence Query Language)
- 57. نوشتن کوئریهای JPQL برای بازیابی داده
- 58. پارامترهای نامی و موقعیتی در JPQL
- 59. استفاده از JOIN FETCH در JPQL
- 60. توابع تجمعی و عبارات GROUP BY در JPQL
- 61. معرفی Criteria API: مزایا و معایب
- 62. ساخت کوئریهای Type-Safe با Criteria API
- 63. نوشتن کوئریهای Native SQL
- 64. استفاده از Named Queries: XML و Annotation
- 65. معرفی L1 Cache (Persistence Context Cache)
- 66. معرفی L2 Cache (Shared Cache) در Hibernate
- 67. پیکربندی L2 Cache: Ehcache و Infinispan
- 68. استراتژیهای L2 Cache: Read Only, Nonstrict Read Write, Read Write
- 69. قفلگذاری خوشبینانه (Optimistic Locking) با @Version
- 70. قفلگذاری بدبینانه (Pessimistic Locking)
- 71. مدیریت تراکنشها: ACID Properties
- 72. سطوح ایزولاسیون تراکنشها
- 73. مدیریت تراکنش برنامهای (Programmatic) در مقابل اعلامی (Declarative)
- 74. تفاوت Session و EntityManager
- 75. استفاده از Session در Hibernate API (جدای از JPA)
- 76. Hibernate Filters
- 77. رویدادها و شنوندهها (Events and Listeners) در Hibernate
- 78. Batch Processing: Batch Inserts و Batch Updates
- 79. استفاده از ScrollableResults و ResultTransformer (ویژگیهای Hibernate)
- 80. معرفی Spring Data JPA: سادهسازی دسترسی به داده
- 81. ایجاد Repository با Spring Data JPA
- 82. متدهای Query Derived در Spring Data JPA
- 83. استفاده از @Query در Spring Data JPA
- 84. Pagination و Sorting با Spring Data JPA
- 85. مزایای Spring Data JPA در توسعه سریع
- 86. مقایسه رویکردهای JPA و Hibernate-Specific
- 87. انتخاب بین JPA و Hibernate: چه زمانی هر کدام مناسب است؟
- 88. بهترین روشها برای طراحی Entity
- 89. بهترین روشها برای نگاشت روابط پیچیده
- 90. مقابله با مشکل LazyInitializationException
- 91. مقابله با مشکل Detached Entity
- 92. استراتژیهای واکشی (Fetch Strategies) و بهینهسازی
- 93. ابزارهای پروفایلینگ و مانیتورینگ Hibernate
- 94. تست واحد (Unit Testing) Entity ها
- 95. تست یکپارچهسازی (Integration Testing) با پایگاه داده Embeddable
- 96. عیبیابی مشکلات رایج در ORM
- 97. تنظیم Log Level در Hibernate برای عیبیابی
- 98. نکات امنیتی در استفاده از ORM
- 99. مروری بر ORM های جایگزین (مانند EclipseLink, OpenJPA)
- 100. جمعبندی و چشمانداز آینده ORM
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.