معرفی ORM گوگل به اسم Room
گوگل توی همایش IO امسال ORM خودشو به اسم Room برای اندروید معرفی کرد. این ORM یه قسمت از پازل Architecture Components هست که شامل LiveData , ViewModel و … میشه. در ادامه نحوهی استفاده شو توضیح میدم.
با این ORM واقعا کار راحت میشه و شبیه رتروفیت برای کوئریها کافیه یه Interface بنویسید و بقیه کارو خود ORM هندل میکنه.
بعد اینکه Entity و Dao و Database رو تعریف کردید، شبیه همون رتروفیت یا دگر میتونید ازش استفاده کنید.
مزیت خیلی خوبش اینه که وقتی کوئری مینویسید، اگر خطایی داشته باشه موقع کامپایل به شما اطلاع میده. یعنی با توجه به Entityهایی که تعیین کردید، میفهمه آیا جدولی که توی رشتهی SQL نوشتید وجود داره یا نه! اگر نبود، همون لحظه خطا میده و سریع میتونید درست کنید.
تازه برای همه چی نیاز نیست کوئری بنویسید، دیگه خودش Insert و Update و یه سری چیزارو میفهمه و فقط باید براش annotation مناسب بذارید
نکتهی خوبش اینه که هم با LiveData کار میکنه و هم با RxJava2!!!
البته هنوز نمیدونم برای کوئریهای پیچیده چطور میشه ازش استفاده کرد ولی حتما برای اونم فکری کردند. راستی حتما لازم نیست مقدار بازگشتی متدهای داخل Interface یک Entity باشند. میتونند کلاس معمولی جاوا باشند. خود ORM میفهمه که باید چیکار کنه.