Күту (жақтау) - Hibernate (framework)

ORM режимін күту
Күту күйіндегі логотип a.png
ӘзірлеушілерҚызыл қалпақ
Бастапқы шығарылым23 мамыр 2001 ж; 19 жыл бұрын (2001-05-23)
Тұрақты шығарылым
5.4.23.Қорытынды / 3 қараша 2020 ж; 30 күн бұрын (2020-11-03)[1]
Алдын ала қарау
6.0.0. Альфа5 / 24 сәуір, 2020 ж; 7 ай бұрын (2020-04-24)[2]
Репозиторий Мұны Wikidata-да өңдеңіз
ЖазылғанJava
Операциялық жүйеКросс-платформа (JVM )
ПлатформаJava виртуалды машинасы
ТүріОбъектілік-реляциялық картографиялау
ЛицензияGNU кіші жалпыға ортақ лицензиясы
Веб-сайткүту.org

ORM режимін күту (немесе жай Ұйықтау) болып табылады объектілік-реляциялық картографиялау үшін құрал Java бағдарламалау тілі. Бұл а жақтау картаға түсіру үшін объектіге бағытталған домендік модель реляциялық мәліметтер базасы. Ұйықтау тұтқалары объектілік-реляциялық импеданстың сәйкес келмеуі мәселелерді тікелей ауыстыру арқылы, табанды мәліметтер базасына объектілерді өңдеудің жоғары деңгейлі функцияларымен қатынасу.

Күту күйі ақысыз бағдарламалық жасақтама астында бөлінген GNU кіші жалпыға ортақ лицензиясы 2.1.

Күту режимінің басты ерекшелігі - бұл Java сыныптарынан бастап картаны бейнелеу мәліметтер базасының кестелері, және Java деректер типтерінен картаға түсіру SQL деректер түрлері. Күту күйі сонымен қатар деректерді сұрау және іздеу құралдарын ұсынады. Ол SQL қоңырауларын тудырады және әзірлеушіні қолмен өңдеу мен нәтижелер жиынтығын объектілік түрлендіруден босатады.

Картаға түсіру

Java кластарын мәліметтер базасының кестелеріне салыстыру an конфигурациясы арқылы жүзеге асырылады XML файлын пайдалану арқылы немесе Java түсіндірмелері. XML файлын пайдалану кезінде күтуге болады генерациялау қаңқа бастапқы код табандылық сабақтары үшін. Аннотация қолданылған кезде бұл көмекші болып табылады. Күту күйі сақтау үшін XML файлын немесе Java аннотацияларын қолдана алады мәліметтер базасының схемасы.

Ұйымдастыруға жағдай жасалған бір-көпке және көп-көп сыныптар арасындағы қатынастар. Нысандар арасындағы ассоциацияларды басқарудан басқа, күту күйі де басқара алады рефлексивті объектінің басқа даналарымен бір-бірімен байланысы бар бірлестіктер сынып түрі.

Күту күйі теңшелетін мән түрлерін бейнелеуді қолдайды. Бұл келесі сценарийлерді мүмкін етеді:

  • Сипатқа бағанды ​​салыстыру кезінде әдепкі SQL түрін жоққа шығару.
  • Java картаға түсіру Энумдар бағандарға әдеттегі қасиеттер сияқты.
  • Бір қасиетті бірнеше бағанға салыстыру.

Анықтама:Нысандары объектіге бағытталған өтінішті орындау OOP принциптер, ал артқы жағындағы нысандар сәйкес келеді мәліметтер базасын қалыпқа келтіру ұсыну талаптары туындайтын принциптер. Бұл проблема «деп аталадыобъектілік-реляциялық импеданстың сәйкес келмеуі «. Картография - бұл объектілік-реляциялық кедергінің сәйкес келмеу мәселесін шешудің тәсілі.

Картаға түсіру ORM құралына Java класының қандай объектісін қандай мәліметтер базасының кестесінде сақтайтындығы туралы хабарлайды.

Күту күйіндегі сұрау тілі (HQL)

Күту режимі SQL деп аталатын шабыттандырылған тіл Сұрау тілі күту күйінде (HQL) Hibernate деректер объектілеріне қарсы SQL тәрізді сұраулар жазуға арналған. Критерий бойынша сұраулар ретінде беріледі объектіге бағытталған HQL-ге балама. Критерийлер сұранысы объектілерді өзгерту және объектілерге шектеу беру үшін қолданылады.HQL (күту күйіндегі сұрау тілі) - SQL-нің объектіге бағытталған нұсқасы. Ол мәліметтер базасына қатысты сұраныстар жазудың қажеті болмауы үшін мәліметтер базасынан тәуелсіз сұраныстар жасайды. Мұндай мүмкіндік болмаса, мәліметтер базасын өзгерту жеке SQL сұрауларын өзгертуді талап етеді, бұл техникалық қызмет көрсету мәселелеріне әкеледі.

Табандылық

Күту күйі ашық табандылықты қамтамасыз етеді Қарапайым ескі Java нысандары (POJO). Табанды сыныпқа қойылатын жалғыз қатаң талап - бұл аргументсіз конструктор, бірақ міндетті емес қоғамдық. Кейбір қосымшалардағы дұрыс мінез-құлыққа ерекше назар аудару қажет тең () және hashCode () объект кластарындағы әдістер.[3] Күту режимі идентификатор төлсипатын ұсынуға кеңес береді және бұл болашақ шығарылымда міндетті талап болады деп жоспарланған.[4]

Мәліметтер нысандарының жиынтығы, әдетте, Java жиынтық кластарында, мысалы, Орнатыңыз және Тізім интерфейстер. Java генериктері Java 5-те енгізілген, сонымен қатар қолдау көрсетіледі. Күту күйін конфигурациялауға болады жалқау жүк байланысты коллекциялар. Жалқау жүктеу күту күйіне 3-ке сәйкес келеді.

Байланысты нысандарды конфигурациялауға болады каскад бір объектіден екіншісіне операциялар. Мысалы, ата-ана Альбом класс нысанын каскадты етіп конфигурациялауға болады сақтау және жою оның баласына жасалатын операциялар Жол сынып объектілері.

Интеграция

Күту режимін дербес күйде де қолдануға болады Java қосымшалар және Java EE қолданбалы бағдарламалар сервлеттер, EJB үрме бұршақ және JBI қызмет компоненттері. Оны басқа бағдарламалау тілдеріндегі мүмкіндік ретінде де қосуға болады. Мысалға, Adobe Күту режимінің 9-шы нұсқасына біріктірілген ColdFusion (ол J2EE қосымшасының серверлерінде жұмыс істейді) жаңа функциялар мен синтаксистің абстракциялық қабаты қосылған CFML.

Субъектілер мен компоненттер

Күту режимінде жаргон, an тұлға - қазір күту режиміндегі жеке объект табанды басқа объектілерге тәуелсіз басқарылатын механизм. Керісінше, а компонент субъектіге бағынады және тек сол субъектіге қатысты айла-шарғы жасауы мүмкін. Мысалы, альбом нысаны ұйымды көрсете алады; бірақ альбом нысандарымен байланысты тректер нысаны а компонент егер альбом нысаны арқылы дерекқордан тек тректерді сақтауға немесе алуға болады деп есептелсе, Альбом нысаны туралы. J2EE-ден айырмашылығы, күту күйі дерекқорларды ауыстыра алады.

Тарих

Күту режимін 2001 жылы Гэвин Кинг Cirrus Technologies компаниясының әріптестерімен бірге EJB2 стиліндегі бұршақтарды қолдануға балама ретінде бастады. Бастапқы мақсат EJB2 ұсынғаннан гөрі жақсы табандылық мүмкіндіктерін ұсыну болды; қиындықтарды жеңілдету және кейбір жетіспейтін мүмкіндіктерді толықтыру арқылы.

2003 жылдың басында Hibernate әзірлеушілер тобы Hibernate2 шығарылымдарын бастады, бұл бірінші шығарылымда көптеген жақсартулар жасады.

JBoss, Inc. (қазір бөлігі Қызыл қалпақ ) кейінірек оны дамыту үшін жетекші әзірлеушілерді жалдады.

2005 жылы күту режимінің 3.0 нұсқасы шықты. Негізгі мүмкіндіктерге жаңа Interceptor / Callback архитектурасы, пайдаланушы анықтаған сүзгілер және JDK 5.0 кірді Аннотация (Java метадеректер ерекшелігі). 2010 жылғы жағдай бойынша, Hibernate 3 (3.5.0 нұсқасы және одан жоғары нұсқасы) Java Persistence API 2.0 JSR 317 стандартына сәйкестікті қамтамасыз ететін Core модулінің орамасы арқылы сипаттама.[5]

2011 жылдың желтоқсанында Hibernate Core 4.0.0 финалы шығарылды. Сияқты жаңа мүмкіндіктерді қамтиды көп пәтерлі ServiceRegistry-ді қолдау, енгізу (күту режимінің «қызметтерді» қалай құратыны және басқаратындығы туралы үлкен өзгеріс), сессияның SessionFactory-тен жақсы ашылуы, интеграцияның жақсаруы org.hibernate.integrator.spi.Integrator және автоматты түрде табу, интернационалдандыру қолдау, журналдағы хабарлама кодтары және API, SPI немесе енгізу сыныптары арасындағы айырмашылық.[6]

2012 жылдың желтоқсанында Hibernate ORM 4.1.9 Final шықты.[7]

2013 жылдың наурызында Hibernate ORM 4.2 Final шықты.[8]

2013 жылдың желтоқсанында Hibernate ORM 4.3.0 Final шықты.[9] Оның ерекшеліктері Java Persistence API 2.1.

2015 жылдың қыркүйегінде Hibernate ORM 5.0.2 Final шықты. Ол жүктеуді жүктеуді, қыстауды-java8, қыстауды-кеңістікті, Карафты жақсартады.

2018 жылдың қарашасында Hibernate ORM 5.1.17 Final шықты. Бұл 5.1 сериясының соңғы шығарылымы.

2018 жылдың қазанында Hibernate ORM 5.3 Final шықты. Бұл ұсынылған Java Persistence API 2.2 мұраны кэштеу.

2018 жылдың желтоқсанында Hibernate ORM 5.4.0 Final шықты.[10]

Бағдарламалау интерфейсі

Hibernate API келесіде берілген Java пакеті ұйым.[11]

org.hibernate.SessionFactory интерфейсі

org.hibernate.Session интерфейсі

Org.hibernate.Session интерфейсі[12] күту сеансын, яғни деректер базасында орындалатын манипуляцияның негізгі нүктесін білдіреді. Соңғы қызметтерге (басқалармен қатар) тұрақтылық күйін басқару кіреді (өтпелі, табанды, бөлек[түсіндіру қажет ]) мәліметтер базасынан және транзакцияны демаркациялауды басқарудан алынған объектілерді[түсіндіру қажет ].

Сессия дерекқордағы логикалық транзакция болғанға дейін созылады. Соңғы мүмкіндіктің арқасында сеансты іске асырудың қауіпсіздігі немесе бірнеше клиенттің қолдануы мүмкін емес.

Бағдарламалық жасақтама компоненттері

Күту күйіндегі бағдарламалық жасақтама келесі компоненттерден тұрады:[13]

  • Күту режимі ORM (4.1 шығарылғанға дейін күту күйі деп аталады)[14]) - Java орталарына арналған объектілік-реляциялық картографиялау шешімі үшін базалық бағдарламалық жасақтама[15]
  • Күту күйіндегі аннотациялар (3.6 нұсқасынан бастап күту күйіне / ORM-ге біріктірілген)[16]) - JSR 317 сәйкес объектіге бағытталған модель мен реляциялық мәліметтер базасының моделі арасындағы деректердің өзгеруін басқаратын метадеректер Java Persistence API (JPA 2)[17]
  • Күту режимі EntityManager (5.2 нұсқасынан бастап Hibernate Core / ORM құрамына біріктірілген)[18]) - күту күйіндегі аннотациялармен бірге, JSR 317 жүзеге асыратын орам Java Persistence API (JPA 2) табандылық шешімі[19]
  • Күту күйі - тұрақты сабақтардың аудиті және нұсқасы[20]
  • Күту режиміндегі OGM (Object / Grid Mapper) - а-да мәліметтерді сақтауға арналған кеңейтім NoSQL дүкен[21]
  • Ұйқылардың күту күйі - көлденең бөлу бірнеше реляциялық мәліметтер базасы үшін[22]
    • Әзірге күту режимі Shibernate Core-дің 4.x шығарылымымен үйлеспейтін болса да, кейбір Shards мүмкіндігі 4.0 шығарылымында Core-ге біріктірілген
  • Күту режимінде іздеу - мәтіндік кітапхананың толық функциясын біріктіреді Apache Lucene күту және JPA үлгісінде[23]
  • Күту күйіндегі құралдар - жиынтығы ретінде іске асырылған құралдар жиынтығы Тұтылу плагиндер және Құмырсқа кіретін тапсырмалар JBoss Developer Studio[24]
  • Күту күйіндегі валидатор - анықтамалық енгізу JSR 303 Бұршақты тексеру[25]
  • Метамодель генераторын күту - JSR 317 құратын аннотациялық процессор Java Persistence API (JPA 2) статикалық метамодель сыныптары, JSR 269 Қосылатын аннотацияны өңдеу API[26]
  • Ұйықтау - үшін объектілік-реляциялық картографиялық шешім .NET Framework[27]

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «Шығарылым: ORM 5.4.23. Күту режимі».. Алынған 14 қараша 2020.
  2. ^ «6.0.0.Alpha5 шығарылымы». Алынған 24 сәуір 2020.
  3. ^ «Тең және HashCode». JBoss қауымдастығы.
  4. ^ «Күту режиміндегі пайдаланушы нұсқаулығы: 2.5.5. Идентификатор төлсипатын беріңіз». JBoss қауымдастығы.
  5. ^ «Hibernate 3.5.0-қорытынды шығарылымы». ... байланысты
  6. ^ «Шығарылымдар - ORM режимін күту». hibernate.org.
  7. ^ «Мұрағатталған көшірме». Архивтелген түпнұсқа 2013-01-29. Алынған 2012-12-13.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме)
  8. ^ «Мұрағатталған көшірме». Архивтелген түпнұсқа 2014-12-05. Алынған 2014-11-27.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме)
  9. ^ «Мұрағатталған көшірме». Архивтелген түпнұсқа 2014-12-05. Алынған 2014-11-27.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме)
  10. ^ «Шығарылымдар - ORM режимін күту». hibernate.org.
  11. ^ «JavaDocs-ті күту». docs.jboss.org.
  12. ^ «Сессия (JavaDocs күту режимі)». docs.jboss.org.
  13. ^ «Күту: Java және .NET үшін қатынастық табандылық». JBoss қауымдастығы.
  14. ^ «Күту режиміндегі ORM 4.1.0 шығарылымы». JBoss қауымдастығы.
  15. ^ «HIBERNATE - идиомалық Java үшін қатынастық табандылық». JBoss қауымдастығы.
  16. ^ «Күту-аннотация модулі бұдан былай». JBoss қауымдастығы.
  17. ^ «Аннотацияларды күту». JBoss қауымдастығы.
  18. ^ «қысқы ұйқы күйіне біріктірілген hibernate-entitymanager». JBoss қауымдастығы.
  19. ^ «Күту режимі EntityManager». JBoss қауымдастығы.
  20. ^ «Күту режиміндегі энверлер - субъектіні қарапайым бақылау». JBoss қауымдастығы.
  21. ^ «Күту режиміндегі OGM». JBoss қауымдастығы.
  22. ^ «Ұйқылардың ұйқысы». JBoss қауымдастығы.
  23. ^ «Күту режимінде іздеу». JBoss қауымдастығы.
  24. ^ «Тұтылу мен құмырсқаға арналған күту күйіндегі құралдар». JBoss қауымдастығы.
  25. ^ «Күту режиміндегі растаушы». JBoss қауымдастығы.
  26. ^ «Метамодель генераторын күту». JBoss қауымдастығы.
  27. ^ «Күту». NHibernate Forge. Архивтелген түпнұсқа 2012-07-12. Алынған 2011-04-26.

Библиография

Сыртқы сілтемелер