Usare JBoss JPA 2

download Usare JBoss JPA 2

of 5

Transcript of Usare JBoss JPA 2

  • 7/21/2019 Usare JBoss JPA 2

    1/5

    Usare JBoss JPA 2.1 e Hibernate 4.3 su JBoss EAP 6.2 (JBoss

    As 7) e integrare Spring (JPA Spring e JBoss Integration )

    Oggi parleremo di come integrare Spring e JBoss AS 7 (JBoss EAP 6). Dato che la nuovaversione di JBoss ignetta in modo implicito propri moduli OS!i (logging" JPA" #i$ernate)" pu%essere a volte ripetitivo ed inutile doverli gestire a livello applicativo. &uindi presentiamo unesempio su come integrare Spring con JBoss lasciando che JBoss ignetti le proprie li$rerie"oppure usando JPA '. che non ancora nativamente supportato da JBoss" e si dovr*impedire che JBoss implementi l+in,ection automatic di JPA e #i$ernate.

    Step 1 : Persistence.xml-a creaione del /ile persistence.0ml dipender* dal /atto se l+Entit1 2anager verr* gestito dalcontainer (JBoss" 3undi JPA '.4) o da Spring (nel 3ual caso useremo JPA '.).

    - JBoss gestisce lEntityManager: Uso di JPA 2.0n 3uesto caso" il 5ransaction 51pe deve essere J5A. JBoss EAP 6.' ($asato su JBoss 7.)viene rilasciato con JPA'.4

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    ()v)&'m/

    -Spring gestisce l EntityManager: Uso di JPA2.1Avendo $isogno di escludere i moduli OS!i di JPA e di #i$ernate rilasciati con la versioneoriginale di JBoss" e volendo usare JPA'." a$iamo $isogno di

    8 9reare un /ile ,pa8persistence.0ml. n 3uesto caso" dove non vogliamo che JBoss ignetti leproprie li$rerie" meglio cam$iare il nome del /ile che di norma si chiama persistence.0ml( JBoss caricher* il proprio modulo JPA in modo implicito se intercetta un /ile chiamatopersistence.0ml).

    8 :sare ;ESO:;9E

  • 7/21/2019 Usare JBoss JPA 2

    2/5

    8 :sere =org.hi$ernate.,pa.#i$ernatePersistenceProvider= come provider

    8 Aggiungere la seguente propert1 al /ile persitence.0ml (,pa8persistence.0ml))lse"/>

    :n modo pi drastico di escludere i moduli OS!i che JBoss utilia di de/ault attraverso il /ile,$oss8deplo1ment8structure.0ml che sar* di 3uesto tipo

  • 7/21/2019 Usare JBoss JPA 2

    3/5

    - JBoss gestisce lEntityManagero %ntity&anager'actory e Spring (anno solo ilriferimento ad un jndi name. )l *ransaction *ype deve essere +*,.,pplication$ontext sar/ cos0:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    n 3uesto caso" l+applicaione usa una persistence unit deployata sul server. &uindi leclassi ,ava0.persistence ed il persistence provider (#i$ernate) sono contenuti all+interno dimoduli in JBoss(in +2SS342&%5modules5system5layers5base5javax5persistence5api5main) e aggiuntiautomaticamente dall+applicaione durante il deplo1 (&uando viene intercettato il /ilepersistence.0ml o il persistence8unit" JBoss ignetta #i$ernate in modo implicito).:sando una persistence unit deploata sul server" dovrete anche dichiarare un J?Dpersistence conte0t nel @e$.0ml?B)l nome della persistence-unit specificato nel 6eb.xml deve essere lo stesso di7uello dic(iarato nel file persitence.xml 8

  • 7/21/2019 Usare JBoss JPA 2

    4/5

    9

    10

    11

    12

    class>org.s%ring>r)me+or.+e.con$ex$.on$ex$o)deris$ener

    $es$'m>)c$

    mod*leen$er%rise

    ?otate che il nome che a$$iamo dichiarato nell+ application8conte0t java:compenvtestmyfact; e nel e$.0ml" do$$iamo mettere solotestmyfact

    Se Spring non pu% trovare il transaction 2anager di de/ault di JBoss" pu% essere esplicitatocome spiegato in 3uesto articolo.

    8Spring gestisce lEntityManager.

    :sando JPA'.4" possiamo a$ilitare il modulo JPA incluso all+interno di JBoss ed usare la primapossi$ilit*. 2a a$$iamo disa$ilitato il modulo OS!i JPA e deciso di lavorare con JPA'. (Evogliamo che Spring gestisca il persistence unit)" 3uindi l+Entit12anageractor1 verr* de/initousando Spring.l nostro application9onte0t sar*

    http://mariemjabloun.blogspot.com/2014/04/resolve-transactionmanager-lookup-fails.htmlhttp://mariemjabloun.blogspot.com/2014/04/resolve-transactionmanager-lookup-fails.html
  • 7/21/2019 Usare JBoss JPA 2

    5/5

    &uesto tutto" adesso dovreste essere in grado di integrare JBoss e Spring sia a$ilitando lagestione del persistence unit da parte di JBoss" o lasciandolo /are a Spring e ES9-:DE?DO 2OD:- JBOSS JPA e #i$ernate.