یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی با تخفیف ویژه، فقط با کد AI84 دوره هوش مصنوعی با تخفیف ویژه، فقط با کد AI84
🎯 ثبت نام

درس هشتم : آموزش کار با کلاس های سازنده Hibernate Generator Class

آموزش کار با کلاس های سازنده Hibernate Generator Class

زیر عنصر المنت id ، جهت تولید شناسه های منحصر به فرد ( unique identifier ) برای اشیای کلاس Persistent به کار میرود . کلاس های سازنده ( generat class ) زیادی درچهارچوب کاری Hibernate تعیین شده اند که از آنها می توانید برای تولید سریع کد برنامه استفاده کنید .
کلیه کلاس های generator ، رابطه کاربری org.hibernate.id.Identifier Generator را اجرا می کنند . همچنین ، برنامه نویس می تواند کلاس های سازنده دلخواه خود را با استفاده از رابطه رابط کاربری Identifier Generator ایجاد کند . چهارچوب کاری Hibernate ، کلاس های سازنده درون ساخته زیادی دارد که از آن می تواند به موارد زیر اشاره کرد :

  • assigned
  • increment
  • sequence
  • hilo
  • native
  • identity
  • seqhilo
  • uuid
  • guid
  • select
  • foreign
  • sequence-identity

در ادامه به تشریح و آموزش هریک از کلاس های سازنده فوق خواهیم پرداخت .

1)کلاس assigned :
درصورتی که کلاس generator برای برنامه تعیین نشده باشد ، این کلاس به صورت پیش فرض برای المنت فعال خواهد شد . در این حالت ، خود برنامه id را تعیین می کند . مثل کد زیر :

1
2
3
4
5
6
7
8
9
10
11
12
.... 
 <hibernate-mapping
  <class ...=""
    <id ...=""
     <generator class="assigned"></generator
    </id
             
.... 
             
  </class
 </hibernate-mapping>
                <button></button>

2)کلاس increment :
این کلاس در صورتی که هیچ پروسه ای دیگر ، اطلاعات به جدول وارد نکنند ، id های منحصر به فرد را تولید خواهد کرد . کلاس increment ، برای انواع داده ای short ، int ، long ، شناسه id تولید می کند . معمولا اولی که تولید می شود 1 بوده و یا واحد 1 افزایش پیدا می کند .
کد تعریف کلاس increment به صورت زیر است :

1
2
3
4
5
6
7
8
9
10
11
12
   .... 
<hibernate-mapping
 <class ...=""
   <id ...=""
    <generator class="increment"></generator
   </id
            
   ....
            
 </class
</hibernate-mapping>
               <button></button>

3)کلاس sequence :
این کلاس ، از ترتیب sequence پایگاه داده برای تولید شناسه های id استفاده می کند . اگر sequence در دیتابیس تعیین نشده باشد ، این کلاس به صورت اتوماتیک یک sequence تولید می کند .
برای مثال در پایگاه داده oracle ، کلاس sequence یک ترتیب به نام HIBERNATE SEQUENCE ایجاد می کند . این کلاس در پایگاه ها داده oracle ، DB2 ، SAP DB ، Mckoi و Postgre SQL از sequence استفاده می کند ، اما در دیتابیس interbase از generator استفاده می کند . ساختار دستوری کلاس sequence به صورت زیر است :

1
2
3
4
5
6
..... 
<id ...=""
 <generator class="sequence"></generator
</id
..... 
               <button></button>

برای ایجاد sequence دلخواه خود ، از زیر عنصر param المنت به صورت زیر استفاده کنید :

1
2
3
4
5
6
7
8
..... 
<id ...=""
 <generator class="sequence"
     <param name="sequence">your_sequence_name 
 </generator
</id
..... 
               <button></button>

4)کلاس hilo :
کلاس hilo ، از الگوریتم high and low ( شناسه با بیشترین و کمترین عدد ) برای ایجاد id جهت انواع داده ای short ، int ، long ، استفاده می کند . ساختار دستوری استفاده از کلاس hilo به تشریح زیر است :

1
2
3
4
5
6
..... 
<id ...=""
 <generator class="hilo"></generator
</id
..... 
               <button></button>

5)کلاس native :
کلاس native ، برحسب database ای که در برنامه استفاده می شود ، از استراتژی های identify ، sequence یا hilo استفاده خواهد کرد . ساختار دستوری استفاده از کلاس native به صورت زیر است :

1
2
3
4
5
6
..... 
<id ...=""
 <generator class="native"></generator
</id
..... 
               <button></button>

6) کلاس identify :
کلاس identify در پایگاه های داده Sybase ، My SQL ، MS SQL ، DB2 و Hypersonic SQL جهت پشتیبانی از id column استفاده می شود .
شناسه ( id ) بازگرداننده توسط کلاس identify از انواع int ، short یا long خواهد بود .

7) کلاس seghilo :
کلاس seqhilo از الگوریتم high and low برای sequence تعیین شده ، استفاده می کند . id برگشتی این کلاس از نوع int ، short یا long خواهد بود .

8)کلاس uvid :
کلاس uvid از الگوریتم 128 بیسی UVID برای تولید id ها ، استفاده می کند . id بازگردانده شده از این کلاس از انواع string بوده و به دلیل استفاده از Ip ، در سطح کل شبکه منحصر به فرد خواهد بود ، شناسه های UVID در فرمت هگزادمیکال و با طول 32 تعریف میشوند .

9)کلاس guid :
کلاس guid از GUID توسط دیتابیس که از نوع string باشد برای id ها استفاده می کند . کلاس guid، برروی پایگاه های داده MS SQL و MySQL کار میکند .

10)کلاس select :
کلاس select از کلید اصلی ( primary key ) که توسط رویدادهای پایگاه داده بازگردانده می شود ، برای تولید id استفاده می کند .

11)کلاس foreign :
کلاس foreign از object دیگری که مرتبط با object جاری بوده و با استفاده از ارتباط ، اقدام به تولید id می کند .

12)کلاس sequence-identify از یک استراتژی ترتیبی ( sequence ) خاص برای تولید id ها استفاده می کند . این کلاس فقط برروی پلتفرم oracle log پشتیبانی می شود .

1395/06/31 2804 1026
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...