3
Hibernate tu connais … mais en fait tu connais pas Speaker : Emmanuel Bernard (JBoss) Format : Conférence Date : 22 avril 2016 Pendant cette conférence, Emmanuel présente les nouveautés de la version 5 des projets Hibernate. Hibernate 5 ORM Bootstrap plus propre o Prend des classes d’un peu partout : classes entité, XML, Proxy, DataSource o Modularisation améliorée o Découpage en 3 blocs § StandardServiceRegistry : configuration globale § Metadata : hbm.xml, entité, stratégie de nommage § SessionFactory Compatible Java 8 o Pas de lambdas o Mais support Data & Time : nouveau module hibernate-java8 à ajouter o Amélioration sur les Generics et AutoClosable § Plus besoin de downcast session.get() Augmentation par Bytecode o Détection des changements plus intelligents pour la comparaison entre les propriétés d’objet. Le bytecode enhancement permet de limiter les objets à comparer (dirty tracking) o Outillage maven : lazy initialisation, dirty tracking … o Par défaut, toutes les propriétés sont chargées, sauf lorsqu’on appelle @Lazy. Lors du premier appel à une propriété @Lazy, toutes les propriétés sont chargées. Introduction d’une notion de groupe de propriété via @LazyGroup o Management des associations bidirectionnelles : la mise à jour d’un object d’un côté est mis à jour de l’autre côté Cache de second niveau o Moins d’objets créés par Hibernate (ex : la clé est partagée entre Hibernate et le cache)

Hibernate tu connais … mais en fait tu connais pas - Développeur … · Hibernate tu connais … mais en fait tu connais pas Speaker : Emmanuel Bernard (JBoss) Format : Conférence

  • Upload
    others

  • View
    16

  • Download
    0

Embed Size (px)

Citation preview

Hibernatetuconnais…maisenfaittuconnaispas

Speaker:EmmanuelBernard(JBoss)

Format:Conférence

Date:22avril2016

Pendantcetteconférence,Emmanuelprésentelesnouveautésdelaversion5desprojets

Hibernate.

Hibernate5ORM

• Bootstrappluspropre

o Prenddesclassesd’unpeupartout:classesentité,XML,Proxy,DataSource

o Modularisationaméliorée

o Découpageen3blocs

§ StandardServiceRegistry:configurationglobale

§ Metadata:hbm.xml,entité,stratégiedenommage

§ SessionFactory

• CompatibleJava8

o Pasdelambdas

o MaissupportData&Time:nouveaumodulehibernate-java8àajouter

o AméliorationsurlesGenericsetAutoClosable

§ Plusbesoindedowncastsession.get()

• AugmentationparBytecode

o Détectiondeschangementsplusintelligentspourlacomparaisonentreles

propriétésd’objet.Lebytecodeenhancementpermetdelimiterlesobjetsà

comparer(dirtytracking)

o Outillagemaven:lazyinitialisation,dirtytracking…

o Pardéfaut,touteslespropriétéssontchargées,sauflorsqu’onappelle@Lazy.

Lorsdupremierappelàunepropriété@Lazy,touteslespropriétéssont

chargées.Introductiond’unenotiondegroupedepropriétévia@LazyGroup

o Managementdesassociationsbidirectionnelles:lamiseàjourd’unobject

d’uncôtéestmisàjourdel’autrecôté

• Cachedesecondniveau

o Moinsd’objetscréésparHibernate(ex:lacléestpartagéeentreHibernateet

lecache)

o Cacheparréférence:tousleslesobjetsquinebougentjamais(objetsde

référenceimmuables)sontpartagésparlesdifférentessessionsHibernates

(plusderecopie).Aactiveravecuser_reference_entries

• Divers

o UUID:superimportantpourle@NoSQLcarpeutêtregéréparleclient.

o Namingstrategy:stratégieimplicitetraduitlenomd’uneclasseenunnom

detable.Onpeutdésormaispersonnaliserlenommage.

o Documentation:groseffortapportépourrafraichirladocumentation.Ilssont

repartisdezéroetontajoutépleind’exemples.Blogsurin.relation.to

HibernateSearch

• Indexationfull-textdéléguéeàLucene

• S’accrocheàunesourcededonnée,leplusconnueétantHibernateORM,pour

mettreàjourl’index

• Clustermaster/save

• Récemment:

o MontéedeversionàLucene5

o Améliorationssurlesperformances:utilisationd’unequeuepourleflush.Se

rapprochedesperfsNRT

o BackendElasticsearch(seréféreràlaconférenceElasticsearchetHibernatesontsurunbateau)

• Annotations:@Indexed,@Spatial,@Field,@Facet,@NumericField,@Latitude,

@Longitude,@IndexedEmbedded

HibernateOGM

• UtiliselesannotationsJPApourpersisterlesentitésdansdesbasesNoSQL

• Support:MongoDB,Infinispan,Neo4j,Redis,EhCache,Cassandra,CouchDB

• PratiquepourdémarreravecleNoSQLsanstropdechangementspourle

développeurexpérimentéenJPA

HibernateValidator

• ImplémentationderéférencedeBeanValidation

• Nouveau:pasdelambda,nomsréelsdesparamètres,DateetTime,Optional,

gestiondescollections:List<@MyNotNull@EmailString>emails

• Lescontraintespeuventêtredéclaréesparprogrammation(DSLpropreàHibernate

Validator)=>permetd’appliquerdynamiquementlescontraintes

HibernateSpatial

• Extensiond’HibernateORMintégrantdesfonctionsspacialesnativesauxbasesde

données.

• Utilisationd’undialectspéciale

• LarequêteJQLchangeunpeu

Questions/Réponses

• Supportd’Hazelcastprévucommecachede2ndniveau?SeconcentresurJCache.

• Supportd’HbasedansHibernateOGM?ouimaisproblèmedebandepassante.

PréfèreseconcentrersurCassandra.

• PourquoiElasticsearchetpasSolr?L’objectifestd’avoirles2.Ilfallaitcommencer

parunmoteur.

• Intégrationd’Hibernate5dansSpringBoot?SûrdansSpringData.Avérifierdans

SpringBoot.