Отговаряне на изброените по-горе проблеми:
1. Hibernate не може да се свърже със „Съществуваща“ база данни. Винаги се опитва да създаде своя собствена.
Това е грешно. Хибернацияможе свържете се със съществуваща база данни и не винаги се опитва да я пресъздаде. Просто трябва да изключите параметър като hbm2ddl. auto
.
2. Нашата база данни може да има достъп от едно и също приложение, което е на различни платформи (облак, сървър, VPS, персонален компютър). Хибернацията може да създаде проблеми поради кеширането си в тази ситуация.
Hibernate има регулируем кеш, така че това също не е проблем.
3. Ние никога не обичаме да даваме "работа за създаване на таблица" на java кода. Създаваме таблици ръчно, винаги.
Няма проблем. Вижте стр.1 по-горе. Освен това има няколко удобни библиотеки за непряко създаване и актуализиране на таблици (напр. liquibase ), който може да се използва в комбинация с хибернация перфектно.
4. Може да се наложи да използваме много дълги и сложни SQL изрази. Последния път използвахме оператор с повече от 150 реда, обединяващи повече от 20 таблици. Съмняваме се дали ще се сблъскаме с проблеми, когато става въпрос за Hibernate.
Винаги можете да използвате директни JDBC повиквания и да извиквате собствени SQL заявки чрез хибернация, ако е необходимо.
5. Нашият SQL код е хубав и стандартен. Генерираният от хибернация код изглежда е малко мръсен за нас.
Отново, ако трябва да извикате някакъв логически сложен SQL код вместо автоматично генериран хибернация - можете да го направите.
6. Винаги използваме MySQL. Никога не използвайте друга БД.
Изобщо не е проблем. Hibernate има специална поддръжка на MySQL диалект:org.hibernate.dialect.MySQLDialect
.
7. Приложението, което създаваме, изисква максимална сигурност, свързана с медицината. Ако изтече поне един запис с данни, сме готови.
Проблемите със сигурността не са свързани с ORM техниките. Hibernate
е просто логичен и удобен обектно-ориентиран слой между чиста база данни JDBC извиквания и инструменти на програмистите. Това по някакъв начин не влияе върху сигурността на общата мрежа.