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 فعال کنید.