+1 امتیاز
قبل در برنامه نویسی توسط (12 امتیاز)
ویرایش شده قبل توسط
فایل persistence.xml در مورد هرکدام به چه شکل است؟ و چه کتابخانه هایی باید استفاده کرد؟

1 پاسخ

0 امتیاز
قبل توسط (130 امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

JPA چیزی نیست جزو مجموعه ای از API های استاندارد.

هرکدام از vendor ها اومدن این API ها روپیاده سازی کردند مانند:

Hibernate

EclipseLink

اما برای استفاده از Hibenrate توی پروژه تون شما دو روش در پیش دارید :

  • استفاده از خود تکنولوژی Hibernate که برای اینکار نیاز دارید  فایل hibernate.cfg.xml رو توی پروژه تون داشته باشید و تعریفش کنید
  • استفاده از JPA و مشخص کردن نوع پیاده سازی  در فایل Persistence.xml و در این فایل یک proprty وجود داره به صورت زیر درش دقیقا مشخص می کنید که از Hibernate می خوام استفاده کنم
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
    <!-- Define persistence unit -->
    <persistence-unit name="my-persistence-unit">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    </persistence-unit>
</persistence>

این عمده ترین تفاوت در فایل persistence.xml است

اما چه فرقی داره شما مستقیما سراغ خود تکنولوژی هایبرنت بروید یا از طریق JPA از این تکنولوژی استفاده کنید

باید بگم عمر هایبرنت خیلی بیشتر از JPA است  و پخته تر اونه . خیلی چیزایی در هایبرنت است و می تونید انجامش بدید که توی مجموعه API های استاندارد JPA و داکیومنت هاش نیست یا محدود تعریف شده

و بالطبع دست شما بازتره توی هایبرنت!

اما از طرف دیگه اگه از API های استاندارد JPA استفاده کنید چون این نوع API ها فقط با interface  ها سروکار داره وهرجایی تو پروژه تون اونها استفاده کنیدپروژه تون رو به این interface ها ( انتزاع ) وابسته می کنید نه پیاده سازی خاص ، در نتیجه پروژه شما در مقابل تغییرات آتی مصون تره یعنی اگه فردا به هر دلیلی بخواهید بجای هایبرنت از پیاده سازی دیگه ی استفاده کنید تغییرات خیلی کمی تو ی کدهاتون نیاز هست بدید

جدای از اینکه نوع پیاده سازی انتخابی شما چی هست در یک فایل persistence.xml  موارد زیر رو  بایستی مشخص و پیکربندی کنید ( تقریبا تو فایل hibernate.cfg.xml هم همین ها هست ) :

  • persistence unit  با این کار دارید بیان می کنید از چه دیتابیسی می خواهید استفاده کنید ، ممکنه توی یه پروژه از دوتا دیتا بیس متفاوت استفاده کنید به ازای هر کدام یک persistence unit  باید تعریف کنید

در داخل هر persistence unit  نیاز هست مواردی زیر دست کم مشخص کنید:

  • نام و نوع jdbc driver ی که قراره داخل پروژه تون استفاده کنید ( مثل postgresql  یا mysql )
  • آدرس url اون دیتابیسی که می خواهید بهش وصل بشید و قراره براتون connection  فیزیکی ایجاد کنه
  • نام کاربری جهت ورود به اون دیتابیس
  • رمز عبور جهت ورود به اون دیتابیس
  •  اگه از روش annotation برای مشخص کردن کلاس های entity خود ( یعنی کلاسهایی که قصد دارید state اونارو توی دیتابیس ذخیره کنید ) استفاده کرده باشید بایستی مشخص کنید توی کدوم پکیج ها دنبال اون کلاسها بگرده

این ها مینیم ویژگی هایی هست که شما توی فایل پیکربندی خودتون باید مشخص کنید

و البته یکی از مهم ترین چیزهایی که توی این مدل پروژه ها باید مشخص کنید مدیر تراکنش شما( transaction mamanger ) است . که امروزه جدای نوع و اندازه پروژه معمولا ازJTA استفاده می کنن .

قبل توسط (12 امتیاز)
بسیار عالی بود ممنونم
چطور میتونم کمک بیشتری بگیرم از شما؟
قبل توسط (130 امتیاز)
خواهش می کنم
همین جا من درخدمت تون هستم  دوست دارم سوالات و جوابها به اشتراک گذاشته بشه تا افراد حرفه ای تر از من بتونن نقدم کنن و صد البته شما هم بهتر راهنمایی میشید و بهترین جواب رو دریافت می کنید
این آدرس وبلاگ من توی ویرگوله گاهی مطالبی که خودم یاد می گیرم اینجا منتشر می کنم
https://virgool.io/@solmaz.oskouie

سوالات مشابه

0 امتیاز
3 پاسخ 875 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
2 پاسخ 1.8هزار بازدید
+1 امتیاز
3 پاسخ 1.6هزار بازدید
+5 امتیاز
1 پاسخ 4.4هزار بازدید
+1 امتیاز
1 پاسخ 1.1هزار بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط masoud shahhosseini_ (45 امتیاز)
0 امتیاز
1 پاسخ 615 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط kashi (7.2هزار امتیاز)
0 امتیاز
1 پاسخ 465 بازدید
0 امتیاز
0 پاسخ 756 بازدید
...