: شما در اینجا هستید

JPA Hints

 

(persistence.lock.timeout (Long milliseconds

در JPA می توان با مقدار دهی به این گزینه timeout  مد نظر را در حالت lock  به میلی ثانیه مشخص کرد.

 

(persistence.query.timeout(long-milliseconds

در JPA بیان گر مدت زمان اجرای یک کوئری قبل از لغو شدن آن است. Hibernate  این ویژگی را به طور مستقیم مدیریت نمی کند اما به کمک تابع  statement.setTimeout  توسط JDBC مدیریت انجام خواهد شد.

 

(persistence.cache.retrieveMode (CacheRetrieveMode– USE | BYPASS

در JPA این دستور به hibernate بیان می کند که چگونه از کش لول دوم می توان برای بازیابی Entity  از database استفاده کرد.

 

 javax.persistence.cache.storeMode (CacheStoreMode – USE | BYPASS | REFRESH)

در JPA بیان می کند که چطور hibernate می تواند تغییرات مورد نیاز را به کش لول دو انتقال دهد. هم می توان از کش  برای آپدیت استفاده کرد هم می توان از این گزینه BYPASS  کرد.

 

(persistence.loadgraph (EntityGraph

در JPA این گزینه این امکان را فراهم می کند که گراف Entity  ها را به محض اجرای اجرای کوئری لود کند.

 

Hibernate Hints

(org.hibernate.flushMode (FlushMode – AUTO | ALWAYS | COMMIT | MANUAL

اگر Entity تغییری کند، Hibernate این تغییرات را در واحد لول یک کش ذخیره سازی می کند تا زمانی که عملیات فلاش روی آن انجام شود. به صورت پیش فرض، این اتفاق قبل از هر کوئری اتفاق می افتد اما شما می توانید آن را با استفاده از enum   org.hibernate.FlushMode کنترل کنید که شامل موارد زیر است:

  • AUTO : Hibernate  تصمیم میگرید که چه هنگامی تغییرات باید روی database اعمال شوند.
  • Always : session قبل از هر کوئری خالی می شود.
  • Commit: hibernate هیچ تغییری را تا زمان commit شدن تراکنش روی دیتابیس اعمال نمی کند.
  • Manual : این امکان را به ما می دهد که به صورت دل به خواه session مورد نظر خود را فلاش کنیم.

 

(org.hibernate.readOnly (boolean

اگر بخواهید که هیچ تغییری روی Entityهای انتخاب شده اعمال نشود، می توانید این عبارت را برابر با  true  قرار دهید. این امکان باعث حذف عملیات dirty checking توسط hibernate شده  و کارایی را بهبود می بخشد.

 

 (org.hibernate.fetchSize (Long – number of records

با مقدار دهی به این عبارت تعداد سطوری که توسط درایور JDBC در هر Batch  رد و بدل می شود، مشخص می شود. این گزینه می تواند ارتباط بین درایور JDBC و database را بهبود ببخشد.

 

(org.hibernate.comment (String – custom comment

اگر مقدار hibernate.use_sql_comments  در فایل persistence.xml برابر با true  باشد، Hibernate کامنتی برای هر کوئری تولید می کند و آن را در فایل لاگ می نویسد. اگر شما بخواهید که حجم زیادی از فایل های log را تحلیل کنید، این گزینه به شما کمک شایانی می کند.  شما می توانید از org.hibernate.comment برای تنظیم کامنت مورد نیاز خود برای کوئری استفاده کنید.

 

 org.hibernate.cacheable

 اگر می خواهید که از قابلیت cache hibernate استفاده کنید، می توانید در فایل persistence.xml این مقدار برای یک کوئری خاص با انتساب مقدار true به org.hibernate.cacheable فعال کنید.

 

Last Updated On مارس 12, 2018
Leave Comment