Beantwortung der oben aufgeführten Probleme:
1. Hibernate kann sich nicht mit einer „vorhandenen“ Datenbank verbinden. Es versucht immer, ein eigenes zu erstellen.
Das ist falsch. Hibernate kann stellt eine Verbindung zu einer vorhandenen Datenbank her, und es wird nicht immer versucht, sie neu zu erstellen. Sie sollten nur Parameter wie hbm2ddl. auto
.
2. Auf unsere Datenbank kann über dieselbe Anwendung zugegriffen werden, die sich auf verschiedenen Plattformen befindet (Cloud, Server, VPS, Personal Computer). Hibernate kann in dieser Situation wegen seines Cachings Probleme machen.
Hibernate hat einen einstellbaren Cache, also ist das auch kein Problem.
3. Wir geben dem Java-Code niemals gerne die "Tabellenerstellungsarbeit". Wir erstellen Tabellen immer manuell.
Kein Problem. Siehe S.1 oben. Darüber hinaus gibt es mehrere praktische Bibliotheken zur indirekten Erstellung und Aktualisierung von Tabellen (z. B. liquibase ), die perfekt in Verbindung mit Hibernate verwendet werden kann.
4. Wir müssen möglicherweise sehr lange und komplexe SQL-Anweisungen verwenden. Letztes Mal haben wir eine Anweisung mit mehr als 150 Zeilen verwendet, die mehr als 20 Tabellen verbindet. Wir bezweifeln, ob wir in Bezug auf Hibernate Probleme bekommen werden.
Sie können jederzeit direkte JDBC-Aufrufe verwenden und native SQL-Abfragen über den Ruhezustand aufrufen, wenn dies erforderlich ist.
5. Unser SQL-Code ist nett und Standard. Hibernate-generierter Code scheint für uns etwas unsauber zu sein.
Nochmals, wenn Sie logisch komplizierten SQL-Code aufrufen müssen, anstatt den automatisch generierten Ruhezustand einzuschalten, können Sie das tun.
6. Wir verwenden immer MySQL. Verwenden Sie niemals eine andere DB.
Absolut kein Problem. Hibernate hat eine spezielle MySQL-Dialektunterstützung:org.hibernate.dialect.MySQLDialect
.
7. Die von uns erstellte Anwendung erfordert maximale Sicherheit in Bezug auf die Medizin. Wenn mindestens ein Datensatz geleakt ist, sind wir fertig.
Sicherheitsprobleme haben nichts mit ORM-Techniken zu tun. Hibernate
ist nur eine logische und praktische objektorientierte Schicht zwischen reinen Datenbank-JDBC-Aufrufen und Programmierwerkzeugen. Auf die allgemeine Netzsicherheit hat es keinen Einfluss.