sql >> Databasteknik >  >> RDS >> Mysql

Är det en bra idé att använda Hibernate för att representera tabellrelationer?

Hibernate har en brant inlärningskurva men det har också följande fördelar:

  1. Infoga/uppdateringar är lättare på grund av "smutsig kontroll". När du väl har tjänsten på plats kan du enkelt lägga till nya fält utan att ändra en rad i din tjänst. Du behöver bara lägga till nya kolumner och fylla i dessa så tar Hibernate hand om beständighetsdelen.
  2. Hibernate kan lösa "förlorad uppdatering" problem på grund av dess optimistiska låsning samtidighetskontroll.
  3. Integrationstestning är enklare eftersom du kan generera schemat automatiskt för din databas i minnet (HSQLDB, H2, Derby)
  4. Den har ett plugin-program för cachning (genom tredje parts leverantörer av caching på andra nivån), vissa leverantörer tillåter dig att ha både "transaktionella" och "klustrade" cacher.
  5. Den har ett inbyggt AUDIT-stöd (Envers)

Så det är inte en "standard" persistenslösning, eftersom det finns miljontals webbappar skrivna i PHP utan ORM-ramverk som körs framgångsrikt i produktion.

Jag tror att Hibernate har mycket mer mening för företagsapplikationer där cachning, granskning, samtidighetstillförlitlighet är obligatoriska icke-funktionella krav.



  1. Hur man får nya användare per dag i MySQL

  2. Doktrin 2 DQL MySQL motsvarande ROUND()?

  3. Oracle DateTime i Where-klausul?

  4. Åtkomst nekad för användaren 'root'@'localhost' (med lösenord:YES )