Odpovědi na výše uvedené problémy:
1. Hibernate se nemůže připojit k "existující" databázi. Vždy se snaží vytvořit vlastní.
To je špatně. Hibernace může připojit k existující databázi a ne vždy se ji snaží znovu vytvořit. Měli byste prostě vypnout parametr jako hbm2ddl. auto
.
2. K naší databázi může přistupovat stejná aplikace, která je na různých platformách (cloud, server, VPS, osobní počítač). Hibernate může v této situaci způsobovat problémy kvůli ukládání do mezipaměti.
Hibernate má nastavitelnou mezipaměť, takže to také není problém.
3. Nikdy neradi dáváme „práci na vytváření tabulek“ java kódu. Tabulky vytváříme ručně, vždy.
Žádný problém. Viz str. 1 výše. Kromě toho existuje několik vhodných knihoven pro nepřímé vytváření a aktualizaci tabulek (např. liquibase ), kterou lze perfektně použít ve spojení s režimem hibernace.
4. Možná budeme muset použít velmi dlouhé a složité příkazy SQL. Naposledy jsme použili příkaz s více než 150 řádky, spojujícími více než 20 tabulek. Pochybujeme, zda v tomto budeme čelit problémům, pokud jde o Hibernate.
Vždy můžete použít přímá volání JDBC a vyvolat nativní SQL dotazy přes hibernaci, pokud je to potřeba.
5. Náš kód SQL je pěkný a standardní. Zdá se, že kód generovaný režimem hibernace je pro nás trochu špinavý.
Opět, pokud musíte vyvolat nějaký logický komplikovaný kód SQL namísto automaticky generovaného kódu hibernace – můžete to udělat.
6. Vždy používáme MySQL. Nikdy nepoužívejte jinou DB.
To vůbec není problém. Hibernate má speciální podporu dialektů MySQL:org.hibernate.dialect.MySQLDialect
.
7. Aplikace, kterou vytváříme, vyžadují maximální zabezpečení související s medicínou. Pokud unikne alespoň jeden datový záznam, jsme hotovi.
Bezpečnostní problémy se netýkají technik ORM. Hibernate
je jen logická a pohodlná objektově orientovaná vrstva mezi čistě databázovými JDBC voláními a programátorskými nástroji. Nemá žádný vliv na běžnou síťovou bezpečnost.