Usare JBoss JPA 2
-
Upload
richardgennaro -
Category
Documents
-
view
226 -
download
0
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.