مشخصات مقاله
درس هشتم : آموزش کار با کلاس های سازنده Hibernate Generator Class
آموزش کار با کلاس های سازنده Hibernate Generator Class
زیر عنصر
کلیه کلاس های 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 برای برنامه تعیین نشده باشد ، این کلاس به صورت پیش فرض برای المنت
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 پشتیبانی می شود .