چارچوب های ORM مانند Hibernate و سایر مجری های JPA می توانند به طور قابل توجهی توسعه لایه ماندگاری را ساده کنند. معرفی سطح انتزاع موجودیت به مدل سازی تمیز دامنه تجاری و پنهان کردن عبارات SQL زیرین که برای دستیابی به ماندگاری دامنه استفاده می شود ، کمک می کند. چنین رویکردی به ویژه در دامنه های بزرگ بسیار مفید است ، زیرا توسعه دهنده دیگر نیازی به ایجاد و نگهداری تمام دستورات SQL مورد استفاده برنامه ندارد.
فقط چند حاشیه نویسی JPA مانند
@Entity
/
@ManyToOne
/
@OneToMany
و غیره در کلاس های دامنه و
EntityManager
یا مخازن سفارشی برای به دست آوردن ریشه های جمع دامنه ، و شما آماده استفاده هستید. با این وجود ، اکثریت قریب به اتفاق موارد استفاده از تداوم را می توان در مدل دامنه توسط آبشارهای JPA و انجمن های پیمایش و انجام عملیات بر روی آنها انجام داد.
همه چیز با یک قیمت همراه است. در ازای توسعه آسان و پاک ، برخی از مسائل ممکن است دیر یا زود بوجود بیایند:
- مقدار زیادی از بیانیه های SQL صادر شده توسط بارگذاری بیش از حد خانم یعنی به دلیل N + 1 انتخاب کنید مسئله
- واکشی مشتاقانه انجام شد به روش ناکارآمد (یعنی fetchType =
FetchType.EAGER
در انجمن ها)
- راهی آسان برای تمام عبارات SQL را لیست کنید در برخی موارد استفاده از تماس موردی / خدماتی و به آنها را با خطوط دقیق کد مرتبط کنید
- حتی اگر برای برخی موارد استفاده از موارد برای بارگیری بهینه شده باشد …