Объектно-реляционное отображение (ORM) — это процесс преобразования объектов Java в таблицы базы данных. Другими словами, это позволяет нам взаимодействовать с реляционной базой данных без использования SQL. Java Persistence API (JPA) — это спецификация, определяющая, как сохранять данные в приложениях Java. Основное внимание в JPA уделяется уровню ORM.
Hibernate — одна из самых популярных используемых сегодня сред Java ORM. Его первый релиз состоялся почти двадцать лет назад, и до сих пор он пользуется отличной поддержкой сообщества и регулярными выпусками. Кроме того, Hibernate является стандартной реализацией спецификации JPA с несколькими дополнительными функциями, специфичными для Hibernate. Давайте рассмотрим некоторые основные функции JPA и Hibernate.
![./6fa0ab2c3dc26978c581de4eb8ecd389.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAACiFBMVEVMaXFNTU1NTU1NTU1jsXdjsXdNTU1jsXdjsXdjsXdNTU1jsXdNTU1NTU1jsXdjsXdjsXdNTU1NTU1jsXdjsXdjsXdjsXdNTU1jsXdjsXdjsXdNTU1jsXdNTU1jsXdjsXdjsXdjsXdjsXdjsXdNTU1NTU1NTU1NTU1NTU1jsXdNTU1jsXdjsXdNTU1jsXdNTU1jsXdNTU1jsXdNTU1NTU1NTU1NTU1NTU1jsXdNTU1NTU1NTU1jsXdjsXdjsXdNTU1jsXdNTU1jsXdjsXdjsXdNTU1jsXdjsXdNTU1NTU1NTU1NTU1NTU1jsXdNTU1jsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdNTU1jsXdjsXdjsXdNTU1NTU1NTU1NTU1jsXdNTU1jsXdjsXdjsXdNTU1NTU1NTU1jsXdNTU1jsXdjsXdNTU1NTU1jsXdjsXdNTU1NTU1NTU1NTU1jsXdjsXdNTU1NTU1NTU1NTU1jsXdjsXdNTU1jsXdNTU1jsXdNTU1NTU1jsXdjsXdNTU1jsXdNTU1NTU1NTU1NTU1NTU1NTU1jsXdNTU1NTU1NTU1jsXdNTU1jsXdNTU1NTU1jsXdNTU1jsXdjsXdNTU1NTU1NTU1NTU1NTU1NTU1NTU1jsXdjsXdNTU1NTU1NTU1NTU1NTU1NTU1jsXdjsXdNTU1jsXdNTU1NTU1NTU1jsXdjsXdjsXdNTU1NTU1jsXdjsXdjsXdNTU1NTU1jsXdNTU1jsXdjsXdNTU1jsXdNTU1NTU1NTU1NTU1NTU1NTU1jsXdjsXdjsXdjsXdNTU1jsXdNTU1NTU1jsXdjsXdNTU1jsXdjsXdjsXdNTU1NTU1NTU1jsXdjsXdNTU2zoGT/AAAA1nRSTlMAMCCg8GCQQKCwwBBQsOUkAwUBAlClAfB4Czf9mB3jyPQJveyA+tBmGWiI9v47KZ64QHAo6+en+4ECuoLmk3Po+jgE1/sMD10TBK+j9R6zyqyI/X5fB91gFrYgUUMQHEjaBTIUG/lXZVx7HElBTlNPz/LzOkH3ai0HKFVKCF3vod1JnXPhFWOFbvZa1C+/m9m0qLftr9RM/P7DViMIFGwxzArWPSrYNM/xVTvMZKiDLs2s4ugY7ZR4wdfTpEV14ZgmxsqMWMTH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)
Определение объектов
- Определение объектов JPA
- Жизненный цикл объекта Hibernate
- События жизненного цикла сущности JPA
- Значения столбца по умолчанию в JPA
- JPA @Basic Аннотация
- Сопоставление имен классов сущностей с именами таблиц SQL с помощью JPA
- Разница между @Size, @Length и @Column (длина = значение)
- Равенство юридических лиц JPA
- JPA @Embedded и @Embeddable
- Преобразователи атрибутов JPA
- Hibernate @NotNull против @Column (nullable = false)
- Определение уникальных ограничений в JPA
- Сущности JPA и сериализуемый интерфейс
![./d3ecf4786a3a577cbb6c494848defd39.png](data:image/png;base64,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)
Отношения сущностей
- Отношения «один к одному» в JPA
- Отношения «многие ко многим» в JPA
- Объяснение аннотации @JoinColumn
- Разница между @JoinColumn и mappedBy
- Сопоставление одного объекта с несколькими таблицами в JPA
- Обзор каскадных типов JPA/Hibernate
- Hibernate @WhereJoinTable Аннотация
- Отображение наследования в спящем режиме
- Учебное пособие по аннотациям Hibernate One to Many
![./5b90d3d93602ced5597ebdcdccbe4853.png](data:image/png;base64,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)
Идентификаторы
- Обзор идентификаторов в Hibernate/JPA
- Составные первичные ключи в JPA
- Когда JPA устанавливает первичный ключ
![./8bdda40237a6c8ab51dc31e72dc8cbaa.png](data:image/png;base64,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)
Операции чтения
- Типы запросов JPA
- Использование параметров запроса JPA
- Создание запроса JPA между несвязанными объектами
- Работа с коллекциями ленивых элементов в JPA
- Типы соединения JPA
- FetchMode в спящем режиме
- Спящий именованный запрос
![./bfb4088800c75466f74bdf8955bb4dad.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAABWVBMVEVMaXFNTU1NTU1gr3VNTU1NTU1NTU1gr3Vgr3Vgr3VNTU1NTU1NTU1NTU1NTU1gr3Vgr3Vgr3VNTU1gr3Vgr3VNTU1gr3Vgr3Vgr3Vgr3VNTU1NTU1NTU1gr3Vgr3VNTU1NTU1NTU1NTU1NTU1NTU1gr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3VNTU1gr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3VNTU1NTU1gr3Vgr3Vgr3Vgr3VNTU1NTU1NTU1NTU1NTU1NTU1NTU1gr3Vgr3VNTU1gr3VNTU1NTU1gr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3VNTU1gr3Vgr3Vgr3Vgr3Vgr3VNTU1NTU1NTU1NTU1NTU1NTU1gr3VNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1gr3VNTU1gr3Vgr3VNTU1gr3VNTU1y+P78AAAAcXRSTlMA0wHnsGAVsGAQl076ECQBeS1CrM7wyfqBWgoLeUIfHZMtxgTmqvFKnPcU8HQkp2PWFYaor1LYa9dGDZFYDN9e9ANQ/eOA9jyV9oOPtv4RA8syWFaMH+z8tL8LYdJR+yKJavi0w02zFicIXRcaBrUXf+oYNN8AAAMCSURBVGje7dhnU9tAEAbgxdiWTIltDC4kQEJvofeeRug9lPTe27v//0PGAgs5Plt3JxsY8PvBcyNr5hntrk62iNwT7eiEbBZGZkgnXT1QydSwhtHbB7WMaSD9AGKDplwmJwA0qyMDwFBY+uwogHF1xAAMIgJgOj7yJVTw25uDmKZ53/FRfOR3SDrN2ohibjpSb0rnnafpkkyojJSRMlJGyoga0ts/YBRIJVCZ98vu/W0ppKsPXrLzUwKJ9sBbdrbdkQ4AQ4Zmjg8B7LsjnUAsTLr5cwh0uyMABomaDMN4ThQxjEh6oAyjSVI5/m/28iImkQkglP2TVG/ALx3RLpcKoh1ppN7QT6Us4jFXCClmubYALJa68XsApkuAOB8EJ0fA0rwG0vj3mdK/lwhpIAHe3Pghj6yHdZBW5scPJMsVO9gVnSVEqmd99voeMz+xVsHRoOYvABFSXcNVtnKX+VGLZVRwRbBoSHUNM89l2t7A/NlajTLnKrqIZdhXEmDmT3R2JbmKJpJtONsuUvSQN++zjPO2Z5SPRUBeMXPDF8ppu5UXzPy60AjnZKC/V4A0vnTWJN32D9mVfKv4vqKvS9CTrMqn2/4wT7dkX4r0RAXT5VRamdvbChiu5RoC0CG6T9LK8tNM29cyh2cFhmvjwzGgU3jHByuW6zJt37S3YF9VruE+XYMAxHtX0LoO+tbAvHF+1DfnU9+7zLzIWb472675F8kVaVlrt9teMoSo7SuVHlF9xuemvjiIe7IRP7OfiNhOrXXsPP7LQlTLpYWoNr4uEEjf6gE7v6xj56m7rOm6qsit07rcEq+KhAROOxwQr8rItZ2uEiN+QYjozunqtnOlj7AgZO9dtc7VFUcupFylbfykB+QEiLkjC8BENKSZrb0j4MAdGfH8AmfXHZmZ8miskztCw2NeiKVIWAYhah43VQKg+2y5OD3vNhkZRDFqQ19GrgsSvpArSQBJ+bOTQEIDiQOrSdmbKrkKxDWQlOqukNLZ3lfUjBW9h0gqnpAVEvEU0T+SlpjIdDUn9AAAAABJRU5ErkJggg==)
Критерии запроса
- Объединение предикатов JPA и/или критериев
- Criteria API — пример IN-выражений
- Запросы критериев JPA
![./5393b9f8826bfad1015232cde1d2018a.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAAC3FBMVEVMaXFNTU1NTU1NTU1jsXdjsXdNTU1NTU1NTU1jsXdNTU1NTU1NTU1jsXdjsXdNTU1jsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdNTU1jsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdNTU1jsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdNTU1jsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdNTU1jsXdjsXdjsXdNTU1NTU1NTU1jsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdNTU1NTU1jsXdjsXdNTU1NTU1NTU1jsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdNTU1NTU1NTU1NTU1jsXdjsXdjsXdNTU1NTU1NTU1NTU1NTU1NTU1NTU1jsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdNTU1NTU1NTU1jsXdNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1jsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdjsXdNTU1NTU1jsXdNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1jsXdNTU1jsXdNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1jsXdNTU3QWeUkAAAA8nRSTlMAgEAgYBAQYLCw8NCgAQZC+gUC/P4b8ff45gQJvAoBL+RuQQ79idxLUlcjVST7FPASeJ2GnwiTB6dA1ttIILILJdFlgFPHHOE9DKj1xPZz7RZePkmm7NmvGCiE8wUCTREu1HrX+e4XyZAz68LeCwOHFjhG2FowPOquuJjO3/QyOGLpQ2rMNhk6W5uMoU9RrW0fcZkf9ycNveJOwekMEXmX/sopJqK76JbyRLa1lb9Y+y4hZ6UE/VA1km8Uq1zdjX0sMGiS0PGfgUh+7JBLHPJzrbuLw+AsCYklzTKE+WvIj+51VRihtbSKP56HUSFexGK/avypFhIAAAiJSURBVHjazVr3XxRHFH8kFKMecpQzQER6EREEkSIxiS2xgRJQoqAohlhAwRZjSYxdo7E3FAtYEk00xmg0RUNMNL333nvd+QfyZmb3Zvfu9u72yueT7y/zZufN++7szLx5M7NgDGNS5oWFzUsZY7BaSEhIb4DeIQK99ZXTLBKDJU1Pg5vCpJvKIhBC8FkIEQjRrV8eJskIK9dR4aYw6aSyaIQkNBXNz9q8eRYmqaF+ItmExqebAEzTUdhkhMQA+kvSzAIqFMyUpP7gHzwsSUe5dFSSHgb/oJ8kFXOpWJL6GanZSeAAz3bT0cwvxK7YSKWNKBTm66h1U1nsxrOg6p9OqKLf8Xsb6NgdXRoVVTqaSg179TpehhhS7pK03yfZ4b52N0nc+1zDU9g0fH6EYn/E82xKpgx373O5AdO6eGpy5NQCyBhHpXEZUDB1JJXi15nAJ+g5ir/8MJZr27u3jQnDeLNG9XTDRHBwcDVAdbBAtaY853gytTWlSM7fEhx8iywWTaElycdzVOrcFNMTcOFWwl+spIayE2KsQ54OEBkxCdm0tPLFcG9819ol1EhkLl8/BIkVY3IjqcaStR6TrDnCvvo9q+W8IFFh9T1M6cgaJyT6i5a59BFa+8Hlqm/BFyPtGA9f/iDVe6TUrL9o6WFuHa0aMT3J9dhJmh5BdevmGhy2Zxaxj/D4C+6pv/A4U190xrXqlvSxcxupEDu4O62zJ5M/t/9c9sjcQ2t0HxzLmpYYuGmYQ4oZ7G1uvBIE6bczaUIPpci+4+3RY8KNtNbt6RB0fBqVdnc4eBUsYZh3E0sG9qJPXZMI9BrIKt40QDY0bYitRgd9D4EBJUqBaxKBkgEaI2G1NuX09XPbY4tuo6UT+4aCRwjtO5HWv60otj2XrgXa0jWUgwpB8ehao8BjRNH6QVRClsg1mrI7keQuJg3G1Q+8AK6ag5lwF5q8U1OUgU+4Mx2EkjMjn7e0fO6sHKsP4u7bLjhbi094fPuQJEXT1FjHC0RL0kM8bkaTa7U9ZsH1rp4OEPQQy0rNnpKYS5ehL6JDs34crhA242cC8s5MSShEDkTdo7pmDtBYQA+P1rHqEYUJKTMxnWA7YVdJGiy62Xif37xIa2OJXWjWZxYvSc7LiFfckPsQDi8+My+ZW9qdY68UnkGXn/Ud2Ko8Nv2XpmvKNWu8PdKXMoeX1wO9B52IQ9MdxzGBWKZxQ0fb3O34tqNqhxeEYiCmeiTW2cncUNaGJHdIkjZkMYcnzz3XJMINLaMVj401uSIxjT1GNZdZHZ5rEoGoQvYJht6vUWo+f75Z8+D+oUytQjg81yRqlDOfHLm4j/6Y6rM4kvld3Kh6SAIxK1n0dvfK2Y5rzF55Ny+PAQ9IxJtu4296h/Jg0sWLkxT5Dt7SbdhSj0gEZijf3Lbjoyp4n80A8JoETIHH5OXSSiIWwWOBJvAFCc6DS3welAiSEj6PLuE88hGJmNFn7DyCD0kAhijBmAixMOTxMQnEXpPDSjlYvBYLvifBAHm8ZMV4/HB+IcFQf54cZWIA7y+SuBrztxNxMH9rronzF8nTX/0LcIMk3QDw5Vef+Yfky0Pkm2c4yTPfkENP+oXkky8I+ZqTXCDki098TvLLu7sAPj53sFVuycFDvwHsevc6H5LEnSXkPYwhFoDSJ/AZRhPvEXK2xmckcJCQ0zsxVUgYdp4m5KCPWvIG9nDra6d/3mVLsuvj06+1Ajz5htckb/5IdmwHeIW1Q5DIbXkFYPsO8tObXpJUvUXIO0pGkAi8Q8hbVd6QnGoCeJvseDVOnyTu1R3kbYCm+XGekTzRQn7Ak6XXt4OzlsD21/Hs6ippWeARSQAevTSLrD2JQDOqBhgmqUHrH31AXj7lHsl3L5MPPgJYWGOEpPnTcx8CnL/aBO6RQNOvv+P3PfdpswuS0AS6TTpBg+bqfYT8w5+6JhFjoIWQfdV0v3WSRh0JDk6nh02ROCow8vkb1f8wSnI9vtqfGFXmyoaK7RbPpAZJQQW+1F8XWg23BIIvvI8DeZs4O5lso3CFHvduHrJhJN/iPyVKXJMIYMcX0RPkDUM2j8P0is2+FCORw400KEVhIKbGScT9R/cZmDYeRkEb0CQibyKTHsMg3RsS3Fo/ZjVZpA3d8EkQk5aj5AWJCasvt47jDE3ZCnzSwaQ8L1uCR7B5TOhAkyXabUgWxmsmuh8ow7OVWs9JanEHUBZFm4SRYHIfu/6STiT2eo5FvBH9J3tGMrl/BIuSn+uVeALT8bYhqEVS495B4cZJwgfdqzFisTvGTMyWiw73Y8mqB4ySPMCPZ/oNlQ1lJzo4FT5CNwTRUwus2vVGSOqt7xbaN5puMioch+T5q4vaw1XttmyNcZckZqtF9ZVNbStWi0NlVz1YvMI9khXFyngxhlp+NPXsFtckW55lqrNqwTj4udfoy/nOSfIvj2bnXBngERrnTGPnXhudkWxcyo7M5zQ6s9SlS5dJeM7QRWCSKLz1pLi1tCcRd5wnb1UecFOYfK2y6Oo+Pi3VemspSGzuOFPTvLz0V24to9eZbElM66KVO05XJF27dl2IwUxXgYWigubWknnp0N14ghnKvKz1jlMNbgqTiyqLbo2Acn5ruThn9tZKKlVunZ2zmN9xloPPIN9altGX580qU+443cL1Ak08u9/hXzHrI2X7WVmyELne4T8y+1UW9/Os8/t4+1vLykyzObOS33H6/NKfjiYaUZWzPkJhvQn8QUJvPV7i0kv0/sIAyXUCGGPTbJWTlVf8UjJeT6tKZbGKZw3+HGMZzma6xX8/x6TTP0nMeBNTiEK6kZoBAQG4EVsQILBA95qngUbRKSkDMGnQmSHcFCanVBb/d79eoU8u4xxlaWCIpHPnzvMB5neWwbL6+D6vODmyeE69rgI3hclZlcX/AELxi+WseUh6AAAAAElFTkSuQmCC)
Пагинация и сортировка
- Сортировка с помощью JPA
- Пагинация JPA
- Спящий режим
- Запросы критериев JPA
![./b70bf004e4a92bbd60830bfc7c6345fc.png](data:image/png;base64,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)
Результаты запроса
- Руководство по SqlResultSetMapping
- Настройка результатов запросов JPA с функциями агрегирования
![./a96ae9339860573e9b6de20c01a6cc4e.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAMAAABHPGVmAAACiFBMVEVMaXFNTU1gr3Vgr3VNTU1NTU1gr3Vgr3Vgr3Vgr3Vgr3Vgr3VNTU1gr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3VNTU1gr3Vgr3Vgr3Vgr3Vgr3Vgr3VNTU1NTU1gr3VNTU1gr3VNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1gr3VNTU1NTU1NTU1NTU1gr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3Vgr3VNTU1gr3Vgr3VNTU1gr3Vgr3Vgr3Vgr3VNTU1NTU1NTU1NTU1NTU1gr3VNTU1gr3VNTU1gr3Vgr3Vgr3VNTU1NTU1gr3VNTU1gr3VNTU1NTU1NTU1gr3VNTU1gr3VNTU1NTU1NTU1NTU1NTU1NTU1gr3Vgr3VNTU1NTU1NTU1NTU1NTU1gr3VNTU1NTU1NTU1NTU1NTU1NTU1gr3Vgr3Vgr3VNTU1NTU1gr3VNTU1NTU1NTU1NTU1gr3VNTU1gr3Vgr3Vgr3VNTU1NTU1gr3VNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1gr3Vgr3Vgr3VNTU1gr3VNTU1NTU1NTU1NTU1NTU1gr3VNTU1gr3VNTU1gr3VNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1gr3VNTU1NTU1gr3VNTU1NTU1NTU1gr3VNTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1gr3Vgr3Vgr3VNTU0pH7j/AAAA1nRSTlMAoE7OgBD6YLAQAkIEAYDwBvt393uD9BvADZdqz9acWAEOSwXq89xAA1446iQk+wkK5ansPFClV/H4Lo89U90b4Om4ZBh7E5E+DEuI1r3ConrSZcQt3VVTGvp5KYgM6G0L/Z5d8TUgaMxx+NW0X/2WP7F1nk1QMdtudf5/QevPqngj9lY3qJMhkoKEDcuQkvxJj6zjRe3oAjuifTNbt7WuvFS/53B/F+BKJVg5i86a+bunajDcsAbsYUPKmTzwmEVE69ll5BRkWT9IGaTvT80iFmMv1KGzFb/bWwAAA9tJREFUaN7t2ud3E0cUBfAbK2gsWy50bBJwx7gbSIdUakIIhAAh1IQWOqT3Rnrvvffee++9l3v/nXxYE0lodp2VZnSSnNxP78ir8zvWG83s0T4AwOiRiVEsJkcceVQtIlMxYjiLz6GVkcb+dJKhB0QgI0hyzDATJwkykVUdf8zhJA86ONQYPZw8sAzxUk6W51S1h5A8NvT6kSTjGvkIcBzJE8KuT5Bj4AA58WTypLDrR5HDXCA4lTwl7HqSxgnyx1+VR6T8byFBZUimot9SUmTHDu9I1XZye1VcxBjTDXQbY2qBSmMqI5Gd9SRZvzMmEq/xyWDHSnpFSCYDyCuSLCtL+kaSZUBZ0iMyKTACZZIb5JHON9I5L0yZPLkpqJpaLpziBnlZ2hhjqykMeVVa5B1JfyJ94RvBb9J6YPW6uzwiP23Tpj7UbdY9/pCff5S2AN9JC7whHf1Sz6/YKmmxL2TZWmnbL6j7XnrPW+Mfljq/AX6QPu31hayXXloGYKv0obclvFh6CAC+lt5a7QtZI70IAOk2aYkv5DnpqTQALJce94W0PyY9C6BurjTR2+qaL70ANDwgtc70hgxplWbjPkn3e9wgn5eWoPE2zfe5C69YPiMN9B3me6uPdxP+z0MahtjS7BSZvki2tM52iZwpe25xiZwVgqxyiTT32JGpwKOzulw1/iI70ojp0qYNjpDTrUYb8LSUv1sWiJxjRW4Fet95V/qg1wky1YrMAIC+zdL7TpBGK3I0AOBLaY2bbaXNhgQb5QTpMzfIxRZjZfCnjdJXbpDTLMiDAIBv+6V1bpAJFuQJAF2r+qXPm90gdedZ+75QkpZ+7Oo8mZuPPIk3eySt/MjZoXVlnrEA6NDaLRtWuDsZ85tyL/DMa+1Oj9+GhXsYd8z0cMZfuldubv7/bsWKdO0dlV1ukGsUlZvSTpDLI5EbHPVk4mXhxqx2V42/6uqzl9qEzis6/uNLOOpHXmdIVIpCTM5TrZamEiADP356RkKVopDu7Ed2v4cr7hpfVR+qOFxd4UoIUnGBiZ+3XyeZPNcYY8y0OYMhFeP3Lfox7bxoxAVBsnwgr9ydjzgisnJnHnLd9STJmmqSY1PxMpZkpsok95mWMebGgEgVsuwMyUwVfFiJXCQjX5sqbG3nIlmVDUmhBMg++1X5QoKWnbGbKRqxNn4gl9QEDMlxMb/x40hmqigEqeoat9+TedaP3gkzdPf/N21OSH9T1S3FGuf/q24ksnN7xC1RQYMYtkQNYhQ0UmJJ5EhJQcMxlkQOxxQ05pOXQcZ8ChpY2iODDiyVZvSqJENkJRiH+xNusnAAyZk5hQAAAABJRU5ErkJggg==)
Операции записи
- Оператор INSERT в JPA
- Пакетная вставка/обновление с помощью Hibernate/JPA
- Удаление объектов с помощью Hibernate
- Hibernate: сохранить, сохранить, обновить, объединить, saveOrUpdate