Java >> Java tutorial >  >> Tag >> hibernate

Hibernate Tips af Thorben Janssen

Hej Thorben,

Fortæl mig lidt om dig selv.

Hej Petri,

tak for at have mig.

Jeg har været softwareudvikler og arkitekt i mere end 15 år med en stærk interesse for Hibernate, JPA og andre persistensteknologier. I de sidste par år skrev jeg om JPA og Hibernate på min blog, talte ved konferencer og tilbød åbent klasseværelse og online undervisning om Hibernate.

Jeg er også forfatter til Amazons bestsellerbog Hibernate Tips - Mere end 70 løsninger på almindelige Hibernate-problemer.

Mange kender dig som en Hibernate-ekspert. Hvorfor besluttede du dig for at blive det?

For at være ærlig skete det over tid og mere eller mindre ved et uheld. Jeg har altid været interesseret i de typiske Java backend-teknologier. Hibernate, som en af ​​de mest populære JPA-implementeringer, var naturligvis en del af det.

Som udvikler brugte jeg Hibernate i masser af projekter med meget forskellige krav. Nogle gange skulle jeg håndtere enorme mængder data eller parallelle anmodninger, og nogle gange skulle jeg bare implementere en lille applikation så hurtigt som muligt.
Som jeg har lært gennem årene, hjælper Hibernate dig med at implementere begge slags applikationer. Men du har brug for en god forståelse af dine krav og de forskellige Hibernate-funktioner.

I slutningen af ​​2013 startede jeg min blog med et par indlæg om JPA 2.1. Jeg erkendte hurtigt, at en masse andre udviklere var interesserede i det samme emne. Så jeg blev ved med at skrive og lære om JPA og Hibernate.

Nu, et par år senere, skrev jeg mere end 100 indlæg om JPA og Hibernate, arbejdede på en masse interessante projekter, talte ved konferencer, tilbød adskillige online-, on-site og åbne klasseundervisninger og skrev en bog om Hibernate. Og på et tidspunkt begyndte folk at kalde mig en ekspert;-)

Hvad er den mest almindelige misforståelse, som udviklere har om Hibernate?

Det afhænger af, om udvikleren kan lide at bruge Hibernate eller ej.

En almindelig misforståelse i gruppen af ​​udviklere, der bruger Hibernate, er, at Hibernate giver en god løsning til alt. Som med ethvert stykke software er det ikke tilfældet.

Hibernate og JPA gør implementeringen af ​​de fleste oprettelse, opdatering og sletning meget nem og effektiv. Men hvis du skal implementere en masse komplekse forespørgsler, er Hibernate oftest ikke det bedste valg. Du kan selvfølgelig bruge native SQL-forespørgsler med Hibernate. Men hvis du har brug for mange af dem, bør du tage et kig på andre rammer, såsom jOOQ eller QueryDSL, som gør dette meget nemmere.

En anden almindelig misforståelse er, at Hibernate ville være for langsom til applikationer med krav til høj ydeevne. Denne er især populær i gruppen af ​​udviklere, der ikke kan lide at bruge Hibernate.

Efter min erfaring er det oftest ikke tilfældet. Hibernate gør det nemt at implementere et persistenslag uden at forstå, hvordan Hibernate interagerer med databasen. Det gør det nemt at skabe en ineffektiv applikation. Selv når databaseadgangen ser ud til at være flaskehalsen, kunne de fleste af ydeevneproblemerne undgås med en bedre viden om Hibernate eller den brugte database.

Hibernate tilbyder masser af optimeringer, der reducerer antallet af nødvendige forespørgsler og på grund af dette forbedrer din applikations ydeevne. Gode ​​eksempler på det er:

  • Skrivet bag optimering, som grupperer flere opdateringshandlinger i én.
  • SequenceGenerator, som bruger hi-lo-algoritmen som standard for at undgå en ekstra SQL-sætning for at få den primære nøgleværdi for hver ny post.
  • Første niveau, andet niveau og forespørgselscache, der kan gemme en masse information i lokal hukommelse for at undgå unødvendige databaseforespørgsler.

Du udgav din første bog med titlen:"Hibernate Tips" tidligere på ugen. Hvorfor besluttede du dig for at skrive det, og hvilket problem løser det?

Jeg skrev Hibernate Tips - Mere end 70 løsninger på almindelige Hibernate problemer som en kogebog for at hjælpe mine læsere med at bruge Hibernate i deres daglige arbejde. Den bruger en FAQ eller problemløsningstilgang til at vise, hvordan man implementerer forskellige opgaver med Hibernate. Her kan du tage et kig på et par eksempler på kapitler.

Det hele startede i 2016 med en idé til en række blogindlæg. Jeg fik lignende spørgsmål fra kolleger og bloglæsere. De vidste, hvilke generelle koncepter de skulle anvende for at implementere deres nuværende opgave, men ikke de Hibernate-annoteringer og API'er, de skulle bruge. Eller de spekulerede på den bedste måde at implementere en fælles opgave på. Og som sikkert alle udviklere kendte jeg disse situationer alt for godt.

For at besvare disse spørgsmål begyndte jeg at skrive en række blogindlæg. Hvert indlæg besvarede et specifikt spørgsmål med en kort forklaring og et par kodestykker. Jeg erkendte hurtigt, at mange læsere kunne lide dette format, og at det også ville passe godt til en bog.

Så jeg begyndte at skitsere bogen og annoncerede den i januar 2017. Inden for de følgende 3 måneder skrev jeg mere end 35 tips udelukkende til bogen og redigerede de eksisterende indlæg. Bogen giver dig nu mere end 70 klar til brug opskrifter til emner som grundlæggende og avancerede kortlægninger, logning, Java 8 support, caching og statisk og dynamisk definerede forespørgsler.

Som du kan se, dækker det en bred vifte af emner, så det passer godt til udviklere på alle færdighedsniveauer, så længe de er fortrolige med generelle Hibernate- og JPA-koncepter. For blot et par dage kan du få det til en særlig lanceringspris på kun 2,99 USD (e-bog) eller 12,99 USD (paperback) på hibernate-tips.com.

Jeg har bemærket, at mange mennesker leder efter alternative måder at implementere deres arkiver på. Hvad jeg mener er, at folk ser ud til at erstatte ORM'er med almindelige gamle JDBC. Har du nogen tanker om dette?

Du er sikkert ikke overrasket, når jeg fortæller dig, at du ikke skal bruge almindelig JDBC. Denne API er svær at bruge og har masser af faldgruber, som du nemt kan undgå ved at bruge en af ​​de overordnede rammer.

Men det betyder heller ikke, at jeg anbefaler at bruge Hibernate til alle dine projekter. Det er en god ramme for mange projekter, især hvis du skal implementere mange oprette, opdatere eller slette operationer. Hvis det ikke er tilfældet, er der flere andre biblioteker, såsom jOOQ eller QueryDSL, som giver bedre støtte til komplekse forespørgsler. Hvis du ikke er sikker på, om Hibernate passer godt til dine projekter, bør du tage et kig på dette indlæg og spørgeskema, hvor jeg guider dig gennem beslutningen.

Og når du beslutter dig for, at Hibernate passer godt til dit projekt, bør du tage et kig på min nye bog Hibernate Tips - Mere end 70 løsninger på almindelige Hibernate-problemer. Det giver dig mere end 70 klar til brug opskrifter for at hjælpe dig med at implementere dit vedholdenhedslag med lethed. For blot et par dage kan du få det til en særlig lanceringspris på kun 2,99 USD (e-bog) eller 12,99 USD (paperback) på hibernate-tips.com.


No
Java tag