<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">ellibs</journal-id><journal-title-group><journal-title xml:lang="ru">Электронные библиотеки</journal-title><trans-title-group xml:lang="en"><trans-title>Russian Digital Libraries Journal</trans-title></trans-title-group></journal-title-group><issn pub-type="epub">1562-5419</issn><publisher><publisher-name>Казанский (Приволжский) федеральный университет</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.26907/1562-5419-2024-27-4-656-678</article-id><article-id custom-type="elpub" pub-id-type="custom">ellibs-565</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Статьи</subject></subj-group></article-categories><title-group><article-title>Автоматизация чтения связанных данных из реляционных и нереляционных баз данных в контексте использования стандарта JPA</article-title><trans-title-group xml:lang="en"><trans-title>Automation of Reading Related Data from Relational and Non-Relational Databases in the Context of using the JPA Standard</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Савинчева</surname><given-names>Ангелина Сергеевна</given-names></name><name name-style="western" xml:lang="en"><surname>Savincheva</surname><given-names>Angelina Sergeevna</given-names></name></name-alternatives><email xlink:type="simple">asanvlit@gmail.com</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Ференец</surname><given-names>Александр Андреевич</given-names></name><name name-style="western" xml:lang="en"><surname>Ferenets</surname><given-names>Alexander Andreevich</given-names></name></name-alternatives><email xlink:type="simple">ist.kazan@gmail.com</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Казанский (Приволжский) федеральный университет</institution></aff><aff xml:lang="en"><institution>Kazan (Volga region) Federal University</institution></aff></aff-alternatives><pub-date pub-type="collection"><year>2024</year></pub-date><pub-date pub-type="epub"><day>28</day><month>05</month><year>2025</year></pub-date><volume>27</volume><issue>4</issue><fpage>656</fpage><lpage>678</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Савинчева А.С., Ференец А.А., 2025</copyright-statement><copyright-year>2025</copyright-year><copyright-holder xml:lang="ru">Савинчева А.С., Ференец А.А.</copyright-holder><copyright-holder xml:lang="en">Savincheva A.S., Ferenets A.A.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://ellibs.elpub.ru/jour/article/view/565">https://ellibs.elpub.ru/jour/article/view/565</self-uri><abstract><p>Описан процесс автоматизации управления операцией чтения связанных данных из реляционных и нереляционных баз данных.
&#13;

Разработанный программный инструмент основан на использовании стандарта JPA (Java Persistence API), который определяет возможности контроля жизненного цикла сущностей в Java-приложениях. Спроектирована архитектура встраивания в событийные процессы, позволяющая интегрировать решение в проекты вне зависимости от используемой реализации JPA. Реализована поддержка различных стратегий загрузки данных, типов и параметров отношений. Осуществлена оценка производительности инструмента.
</p></abstract><trans-abstract xml:lang="en"><p>The process of automating the management of the reading operation of related data from relational and non-relational databases is described.
&#13;

The developed software tool is based on the use of the JPA (Java Persistence API) standard, which defines the capabilities of managing the lifecycle of entities in Java applications. An architecture for embedding in event processes has been designed, allowing the solution to be integrated into projects regardless of which JPA implementation is used. Support for various data loading strategies, types, and relationship parameters has been implemented. The performance of the tool has been evaluated.
</p></trans-abstract><kwd-group xml:lang="ru"><kwd>JPA</kwd><kwd>ORM</kwd><kwd>Java</kwd><kwd>базы данных</kwd><kwd>реляционные базы данных</kwd><kwd>нереляционные базы данных</kwd></kwd-group><kwd-group xml:lang="en"><kwd>JPA</kwd><kwd>ORM</kwd><kwd>Java</kwd><kwd>databases</kwd><kwd>relational databases</kwd><kwd>non-relational databases</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Jakarta Persistence. URL: https://jakarta.ee/specifications/persistence/3.0/jakarta-persistence-spec-3.0.html/.</mixed-citation><mixed-citation xml:lang="en">Jakarta Persistence. URL: https://jakarta.ee/specifications/persistence/3.0/jakarta-persistence-spec-3.0.html/.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Hibernate. URL: https://hibernate.org/.</mixed-citation><mixed-citation xml:lang="en">Hibernate. URL: https://hibernate.org/.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Hibernate OGM. URL: https://hibernate.org/ogm/faq/.</mixed-citation><mixed-citation xml:lang="en">Hibernate OGM. URL: https://hibernate.org/ogm/faq/.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">What is Object-Relational Mapping (ORM) in DBMS? URL: https://www.geeksforgeeks.org/what-is-object-relational-mapping-orm-in-dbms/.</mixed-citation><mixed-citation xml:lang="en">What is Object-Relational Mapping (ORM) in DBMS? URL: https://www.geeksforgeeks.org/what-is-object-relational-mapping-orm-in-dbms/.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">JPA providers market share in 2016. URL: https://vladmihalcea.com/jpa-providers-market-share-in-2016/.</mixed-citation><mixed-citation xml:lang="en">JPA providers market share in 2016. URL: https://vladmihalcea.com/jpa-providers-market-share-in-2016/.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Hibernate ORM User Guide. URL: http://docs.jboss.org/hibernate/orm/6.5/userguide/html_single/Hibernate_User_Guide.html/.</mixed-citation><mixed-citation xml:lang="en">Hibernate ORM User Guide. URL: http://docs.jboss.org/hibernate/orm/6.5/userguide/html_single/Hibernate_User_Guide.html/.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">EclipseLink/Examples/JPA/Caching. URL: https://wiki.eclipse.org/EclipseLink/Examples/JPA/Caching.</mixed-citation><mixed-citation xml:lang="en">EclipseLink/Examples/JPA/Caching. URL: https://wiki.eclipse.org/EclipseLink/Examples/JPA/Caching.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">JPQL. URL: https://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL.</mixed-citation><mixed-citation xml:lang="en">JPQL. URL: https://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Developing JAXB Applications Using EclipseLink MOXy. URL: https://eclipse.dev/eclipselink/documentation/2.4/moxy/overview001.htm/.</mixed-citation><mixed-citation xml:lang="en">Developing JAXB Applications Using EclipseLink MOXy. URL: https://eclipse.dev/eclipselink/documentation/2.4/moxy/overview001.htm/.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Platform Specific Configurations. URL: https://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Platform_Specific_Configurations/.</mixed-citation><mixed-citation xml:lang="en">Platform Specific Configurations. URL: https://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Platform_Specific_Configurations/.</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">EclipseLink/FAQ/NoSQL. URL: https://wiki.eclipse.org/EclipseLink/FAQ/NoSQL/.</mixed-citation><mixed-citation xml:lang="en">EclipseLink/FAQ/NoSQL. URL: https://wiki.eclipse.org/EclipseLink/FAQ/NoSQL/.</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">Composite Persistence Units. URL: https://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Composite_Persistence_Units/.</mixed-citation><mixed-citation xml:lang="en">Composite Persistence Units. URL: https://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Composite_Persistence_Units/.</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">The Proxy Pattern in Java. URL: https://www.baeldung.com/java-proxy-pattern/.</mixed-citation><mixed-citation xml:lang="en">The Proxy Pattern in Java. URL: https://www.baeldung.com/java-proxy-pattern/.</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">What is Apache FreeMarker™? URL: https://freemarker.apache.org/.</mixed-citation><mixed-citation xml:lang="en">What is Apache FreeMarker™? URL: https://freemarker.apache.org/.</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">What are Macros? URL: https://academy.flowmailer.com/hc/en-gb/articles/9404831036306-What-are-Macros</mixed-citation><mixed-citation xml:lang="en">What are Macros? URL: https://academy.flowmailer.com/hc/en-gb/articles/9404831036306-What-are-Macros</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">Dynamic Proxy Classes. URL: https://docs.oracle.com/javase/8/docs/technotes/guides/reflection/proxy.html/.</mixed-citation><mixed-citation xml:lang="en">Dynamic Proxy Classes. URL: https://docs.oracle.com/javase/8/docs/technotes/guides/reflection/proxy.html/.</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">The performance implications of Java reflection. URL: https://blogs.oracle.com/javamagazine/post/java-reflection-performance/.</mixed-citation><mixed-citation xml:lang="en">The performance implications of Java reflection. URL: https://blogs.oracle.com/javamagazine/post/java-reflection-performance/.</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
