Java Persistence API: Tips, Patterns, and Best Practices
Jeg (Jesper) havde ikke bestemte forventninger til denne præsentaton, for den var lidt løst defineret.
Mine forventninger kunne vel per definition ikke indfries, det gjorde de nok heller ikke. Indholdet var en skøn forvirring at tips og tricks og sådan.
Hans tips var (skuffende, måske?) stort set altid at undgå mange af de nye JPA2 features:
- Brug nu for pokker JPA
- Undgå EmbeddedId
- Undgå embedded Collections, brug rigtige OneToMany
- Skriv dine joins ud ærligt i stede for at bruge dot-stier, for at vise hvilken performance, du reelt kræver
- Ditto for fetch joins
- Tænk aktivt på hvilken FlushMode, du bruger. Jeg kan skrive under på denne!
- Selvom der er typesikre criteriabyggere, så brug den ikke, brug named quieries i stedet med mindre du skal opbygge queries dyamisk.
- Pas på med bulk updates.
- Hvis du skal bruge native SQL, så smid det i en mapping fil, ikke i Javakoden.
- Brug detach() til at “rulle enkeltobjekter tilbage” uden at skulle lave en rigtig rollback.
- Brug EmbeddableEJBContainer til test!
- Nye lock-måder, direkte på em.find. Men pas på med pessimistic locking, overvej refresh-med lock.
- Selvom der er en masse nye ing i JPA2, så lad være med at bruge det hele, bare fordi du kan.
Q&A: Wrapping JPA in a DOA layer: DAO’er blev opfundet for at pakke alt der database-tvungne nonsens ind. Svaret: Du har nok ikke brug for et specifikt DAO lag mere, men din applikation skal jo have en anden struktur af en slags.
Plus: En fyr, der ved hvad han taler om.
Minus: Ikke meget struktur.