+1 امتیاز
قبل در برنامه نویسی توسط (5 امتیاز)
ویرایش شده قبل توسط

کسی میتونه مفهومه این  annotation رو بهم بگه هم معنیش و هم کارش. بد جور گیج شدم.

@PersistenceContext

و هم اینکه entity manager و entityManagerFactory چیه و کارش چیه؟

ممنونم

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

EntityManager مدیریت Entity های cache شده از سمت دیتابیس را بعهده دارد و بعبارت دیگر کامپوننت اصلی در JPA است. EntityManagerFactory کامپوننتی است که سازنده EntityManager است و برای ما بر اساس تنظیمات یک persistence-unit اشیاء EntityManager میسازد. persistence-unit مشخص کننده اطلاعات لازم برای اتصال به یک دیتابیس و تنطیمات مربوط به Mapping های آن است.

انوتیشن PersistenceContext فقط در صورتی که transaction-type ما JTA باشد استفاده می شود و بصورت اتوماتیک با استفاده از EntityManagerFactory یک EntityManager برای ما می سازد و در اختیار قرار می دهد.

    @PersistenceContext(unitName = "Tutorial")
    private EntityManager entityManager;

کد بالا یک EntityManager بر پایه تنظیمات persistence-unit با نام Tutorial برای ما میسازد.

<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">

  <!-- Tutorial "unit" -->
  <persistence-unit name="Tutorial" transaction-type="JTA">
    <jta-data-source>myJtaDataSource</jta-data-source>
    <non-jta-data-source>myNonJtaDataSource</non-jta-data-source>
  </persistence-unit>

</persistence>

سوالات مشابه

+1 امتیاز
1 پاسخ 1.5هزار بازدید
0 امتیاز
1 پاسخ 1.2هزار بازدید
+2 امتیاز
3 پاسخ 3.0هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط bahrambb (308 امتیاز)
+1 امتیاز
1 پاسخ 1.1هزار بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط masoud shahhosseini_ (45 امتیاز)
+1 امتیاز
1 پاسخ 388 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
3 پاسخ 860 بازدید
سوال شده 5 سال قبل در برنامه نویسی توسط یوری (426 امتیاز)
0 امتیاز
0 پاسخ 2.8هزار بازدید
...