You are on page 1of 22

Spring Data JPA + JSF + Maven + MySQL using Eclipse IDE - Simple Example to start it!

I am in t!e process o" learning Spring Data JPA an# as trying a lot to use it it! a JSF $e% Application create# as a Maven project t!roug! Eclipse& I as "acing issues an# ultimately getting 'ull Pointer Exceptions at many places& A"ter searc!ing t!e internet "or a long time( still I coul# not "in# a simple example !ic! ill explain t!e use o" t o "rame or)s toget!er i&e& Spring Data JPA and JSF& *ut( one o" my "rien#s +,unal Lau#- !elpe# me to overcome t!e issues& I t!oug!t o" s!aring t!e application !ere as t!ere mig!t %e many learners li)e me !o are "acing similar issues& I !ope t!is #ocument ill %e o" some !elp& .- /reate a #ata%ase ta%le "irst& *elo is t!e 0uery !ic! I use#(
CREATE TABLE `Employee` ( `empid` int(11) NOT NULL AUTO_INCREMENT, `name` va !"a (#$) COLLATE %t&'_%ni!ode_!i (E)AULT NULL, `add e**` va !"a (#$) COLLATE %t&'_%ni!ode_!i (E)AULT NULL, `a+e` int(#) (E)AULT NULL, `*ala y` int(1$) (E)AULT NULL, ,RIMAR- .E- (`empid`) ) EN/INE0Inno(B AUTO_INCREMENT0# (E)AULT C1AR2ET0%t&' COLLATE0%t&'_%ni!ode_!i COMMENT03%t&'_%ni!ode_!i3

1- 2!en( I create# a ne maven pro3ect t!roug! Eclipse& /reate a simple pro3ect& S)ip arc!etype selection& 4- 2!en on t!e next page( enter #esire# 5roup I# an# Arti"act I#& Select ar as pac)aging option& 6- 'ext( t!e most important t!ing is to up#ate pom.xml it! t!e necessary #epen#encies& *elo is t!e pom&xml "ile(
4p o5e!t 6mln*07"ttp899maven:apa!"e:o +9,OM9;:$:$7 6mln*86*i07"ttp899<<<:<#:o +9=$$19>ML2!"ema?in*tan!e7

6*i8*!"emaLo!ation07"ttp899maven:apa!"e:o +9,OM9;:$:$ "ttp899maven:apa!"e:o +9maven?v;_$_$:6*d7@ 4modelAe *ion@;:$:$49modelAe *ion@ 4+ o%pId@!om:empm+mnt:emp49+ o%pId@ 4a ti&a!tId@EmployeeM+mnt49a ti&a!tId@ 4pa!Ba+in+@<a 49pa!Ba+in+@ 4ve *ion@1:$?2NA,21OT49ve *ion@ 4name@Employee Maven CeDapp49name@ 4% l@"ttp899maven:apa!"e:o +49% l@ 4 epo*ito ie*@ 4 epo*ito y@ 4id@ epo*ito y:5Do**:o +?p%Dli!49id@ 4name@EBo** epo*ito y49name@ 4% l@"ttp*899 epo*ito y:5Do**:o +9ne6%*9!ontent9+ o%p*9p%Dli!49% l@ 49 epo*ito y@ 49 epo*ito ie*@ 4p ope tie*@ 4"iDe nate:ve *ion@;:$:1:)inal49"iDe nate:ve *ion@ 4my*Fl:!onne!to :ve *ion@G:1:1'49my*Fl:!onne!to :ve *ion@ 4*l&;5:ve *ion@1:H:149*l&;5:ve *ion@ 4*p in+:ve *ion@#:1:$:RELEA2E49*p in+:ve *ion@ 4p o5e!t:D%ild:*o% !eEn!odin+@UT)?'49p o5e!t:D%ild:*o% !eEn!odin+@ 49p ope tie*@ 4dependen!ie*@ 4dependen!y@ 4+ o%pId@!om:*%n:&a!e*49+ o%pId@ 4a ti&a!tId@5*&?api49a ti&a!tId@ 4ve *ion@=:1:I49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@!om:*%n:&a!e*49+ o%pId@ 4a ti&a!tId@5*&?impl49a ti&a!tId@ 4ve *ion@=:1:I49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@5ava6:*e vlet49+ o%pId@ 4a ti&a!tId@5*tl49a ti&a!tId@ 4ve *ion@1:=49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@5ava6:*e vlet49+ o%pId@ 4a ti&a!tId@*e vlet?api49a ti&a!tId@ 4ve *ion@=:G49ve *ion@ 4*!ope@p ovided49*!ope@ 49dependen!y@

4dependen!y@ 4+ o%pId@5ava6:*e vlet:5*p49+ o%pId@ 4a ti&a!tId@5*p?api49a ti&a!tId@ 4ve *ion@=:149ve *ion@ 4*!ope@p ovided49*!ope@ 49dependen!y@ 4dependen!y@ 4+ o%pId@!om:*%n:el49+ o%pId@ 4a ti&a!tId@el? i49a ti&a!tId@ 4ve *ion@1:$49ve *ion@ 4*!ope@p ovided49*!ope@ 49dependen!y@ 4dependen!y@ 4+ o%pId@5ava649+ o%pId@ 4a ti&a!tId@5avaee?api49a ti&a!tId@ 4ve *ion@H:$49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@o +:*p in+& ame<o B49+ o%pId@ 4a ti&a!tId@*p in+?Dean*49a ti&a!tId@ 4ve *ion@JK*p in+:ve *ionL49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@o +:*p in+& ame<o B49+ o%pId@ 4a ti&a!tId@*p in+?!o e49a ti&a!tId@ 4ve *ion@JK*p in+:ve *ionL49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@o +:*p in+& ame<o B49+ o%pId@ 4a ti&a!tId@*p in+?!onte6t?*%ppo t49a ti&a!tId@ 4ve *ion@JK*p in+:ve *ionL49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@o +:*p in+& ame<o B49+ o%pId@ 4a ti&a!tId@*p in+?!onte6t49a ti&a!tId@ 4ve *ion@JK*p in+:ve *ionL49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@o +:*p in+& ame<o B49+ o%pId@ 4a ti&a!tId@*p in+?5dD!49a ti&a!tId@ 4ve *ion@JK*p in+:ve *ionL49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@o +:*p in+& ame<o B49+ o%pId@ 4a ti&a!tId@*p in+?o m49a ti&a!tId@ 4ve *ion@JK*p in+:ve *ionL49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@o +:*p in+& ame<o B49+ o%pId@

4a ti&a!tId@*p in+?t649a ti&a!tId@ 4ve *ion@JK*p in+:ve *ionL49ve *ion@ 49dependen!y@ 4M?? 2p in+ MAC ??@ 4dependen!y@ 4+ o%pId@o +:*p in+& ame<o B49+ o%pId@ 4a ti&a!tId@*p in+?<eD49a ti&a!tId@ 4ve *ion@JK*p in+:ve *ionL49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@o +:*p in+& ame<o B49+ o%pId@ 4a ti&a!tId@*p in+?<eDmv!49a ti&a!tId@ 4ve *ion@JK*p in+:ve *ionL49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@!+liD49+ o%pId@ 4a ti&a!tId@!+liD49a ti&a!tId@ 4ve *ion@=:=:=49ve *ion@ 49dependen!y@ 4M?? 2p in+ (ata E,A ??@ 4dependen!y@ 4+ o%pId@o +:*p in+& ame<o B:data49+ o%pId@ 4a ti&a!tId@*p in+?data?5pa49a ti&a!tId@ 4ve *ion@1:$:=:RELEA2E49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@o +:*p in+& ame<o B:data49+ o%pId@ 4a ti&a!tId@*p in+?data?!ommon*?!o e49a ti&a!tId@ 4ve *ion@1:=:1:RELEA2E49ve *ion@ 49dependen!y@ 4M?? 1iDe nate ??@ 4dependen!y@ 4+ o%pId@o +:"iDe nate49+ o%pId@ 4a ti&a!tId@"iDe nate?!o e49a ti&a!tId@ 4ve *ion@JK"iDe nate:ve *ionL49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@o +:"iDe nate49+ o%pId@ 4a ti&a!tId@"iDe nate?entitymana+e 49a ti&a!tId@ 4ve *ion@JK"iDe nate:ve *ionL49ve *ion@ 49dependen!y@ 4M?? 1= (ataDa*e ??@ 4dependen!y@ 4+ o%pId@!om:"=dataDa*e49+ o%pId@ 4a ti&a!tId@"=49a ti&a!tId@ 4ve *ion@1:#:1H$49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@o +:"iDe nate49+ o%pId@ 4a ti&a!tId@"iDe nate?validato ?annotation?p o!e**o 49a ti&a!tId@ 4ve *ion@;:1:$:)inal49ve *ion@ 49dependen!y@

4M?? My2NL E(BC !onne!to ??@ 4M?? I& yo% <ant to %*e My2NL, %n!omment t"i* dependen!y de!lation: ??@ 4dependen!y@ 4+ o%pId@my*Fl49+ o%pId@ 4a ti&a!tId@my*Fl?!onne!to ?5ava49a ti&a!tId@ 4ve *ion@JKmy*Fl:!onne!to :ve *ionL49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@!om:5olDo649+ o%pId@ 4a ti&a!tId@Done!p49a ti&a!tId@ 4ve *ion@$:I:1:RELEA2E49ve *ion@ 49dependen!y@ 4M?? Lo++in+ dependen!ie* ??@ 4dependen!y@ 4+ o%pId@o +:*l&;549+ o%pId@ 4a ti&a!tId@*l&;5?api49a ti&a!tId@ 4ve *ion@JK*l&;5:ve *ionL49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@o +:*l&;549+ o%pId@ 4a ti&a!tId@*l&;5?lo+;51=49a ti&a!tId@ 4ve *ion@JK*l&;5:ve *ionL49ve *ion@ 49dependen!y@ 4dependen!y@ 4+ o%pId@lo+;549+ o%pId@ 4a ti&a!tId@lo+;549a ti&a!tId@ 4ve *ion@1:=:1H49ve *ion@ 49dependen!y@ 4M?? T"e E2R?#$# Bean Aalidation A,I liD a y: ??@ 4dependen!y@ 4+ o%pId@5ava6:validation49+ o%pId@ 4a ti&a!tId@validation?api49a ti&a!tId@ 4ve *ion@1:$:$:/A49ve *ion@ 49dependen!y@ 49dependen!ie*@ 4D%ild@ 4OnalName@EmpMana+ement49OnalName@ 4pl%+in*@ 4pl%+in@ 4+ o%pId@o +:apa!"e:maven:pl%+in*49+ o%pId@ 4a ti&a!tId@maven?!ompile ?pl%+in49a ti&a!tId@ 4ve *ion@=:#:149ve *ion@ 4!onO+% ation@ 4*o% !e@1:H49*o% !e@ 4ta +et@1:H49ta +et@ 49!onO+% ation@ 49pl%+in@ 49pl%+in*@

49D%ild@ 49p o5e!t@

7nce you save t!e pom&xml "ile( Maven ill automatically start #o nloa#ing t!e re0uire# #epen#encies& I" not( you can a- rig!t clic) on pro3ect un#er Pro3ect Explorer %- /lic) on 8un As c- Select maven install 9- 'ext( up#ate t!e web.xml as "ollo s
4P6ml ve *ion071:$7 en!odin+07UT)?'7P@ 4<eD?app 6mln*86*i07"ttp899<<<:<#:o +9=$$19>ML2!"ema?in*tan!e7 6mln*07"ttp8995ava:*%n:!om96ml9n*95avaee7 6mln*8<eD07"ttp8995ava:*%n:!om96ml9n*95avaee9<eD?app_=_G:6*d7 6*i8*!"emaLo!ation07"ttp8995ava:*%n:!om96ml9n*95avaee "ttp8995ava:*%n:!om96ml9n*95avaee9<eD?app_=_G:6*d7 id07CeDApp_I(7 ve *ion07=:G7@ 4di*play?name@EmpMana+ement49di*play?name@ 4M?? C"an+e to 7, od%!tion7 <"en yo% a e eady to deploy ??@ 4!onte6t?pa am@ 4pa am?name@5ava6:&a!e*:,ROEECT_2TA/E49pa am?name@ 4pa am?val%e@(evelopment49pa am?val%e@ 49!onte6t?pa am@ 4M?? Cel!ome pa+e ??@ 4<el!ome?Ole?li*t@ 4<el!ome?Ole@&a!e*9"ello:6"tml49<el!ome?Ole@ 49<el!ome?Ole?li*t@ 4*e vlet@ 4*e vlet?name@2p in+ MAC (i*pat!"e 2e vlet49*e vlet?name@ 4*e vlet?!la**@o +:*p in+& ame<o B:<eD:*e vlet:(i*pat!"e 2e vlet49*e vlet?!l a**@ 4init?pa am@ 4pa am?name@!onte6tConO+Lo!ation49pa am?name@ 4pa am?val%e@9CEB?IN)9appli!ationConte6t:6ml49pa am?val%e@ 49init?pa am@ 4load?on?*ta t%p@149load?on?*ta t%p@

49*e vlet@ 4*e vlet?mappin+@ 4*e vlet?name@2p in+ MAC (i*pat!"e 2e vlet49*e vlet?name@ 4% l?patte n@9*p in+9Q49% l?patte n@ 49*e vlet?mappin+@ 4M?? Add 2%ppo t &o 2p in+ ??@ 4li*tene @ 4li*tene ?!la**@ o +:*p in+& ame<o B:<eD:!onte6t:Conte6tLoade Li*tene 49li*tene ?!la**@ 49li*tene @ 4li*tene @ 4li*tene ?!la**@ o +:*p in+& ame<o B:<eD:!onte6t: eF%e*t:ReF%e*tConte6tLi*tene 49li*tene ?!la**@ 49li*tene @ 4M?? E2) mappin+ ??@ 4*e vlet@ 4*e vlet?name@)a!e* 2e vlet49*e vlet?name@ 4*e vlet?!la**@5ava6:&a!e*:<eDapp:)a!e*2e vlet49*e vlet?!la**@ 4load?on?*ta t%p@149load?on?*ta t%p@ 49*e vlet@ 4M?? Map t"e*e Ole* <it" E2) ??@ 4*e vlet?mappin+@ 4*e vlet?name@)a!e* 2e vlet49*e vlet?name@ 4% l?patte n@9&a!e*9Q49% l?patte n@ 49*e vlet?mappin+@ 4*e vlet?mappin+@ 4*e vlet?name@)a!e* 2e vlet49*e vlet?name@ 4% l?patte n@Q:5*&49% l?patte n@ 49*e vlet?mappin+@ 4*e vlet?mappin+@ 4*e vlet?name@)a!e* 2e vlet49*e vlet?name@ 4% l?patte n@Q:&a!e*49% l?patte n@ 49*e vlet?mappin+@ 4*e vlet?mappin+@ 4*e vlet?name@)a!e* 2e vlet49*e vlet?name@ 4% l?patte n@Q:6"tml49% l?patte n@ 49*e vlet?mappin+@ 4!onte6t?pa am@ 4de*! iption@2tate *avin+ met"od8 3!lient3 o 3*e ve 3 (0de&a%lt): 2ee E2) 2pe!iO!ation =:G:=49de*! iption@ 4pa am?name@5ava6:&a!e*:2TATE_2AAIN/_MET1O(49pa am?name@ 4pa am?val%e@!lient49pa am?val%e@ 49!onte6t?pa am@ 4!onte6t?pa am@ 4pa am?name@5ava6:*e vlet:5*p:5*tl:&mt:lo!aliRationConte6t49pa am?name@ 4pa am?val%e@ e*o% !e*:appli!ation49pa am?val%e@

49!onte6t?pa am@ 4li*tene @ 4li*tene ?!la**@!om:*%n:&a!e*:!onO+:ConO+% eLi*tene 49li*tene ?!la**@ 49li*tene @ 49<eD?app@

:- 'ext( create Java classes as "ollo s;Domain Entity: Employee.java


pa!Ba+e !om:empm+mnt:domainS impo t 5ava6:pe *i*ten!e:EntityS impo t 5ava6:pe *i*ten!e:IdS impo t 5ava6:pe *i*ten!e:TaDleS TEntity TTaDle(name07Employee7) p%Dli! !la** Employee K p ivate 2t in+ nameS p ivate 2t in+ add e**S p ivate Inte+e a+eS p ivate Inte+e *ala yS TId p ivate Inte+e empidS p%Dli! 2t in+ +etAdd e**() K et% n add e**S L p%Dli! void *etAdd e**(2t in+ add e**) K t"i*:add e** 0 add e**S L p%Dli! Inte+e +etA+e() K et% n a+eS L p%Dli! void *etA+e(Inte+e a+e) K t"i*:a+e 0 a+eS L p%Dli! Inte+e +et2ala y() K et% n *ala yS L

p%Dli! void *et2ala y(Inte+e *ala y) K t"i*:*ala y 0 *ala yS L p%Dli! Inte+e +etEmpid() K et% n empidS L p%Dli! void *etEmpid(Inte+e empid) K t"i*:empid 0 empidS L p%Dli! 2t in+ +etName() K et% n nameS L p%Dli! void *etName(2t in+ name) K t"i*:name 0 nameS L L

!epositories: Employee!epository.java
pa!Ba+e !om:empm+mnt: epo*ito ie*S impo t o +:*p in+& ame<o B:data:5pa: epo*ito y:EpaRepo*ito yS impo t !om:empm+mnt:domain:EmployeeS p%Dli! inte &a!e EmployeeRepo*ito y e6tend* EpaRepo*ito y4Employee, Lon+@K L

Service:- EmployeeService.java
pa!Ba+e !om:empm+mnt:*e vi!e*S impo t 5ava:%til:Li*tS impo t !om:empm+mnt:domain:EmployeeS impo t !om:empm+mnt:t an*&e oD5e!t*:Employee(TOS p%Dli! inte &a!e Employee2e vi!e K p%Dli! void ! eate(Employee(TO emp)S p%Dli! void delete(Employee(TO emp)S

p%Dli! Employee *ea !"(Inte+e id)S p%Dli! Li*t4Employee@ OndAll()S L

Service Implementation:- EmployeeServiceImpl.java


pa!Ba+e !om:empm+mnt:*e vi!e*S impo impo impo impo impo t t t t t 5ava:%til:Li*tS o +:*p in+& ame<o o +:*p in+& ame<o o +:*p in+& ame<o o +:*p in+& ame<o B:Dean*:&a!to y:annotation:A%to<i edS B:*te eotype:ComponentS B:*te eotype:2e vi!eS B:t an*a!tion:annotation:T an*a!tionalS

impo t !om:empm+mnt:domain:EmployeeS impo t !om:empm+mnt: epo*ito ie*:EmployeeRepo*ito yS impo t !om:empm+mnt:t an*&e oD5e!t*:Employee(TOS TComponent T2e vi!e p%Dli! !la** Employee2e vi!eImpl implement* Employee2e vi!eK p ivate *tati! Inte+e ne<_emp_id0$S p ivate *yn!" oniRed *tati! Inte+e +etNe<EmpId()K et% n ne<_emp_idUUS L TA%to<i ed p ivate EmployeeRepo*ito y employeeRepo*ito yS p ivate Employee +etEmployee(Employee(TO employee(TO)K Employee employee 0 ne< Employee()S employee:*etEmpid(employee(TO:+etEmpid())S employee:*etName(employee(TO:+etName())S employee:*etA+e(employee(TO:+etA+e())S employee:*etAdd e**(employee(TO:+etAdd e**())S employee:*et2ala y(employee(TO:+et2ala y())S et% n employeeS L TOve ide p%Dli! void ! eate(Employee(TO emp) K 2y*tem:o%t:p intln(7VVVVVVVVVVVV 2avin+ *e vi!e VVVVVVVVVVVVVV7)S Employee e 0 +etEmployee(emp)S

e:*etEmpid(Employee2e vi!eImpl:+etNe<EmpId())S employeeRepo*ito y:*ave(e)S 2y*tem:o%t:p intln(7VVVVVVVVVVV A&te 2avin+ *e vi!e VVVVVVVVVVVVVV7)S L TOve ide p%Dli! void delete(Employee(TO emp) K employeeRepo*ito y:delete(+etEmployee(emp))S L TOve ide p%Dli! Employee *ea !"(Inte+e id) K et% n employeeRepo*ito y:OndOne(Lon+:val%eO&(id))S L TOve ide p%Dli! Li*t4Employee@ OndAll() K et% n employeeRepo*ito y:OndAll()S L L

Transfer Object:- EmployeeDTO.java


pa!Ba+e !om:empm+mnt:t an*&e oD5e!t*S impo t 5ava:io:2e ialiRaDleS p%Dli! !la** Employee(TO implement* 2e ialiRaDleK p ivate 2t in+ nameS p ivate 2t in+ add e**S p ivate Inte+e a+eS p ivate Inte+e *ala yS p ivate Inte+e empidS p%Dli! 2t in+ +etAdd e**() K et% n add e**S L p%Dli! void *etAdd e**(2t in+ add e**) K t"i*:add e** 0 add e**S L p%Dli! Inte+e +etA+e() K et% n a+eS L

p%Dli! void *etA+e(Inte+e a+e) K t"i*:a+e 0 a+eS L p%Dli! Inte+e +et2ala y() K et% n *ala yS L p%Dli! void *et2ala y(Inte+e *ala y) K t"i*:*ala y 0 *ala yS L p%Dli! Inte+e +etEmpid() K et% n empidS L p%Dli! void *etEmpid(Inte+e empid) K t"i*:empid 0 empidS L p%Dli! 2t in+ +etName() K et% n nameS L p%Dli! void *etName(2t in+ name) K t"i*:name 0 nameS L L

"ser #nter$ace %"#& 'ontroller : Employee(ean.java


pa!Ba+e !om:empm+mnt:%iS impo impo impo impo impo impo impo t t t t t t t 5ava:io:2e ialiRaDleS 5ava6:in5e!t:In5e!tS o +:*p in+& ame<o B:Dean*:&a!to y:annotation:A%to<i edS o +:*p in+& ame<o B:!onte6t:annotation:2!opeS o +:*p in+& ame<o B:*te eotype:ComponentS !om:empm+mnt:*e vi!e*:Employee2e vi!eS !om:empm+mnt:t an*&e oD5e!t*:Employee(TOS

TComponent T2!ope(7*e**ion7) p%Dli! !la** EmployeeBean implement* 2e ialiRaDle K p ivate *tati! Onal lon+ *e ialAe *ionUI( 0 1LS

p p p p p

ivate ivate ivate ivate ivate

2t in+ nameS 2t in+ add e**S Inte+e a+eS Inte+e *ala yS Inte+e empidS

TIn5e!t TA%to<i ed Employee2e vi!e employee2e vi!eImplS p%Dli! 2t in+ +etAdd e**() K et% n add e**S L p%Dli! void *etAdd e**(2t in+ add e**) K t"i*:add e** 0 add e**S L p%Dli! Inte+e +etA+e() K et% n a+eS L p%Dli! void *etA+e(Inte+e a+e) K t"i*:a+e 0 a+eS L p%Dli! Inte+e +et2ala y() K et% n *ala yS L p%Dli! void *et2ala y(Inte+e *ala y) K t"i*:*ala y 0 *ala yS L p%Dli! Inte+e +etEmpid() K et% n empidS L p%Dli! void *etEmpid(Inte+e empid) K t"i*:empid 0 empidS L p%Dli! 2t in+ +etName() K et% n nameS L p%Dli! void *etName(2t in+ name) K t"i*:name 0 nameS L

p%Dli! void *aveEmployee()K 2y*tem:o%t:p intln(7VVVVVVVVVVVVV 2avin+ VVVVVVVVVVVVVVVV7)S Employee(TO employee(TO 0 ne< Employee(TO()S employee(TO:*etAdd e**(t"i*:+etAdd e**())S employee(TO:*etName(t"i*:+etName())S employee(TO:*etA+e(t"i*:a+e)S employee(TO:*et2ala y(t"i*:*ala y)S 2y*tem:o%t:p intln(7VVVVVVVVVVVVV impl VVVVVVVVVVVVVVVV 7Uemployee2e vi!eImpl)S employee2e vi!eImpl:! eate(employee(TO)S 2y*tem:o%t:p intln(7VVVVVVVVVVVVVVVVVVVV A&te 2avin+ VVVVVVVVVVVVVV7)S L L

<- 'ext( t!e .x)tml page is create# as "ollo s( )ello.x)tml


4"tml 6mln*07"ttp899<<<:<#:o +91WWW96"tml7 6mln*8%i07"ttp8995ava:*%n:!om95*&9&a!elet*7 6mln*8"07"ttp8995ava:*%n:!om95*&9"tml7 6mln*8&07"ttp8995ava:*%n:!om95*&9!o e7 6mln*8a;507"ttp899 i!"&a!e*:o +9a;57 6mln*8 i!"07"ttp899 i!"&a!e*:o +9 i!"7@ 4"8"ead@ 4title@Employee49title@ 49"8"ead@ 4"8Dody@ 4"#@Employee ? "ello:6"tml49"#@ 4"8&o m@ 4"8inp%tTe6t val%e07VKemployeeBean:nameL7@49"8inp%tTe6t@4D 9@ 4"8inp%tTe6t val%e07VKemployeeBean:add e**L7@49"8inp%tTe6t@4D 9@ 4"8inp%tTe6t val%e07VKemployeeBean:a+eL7@49"8inp%tTe6t@4D 9@ 4"8inp%tTe6t val%e07VKemployeeBean:*ala yL7@49"8inp%tTe6t@4D 9@ 4"8!ommandB%tton id07!md7 val%e07*%Dmit7 type07*%Dmit7 a!tion07VKemployeeBean:*aveEmployee()L7 9@ 49"8&o m@ 49"8Dody@ 49"tml@

=- /reate persistence&xml "ile !ic! contains t!e #etails a%out persistent unit& persistence.xml
4P6ml ve *ion071:$7 en!odin+07UT)?'7P@ 4pe *i*ten!e ve *ion07=:$7 6mln*07"ttp8995ava:*%n:!om96ml9n*9pe *i*ten!e7 6mln*86*i07"ttp899<<<:<#:o +9=$$19>ML2!"ema?in*tan!e7 6*i8*!"emaLo!ation07"ttp8995ava:*%n:!om96ml9n*9pe *i*ten!e "ttp8995ava:*%n:!om96ml9n*9pe *i*ten!e9pe *i*ten!e_=_$:6*d7@ 4pe *i*ten!e?%nit name07empm+mnt7 t an*a!tion?type07RE2OURCE_LOCAL7@ 4!la**@!om:empm+mnt:domain:Employee49!la**@ 4p ope tie*@ 4p ope ty name075ava6:pe *i*ten!e:5dD!:% l7 val%e075dD!8my*Fl899lo!al"o*t8##$H9(ATABA2E79@ 4p ope ty name075ava6:pe *i*ten!e:5dD!:%*e 7 val%e07U2ERNAME79@ 4p ope ty name075ava6:pe *i*ten!e:5dD!:pa**<o d7 val%e07,A22COR(79@ 4p ope ty name075ava6:pe *i*ten!e:5dD!:d ive 7 val%e07!om:my*Fl:5dD!:( ive 79@ 4p ope ty name07"iDe nate:a !"ive:a%todete!tion7 val%e07!la**79@ 4p ope ty name07"iDe nate:&o mat_*Fl7 val%e07t %e79@ 4p ope ty name07"iDe nate:*"o<_*Fl7 val%e07t %e7 9@ 4p ope ty name07"iDe nate:%*e_o%te _5oin7 val%e07t %e79@ 4p ope ty name07"iDe nate:!a!"e:%*e_*e!ond_level_!a!"e7 val%e07&al*e79@ 4p ope ty name07"iDe nate:t an*a!tion:X%*"_De&o e_!ompletion7 val%e07t %e7 9@ 4p ope ty name07"iDe nate:diale!t7 val%e07o +:"iDe nate:diale!t:My2NL(iale!t79@ 4p ope ty name07"iDe nate:"Dm=ddl:a%to7 val%e07%pdate79@ 49p ope tie*@ 49pe *i*ten!e?%nit@ 49pe *i*ten!e@

>- /reate?up#ate application/ontext&xml "ile to contain service relate# #etails( application'ontext.xml


4P6ml ve *ion071:$7 en!odin+07UT)?'7P@ 4Dean* 6mln*07"ttp899<<<:*p in+& ame<o B:o +9*!"ema9Dean*7 6mln*86*i07"ttp899<<<:<#:o +9=$$19>ML2!"ema?in*tan!e7 6mln*8aop07"ttp899<<<:*p in+& ame<o B:o +9*!"ema9aop7 6mln*85pa07"ttp899<<<:*p in+& ame<o B:o +9*!"ema9data95pa7 6mln*8!onte6t07"ttp899<<<:*p in+& ame<o B:o +9*!"ema9!onte6t7 6mln*8 epo*ito y07"ttp899<<<:*p in+& ame<o B:o +9*!"ema9data9 epo*ito y7 6mln*8t607"ttp899<<<:*p in+& ame<o B:o +9*!"ema9t67 6*i8*!"emaLo!ation07"ttp899<<<:*p in+& ame<o B:o +9*!"ema9Dean* "ttp899<<<:*p in+& ame<o B:o +9*!"ema9Dean*9*p in+?Dean*?#:=:6*d "ttp899<<<:*p in+& ame<o B:o +9*!"ema9aop "ttp899<<<:*p in+& ame<o B:o +9*!"ema9aop9*p in+?aop?#:=:6*d "ttp899<<<:*p in+& ame<o B:o +9*!"ema9!onte6t "ttp899<<<:*p in+& ame<o B:o +9*!"ema9!onte6t9*p in+?!onte6t:6*d "ttp899<<<:*p in+& ame<o B:o +9*!"ema9data95pa "ttp899<<<:*p in+& ame<o B:o +9*!"ema9data95pa9*p in+?5pa?1:#:6*d "ttp899<<<:*p in+& ame<o B:o +9*!"ema9data9 epo*ito y "ttp899<<<:*p in+& ame<o B:o +9*!"ema9data9 epo*ito y9*p in+? epo*ito y?1:G:6 *d "ttp899<<<:*p in+& ame<o B:o +9*!"ema9t6 "ttp899<<<:*p in+& ame<o B:o +9*!"ema9t69*p in+?t6:6*d7@ 4Dean id07data2o% !e7 !la**07o +:*p in+& ame<o B:5dD!:data*o% !e:( ive Mana+e (ata2o% !e7@ 4p ope ty name07d ive Cla**Name7@ 4val%e@!om:my*Fl:5dD!:( ive 49val%e@ 49p ope ty@ 4p ope ty name07% l7@ 4val%e@5dD!8my*Fl899lo!al"o*t8##$H9(ATABA2E49val%e@ 49p ope ty@ 4p ope ty name07%*e name7@ 4val%e@U2ERNAME49val%e@ 49p ope ty@ 4p ope ty name07pa**<o d7@ 4val%e@,A22COR(49val%e@ 49p ope ty@ 49Dean@ 4Dean id07validato 7 !la**07o +:*p in+& ame<o B:validation:Deanvalidation:Lo!alAalidato )a!to yBea n7 9@

4Dean id07entityMana+e )a!to y7 !la**07o +:*p in+& ame<o B:o m:5pa:Lo!alContaine EntityMana+e )a!to yBean7 @ 4p ope ty name07data2o% !e7 e&07data2o% !e7 9@ 4p ope ty name07pe *i*ten!eUnitName7 val%e07empm+mnt7 9@ 4p ope ty name07pe *i*ten!e>mlLo!ation7 val%e07!la**pat"8META?IN)9pe *i*ten!e:6ml7 9@ 4p ope ty name075paAendo Adapte 7@ 4Dean !la**07o +:*p in+& ame<o B:o m:5pa:vendo :1iDe nateEpaAendo Adapte 7@ 4p ope ty name07dataDa*e7 val%e07M-2NL7 9@ 49Dean@ 49p ope ty@ 49Dean@ 4Dean id07t an*a!tionMana+e 7 !la**07o +:*p in+& ame<o B:o m:5pa:EpaT an*a!tionMana+e 7@ 4p ope ty name07data2o% !e7 e&07data2o% !e7 9@ 4p ope ty name07entityMana+e )a!to y7 e&07entityMana+e )a!to y7 9@ 49Dean@ 4t68annotation?d iven t an*a!tion?mana+e 07t an*a!tionMana+e 7 9@ 4!onte6t8!omponent?*!an Da*e?pa!Ba+e07!om:empm+mnt7 9@ 45pa8 epo*ito ie* Da*e?pa!Ba+e07!om:empm+mnt: epo*ito ie*79@ 4Dean id07employee2e vi!e7 !la**07o +:*p in+& ame<o B:t an*a!tion:inte !epto :T an*a!tion, o6y)a!to yBe an7@ 4p ope ty name07t an*a!tionMana+e 7 e&07t an*a!tionMana+e 7 9@ 4p ope ty name07ta +et7 e&07employee2e vi!eImpl7 9@ 4p ope ty name07p o6yInte &a!e*7@ 4val%e@!om:empm+mnt:*e vi!e*:Employee2e vi!e49val%e@ 49p ope ty@ 4p ope ty name07t an*a!tionAtt iD%te*7@ 4p op*@ 4p op Bey07in*e tQ7@,RO,A/ATION_RENUIRE(49p op@ 4p op Bey07%pdateQ7@,RO,A/ATION_RENUIRE(49p op@ 4p op Bey07deleteQ7@,RO,A/ATION_RENUIRE(49p op@ 4p op Bey07Q7@,RO,A/ATION_NOT_2U,,ORTE(, eadOnly49p op@ 49p op*@ 49p ope ty@ 49Dean@ 4Dean id07employee2e vi!eImpl7 !la**07!om:empm+mnt:*e vi!e*:Employee2e vi!eImpl7@ 49Dean@ 49Dean*@

.@- log63&properties "ile log*j.properties


lo+;5: ootLo++e 0deD%+, *tdo%t lo+;5:appende :*tdo%t0o +:apa!"e:lo+;5:Con*oleAppende lo+;5:appende :*tdo%t:layo%t0o +:apa!"e:lo+;5:,atte nLayo%t

..- "aces-con"ig&xml "ile !ic! contains #etails a%out %ean an# t!e navigation rules& $aces con$ig.xml
4P6ml ve *ion071:$7 en!odin+07UT)?'7P@ 4&a!e*?!onO+ ve *ion07=:17 6mln*07"ttp8995ava:*%n:!om96ml9n*95avaee7 6mln*86i07"ttp899<<<:<#:o +9=$$19>In!l%de7 6mln*86*i07"ttp899<<<:<#:o +9=$$19>ML2!"ema?in*tan!e7 6*i8*!"emaLo!ation07"ttp8995ava:*%n:!om96ml9n*95avaee "ttp8995ava:*%n:!om96ml9n*95avaee9<eD?&a!e*!onO+_=_1:6*d7@ 4appli!ation@ 4va iaDle? e*olve @ o +:*p in+& ame<o B:<eD:5*&:2p in+BeanAa iaDleRe*olve 49va iaDle? e*olve @ 49appli!ation@ 4mana+ed?Dean@ 4mana+ed?Dean?name@employeeBean49mana+ed?Dean?name@ 4mana+ed?Dean?!la**@!om:empm+mnt:%i:EmployeeBean49mana+ed?Dean?!la **@ 4mana+ed?Dean?*!ope@*e**ion49mana+ed?Dean?*!ope@ 4mana+ed?p ope ty@ 4p ope ty?name@employee2e vi!e49p ope ty?name@ 4val%e@VKemployee2e vi!eL49val%e@ 49mana+ed?p ope ty@ 49mana+ed?Dean@ 4navi+ation? %le@ 4navi+ation?!a*e@ 4& om?o%t!ome@inde649& om?o%t!ome@ 4to?vie<?id@9"ello:6"tml49to?vie<?id@ 4 edi e!t 9@ 49navi+ation?!a*e@ 49navi+ation? %le@ 49&a!e*?!onO+@

12) Web Application Execution 1it t"e Delo< URL,


"ttp899lo!al"o*t8'$'$9EmpMana+ement

Ente t"e ne!e**a y detail* on t"e &o m and !li!B *%Dmit: Belo< i* t"e !on*ole o%tp%t %nde E!lip*e I(E:
C eatin+ in*tan!e o& Dean 3employeeBean3 )o%nd in5e!ted element on !la** Y!om:empm+mnt:%i:EmployeeBeanZ8 A%to<i ed)ieldElement &o !om:empm+mnt:*e vi!e*:Employee2e vi!e !om:empm+mnt:%i:EmployeeBean:employee2e vi!eImpl , o!e**in+ in5e!ted met"od o& Dean 3employeeBean38 A%to<i ed)ieldElement &o !om:empm+mnt:*e vi!e*:Employee2e vi!e !om:empm+mnt:%i:EmployeeBean:employee2e vi!eImpl Ret% nin+ !a!"ed in*tan!e o& *in+leton Dean 3employee2e vi!eImpl3 Ret% nin+ !a!"ed in*tan!e o& *in+leton Dean 3employee2e vi!e3 Ret% nin+ !a!"ed in*tan!e o& *in+leton Dean 3o +:*p in+& ame<o B:t an*a!tion:!onO+:inte nalT an*a!tionAdvi*o 3 A%to<i in+ Dy type & om Dean name 3employeeBean3 to Dean named 3employee2e vi!eImpl3 Ret% nin+ !a!"ed in*tan!e o& *in+leton Dean 3o +:*p in+& ame<o B:t an*a!tion:!onO+:inte nalT an*a!tionAdvi*o 3 )ini*"ed ! eatin+ in*tan!e o& Dean 3employeeBean3 VVVVVVVVVVVVV 2avin+ VVVVVVVVVVVVVVVV VVVVVVVVVVVVV impl VVVVVVVVVVVVVVVV !om:empm+mnt:*e vi!e*:Employee2e vi!eImplTHd'd$&dd VVVVVVVVVVVV 2avin+ *e vi!e VVVVVVVVVVVVVV Addin+ t an*a!tional met"od 3*ave3 <it" att iD%te8 ,RO,A/ATION_RENUIRE(,I2OLATION_(E)AULTS 33 Ret% nin+ !a!"ed in*tan!e o& *in+leton Dean 3t an*a!tionMana+e 3 C eatin+ ne< t an*a!tion <it" name Yo +:*p in+& ame<o B:data:5pa: epo*ito y:*%ppo t:2impleEpaRepo*ito y:*aveZ8 ,RO,A/ATION_RENUIRE(,I2OLATION_(E)AULTS 33 Opened *e**ion at time*tamp8 1#W#'H#IW'= Opened ne< EntityMana+e Yo +:"iDe nate:e5D:EntityMana+e ImplT#&e#D1!Z &o E,A t an*a!tion De+in ODtainin+ E(BC !onne!tion C eatin+ ne< E(BC ( ive Mana+e Conne!tion to Y5dD!8my*Fl899lo!al"o*t8##$H9*t%dyZ ODtained E(BC !onne!tion initial a%to!ommit *tat%*8 t %e di*aDlin+ a%to!ommit E6po*in+ E,A t an*a!tion a* E(BC t an*a!tion Yo +:*p in+& ame<o B:o m:5pa:vendo :1iDe nateEpa(iale!tJ1iDe nateConne!tion1andleTGd#&; $#1Z Loadin+ entity8 Y!om:empm+mnt:domain:EmployeeV$Z

*ele!t employee$_:empid a* empid$_$_, employee$_:add e** a* add e**$_$_, employee$_:a+e a* a+e$_$_, employee$_:name a* name$_$_, employee$_:*ala y a* *ala y$_$_ & om Employee employee$_ <"e e employee$_:empid0P 1iDe nate8 *ele!t employee$_:empid a* empid$_$_, employee$_:add e** a* add e**$_$_, employee$_:a+e a* a+e$_$_, employee$_:name a* name$_$_, employee$_:*ala y a* *ala y$_$_ & om Employee employee$_ <"e e employee$_:empid0P InitialiRin+ non?laRy !olle!tion* (one entity load /ene ated identiOe 8 $, %*in+ *t ate+y8 o +:"iDe nate:id:A**i+ned Initiatin+ t an*a!tion !ommit Committin+ E,A t an*a!tion on EntityMana+e Yo +:"iDe nate:e5D:EntityMana+e ImplT#&e#D1!Z !ommittin+ , o!e**in+ X%*"?time !a*!ade* (i ty !"e!Bin+ !olle!tion* )l%*"ed8 1 in*e tion*, $ %pdate*, $ deletion* to 1 oD5e!t* )l%*"ed8 $ ( e)! eation*, $ %pdate*, $ emoval* to $ !olle!tion* Li*tin+ entitie*8 !om:empm+mnt:domain:EmployeeKempid0$, add e**0M%mDai, India, name0NiB"il, a+e0#$, *ala y0#$$$$L in*e t into Employee (add e**, a+e, name, *ala y, empid) val%e* (P, P, P, P, P) 1iDe nate8 in*e t into Employee (add e**, a+e, name, *ala y, empid) val%e* (P, P, P, P, P) !ommitted E(BC Conne!tion e?enaDlin+ a%to!ommit Clo*in+ E,A EntityMana+e Yo +:"iDe nate:e5D:EntityMana+e ImplT#&e#D1!Z a&te t an*a!tion Clo*in+ E,A EntityMana+e 111$$$;=$8 Clo*in+ %n? elea*ed Dat!" Relea*in+ E(BC !onne!tion Relea*ed E(BC !onne!tion 111$$$1H#8 Lo+i!al !onne!tion elea*in+ it* p"y*i!al !onne!tion VVVVVVVVVVV A&te 2avin+ *e vi!e VVVVVVVVVVVVVV VVVVVVVVVVVVVVVVVVVV A&te 2avin+ VVVVVVVVVVVVVV

My2NL (ataDa*e "a* t"e Delo< ent y8?

You might also like