рдЦрд╛рдмрд░рд╡рд╛рдЪрд┐рдпреЛрдВ рдХреЛ рджрд┐рди рдХрд╛ рдЕрдЪреНрдЫрд╛ рд╕рдордпред рдореЗрд░рд╛
рдкрд┐рдЫрд▓рд╛ рд▓реЗрдЦ ADF рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░рд┐рдЪрдп рдерд╛ред рдФрд░ рдЪреВрдВрдХрд┐ рдореИрдВ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд┐рд╖рдп рджрд┐рд▓рдЪрд╕реНрдк рдирд┐рдХрд▓рд╛, рдореИрдВ рдПрдбреАрдПрдл рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВред
рдЕрдм, рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рдХрд╣рд╛рдиреА рдХреЗ рдмрд╛рдж, рдЖрдк "рд▓рдбрд╝рд╛рдИ рдореЗрдВ рдЬрд▓реНрджрдмрд╛рдЬрд╝реА" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ ADF рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд▓реЗрдЦ рдПрдбреАрдПрдл рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдШрдЯрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдШреЛрд╖рдгрд╛рддреНрдордХ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВред
рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ
рдПрдбреАрдПрдл рдмрд┐рдЬрдиреЗрд╕ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ (рдЗрд╕рдХреЗ рдмрд╛рдж рдмреАрд╕реА) рдбреЗрдЯрд╛рдмреЗрд╕ рдврд╛рдВрдЪреЗ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдЬреЛ рджреГрд╢реНрдп рдФрд░ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред BC рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ XML рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЖрдк рдЬрд╛рд╡рд╛ рдХрдХреНрд╖рд╛рдПрдВ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддрд░реНрдХ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ / рдпрд╛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдИрд╕рд╛ рдкреВрд░реНрд╡ рдХреЛ 5 рдореБрдЦреНрдп рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рдЗрдХрд╛рдИ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (EO)
- рдСрдмреНрдЬреЗрдХреНрдЯ рджреЗрдЦреЗрдВ (VO)
- рд╕рдВрдШреЛрдВ
- рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ
- рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЙрдбреНрдпреВрд▓
рдИрдУ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ, рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдИрдУ рдЙрджрд╛рд╣рд░рдг рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИред
рдпрд╣ рдШрдЯрдХ рдбреЗрдЯрд╛, рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдо рдФрд░ рджреГрдврд╝рддрд╛ рддрд░реНрдХ рдХреЛ рдЕрддрд┐рдХреНрд░рдордг рдХрд░рддрд╛ рд╣реИред
рдИрдУ рдПрд╕реЛрд╕рд┐рдПрд╢рди рджреЛ рд╕рдВрд╕реНрдерд╛рдУрдВ (рддрд╛рд▓рд┐рдХрд╛рдУрдВ) рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
рд╡реАрдУ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдШрдЯрдХ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд▓рди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред
рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ - VO (рд╕рдВрдШреЛрдВ рдХреЗ рд╕рдорд╛рди) рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдПрдХ рд╕реЗрд╡рд╛ рд╕реНрддрд░ рд╣реИ рдЬреЛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдШрдЯрдХреЛрдВ (рдЕрд░реНрдерд╛рддреН рд╡реАрдУ рдФрд░ рд╡реНрдпреВ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдзрд┐рдпрд╛рдБ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЙрдбреНрдпреВрд▓реЛрдВ рдХреЛ рдШреЛрдВрд╕рд▓рд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрддрддрдГ, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдИрдбреАрдИ рд╕рдордп
рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП, рдореИрдВ oracle
HR рд╕реНрдХреАрдорд╛ рд╕реЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
"рдЯреЗрдмрд▓ рд╕реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдШрдЯрдХ" рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реЗрдЯ рдорд┐рд▓рддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдХрд░реНрдордЪрд╛рд░реА - EO, EmployeesView - VO, EmployeesAppModule - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓, EmpManagerFkAssoc - рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╣рдпреЛрдЧ, EmpManagerFkLink - рдПрдХ рд╕рдорд╛рди рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ, рд▓реЗрдХрд┐рди VO, рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдШрдЯрдХ рдЖрд░реЗрдЦ рдХреЗ рд▓рд┐рдП - рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рдЖрд░реЗрдЦред
рдФрд░ рдбреЗрдЯрд╛ рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рдореЗрдВ, рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдХрдВрдЯреНрд░реЛрд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЪрд╛рд░реНрдЯ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ EmployeesView рдХрд░реНрдордЪрд╛рд░реА EO рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдФрд░ рджреЛ EmployeesView рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ ApplicationModule рдореЗрдВ рдЖрдПред рдПрдХ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдЕрдкрдиреЗ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдПред
рдЙрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрдиред
рдХрд░реНрдордЪрд╛рд░реАрдЙрддреНрдкрдиреНрди рдИрдУ рдореЗрдВ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЬреЛрдбрд╝реЗрдВ рдпрд╛ рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВред

рдЖрдк рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдо рднреА рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
EmployeesViewрд╡реАрдУ рдХреЗ рдЧреБрдг рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд░реНрдордЪрд╛рд░реА EO рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрдк VO рдЕрдиреБрд░реЛрдз, рдЗрд╕рдХреЗ рдЪрд░ рдФрд░ рдорд╛рдирджрдВрдб рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдирд╛рдо рдЬрд╣рд╛рдВ рдЦрдВрдб рд╣реИ)
EmployeesAppModuleрдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рджреЗрдЦрд╛, рдЗрд╕рдореЗрдВ рдПрдореНрдкреНрд▓реЙрдЗрдЬ рд╡реНрдпреВ рдХреЗ рджреЛ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ
EmpManagerFkAssocрд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзред
EmpManagerFkLinkрд╡рд╣реА рд╕реНрд░реЛрдд рдФрд░ рдЧрдВрддрд╡реНрдп, рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рджреЗрдЦреЗрдВ рд▓рд┐рдВрдХ рдПрд╕реЛрд╕рд┐рдПрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

CRUD

рд╣рд╛рдБ, рд╣рд╛рдБред CRUD рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдШреЛрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛; рдореИрдВ рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ред
рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рджрд┐рдЦрд╛рдИ рдЬрд╛рдПрдЧреАред

рдЬрдм рдЖрдк Create рдХрд░реНрдордЪрд╛рд░реА рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдирдпрд╛ рдХрд░реНрдордЪрд╛рд░реА рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдВрдХреНрд░рдордг рдШрдЯрд┐рдд рд╣реЛрдЧрд╛ред

рдЬрдм рдЖрдк рд╕рд╣реЗрдЬреЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирдпрд╛ рдХрд░реНрдордЪрд╛рд░реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдВрдЧреЗред

рдЬрдм рдЖрдк рдЕрдкрдбреЗрдЯ рдХрд░реНрдордЪрд╛рд░реА рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд░реНрдордЪрд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд░рдордг рд╣реЛрдЧрд╛ред

рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдлрд┐рд░ рд╕реЗ рд▓реМрдЯреЗрдВред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЬрдм рдЖрдк Delete рдХрд░реНрдордЪрд╛рд░реА рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд░реНрдордЪрд╛рд░реА рд╡рд╛рд╖реНрдкрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдСрдкрд░реЗрд╢рди рдХреЛ рдПрдХ рдмрдВрдзреЗ рд╣реБрдП рдХрд╛рд░реНрдп рдкреНрд░рд╡рд╛рд╣ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░реНрдп рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рд╣реЛрдЧрд╛ред рдЕрднреА рдХреЗ рд▓рд┐рдП, рдмрд╕ рдЪрд╛рд░реНрдЯ рдХреЛ рджреЗрдЦреЗрдВред

ViewEmployees, createEmployee, рдФрд░ updateEmployee JSFF рджреЗрдЦрдиреЗ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ рдЬреЛ рдЯреЗрдмрд▓ рдФрд░ рдлреЙрд░реНрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред
рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ EmployeeView рдХреЛ рдбреЗрдЯрд╛ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдкреЗрдЬ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ)

CreateEmployee рдФрд░ updateEmployee рдкреЗрдЬреЛрдВ рдкрд░ рдлреЙрд░реНрдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╕рдорд╛рди рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдлреЙрд░реНрдо рд╢реНрд░реЗрдгреА рд╕реЗ рдЪрдпрди рдХрд░реЗрдВ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ ADF рдлреЙрд░реНрдо рд╣реИ)

рдЕрдиреНрдп рд╕рднреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБ DataControl рдкрд░ рдХрд╛рд░реНрдп рдХрд░ рд░рд╣реА рд╣реИрдВред рдпреЗ рдСрдкрд░реЗрд╢рди рдбреЗрдЯрд╛ рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рд╕реЗ рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

CreateInsert рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░реНрд╕рд░ рдбрд╛рд▓рддрд╛ рд╣реИред
рдбрд┐рд▓реАрдЯ рдХрд░реЗрдВ рдЗрдЯреНрд░реЗрдЯрд░ рдореЗрдВ рдЙрд╕ рд▓рд╛рдЗрди рдХреЛ рдбрд┐рд▓реАрдЯ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд░реНрд╕рд░ рдкрд░ рд╣реИред
CreateInsert рдФрд░ Delete рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд┐рдЯ рдСрдкрд░реЗрд╢рди рдФрд░ рд░реЛрд▓рдмреИрдХ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ CRUD рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред
CRUD v2
рдЕрдм рдЙрд╕ рдорд╛рдорд▓реЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрдм рд╣рдо рдШреЛрд╖рд┐рдд рдкрде рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреНрдпрд╛рдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдХреБрдЫ рдкреНрд░рдмрдВрдзрд┐рдд рдмреАрди рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рдХреА рд╕рдорд╛рди рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдкрд╣рд▓рд╛ рдХрджрдо рдПрдХ рдкреНрд░рдмрдВрдзрд┐рдд рдмреАрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

рд╣рдо рд╕реЗрдо рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдореИрдВ рдПрдХ рдирдпрд╛ рдкреГрд╖реНрда рдмрдирд╛рдКрдВрдЧрд╛ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЙрд╕рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдЖрдк рдирдП рдбреЗрдЯрд╛, рдФрд░ рдирдП рдХрд░реНрдордЪрд╛рд░реА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реЙрд░реНрдо рджреЗрдЦ рд╕рдХреЗрдВред
рдЗрдирдкреБрдЯ рдШрдЯрдХреЛрдВ рдореЗрдВ, рдореИрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдмреАрди рдкрд░ рдореВрд▓реНрдп рд╕рдВрдмрдВрдз рд░рдЦрддрд╛ рд╣реВрдВред рдФрд░ рдЕрдВрдд рдореЗрдВ рдореИрдВ рдПрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╢реНрд░реЛрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдмреАрди рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдмрдЯрди рдЬреЛрдбрд╝реВрдВрдЧрд╛ред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, jspx рдорд╛рд░реНрдХрдЕрдк рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
<af:form id="f1"> <af:table value="#{bindings.EmployeesView1.collectionModel}" var="row" rows="#{bindings.EmployeesView1.rangeSize}" emptyText="#{bindings.EmployeesView1.viewable ? 'No data to display.' : 'Access Denied.'}" fetchSize="#{bindings.EmployeesView1.rangeSize}" rowBandingInterval="0" id="t1"> <af:column sortProperty="#{bindings.EmployeesView1.hints.FirstName.name}" sortable="false" headerText="#{bindings.EmployeesView1.hints.FirstName.label}" id="c1"> <af:outputText value="#{row.FirstName}" id="ot1"/> </af:column> <af:column sortProperty="#{bindings.EmployeesView1.hints.LastName.name}" sortable="false" headerText="#{bindings.EmployeesView1.hints.LastName.label}" id="c2"> <af:outputText value="#{row.LastName}" id="ot2"/> </af:column> <af:column sortProperty="#{bindings.EmployeesView1.hints.Email.name}" sortable="false" headerText="#{bindings.EmployeesView1.hints.Email.label}" id="c3"> <af:outputText value="#{row.Email}" id="ot3"/> </af:column> <af:column sortProperty="#{bindings.EmployeesView1.hints.PhoneNumber.name}" sortable="false" headerText="#{bindings.EmployeesView1.hints.PhoneNumber.label}" id="c4"> <af:outputText value="#{row.PhoneNumber}" id="ot4"/> </af:column> <af:column sortProperty="#{bindings.EmployeesView1.hints.JobId.name}" sortable="false" headerText="#{bindings.EmployeesView1.hints.JobId.label}" id="c5"> <af:outputText value="#{row.JobId}" id="ot5"/> </af:column> </af:table> <af:panelFormLayout id="pfl1"> <af:inputText value="#{backingBeanScope.employeeBean.employeeId}" label="#{bindings.EmployeeId.hints.label}" required="#{bindings.EmployeeId.hints.mandatory}" columns="#{bindings.EmployeeId.hints.displayWidth}" maximumLength="#{bindings.EmployeeId.hints.precision}" shortDesc="#{bindings.EmployeeId.hints.tooltip}" id="it1"> <f:validator binding="#{bindings.EmployeeId.validator}"/> <af:convertNumber groupingUsed="false" pattern="#{bindings.EmployeeId.format}"/> </af:inputText> <af:inputText value="#{backingBeanScope.employeeBean.firstName}" label="#{bindings.FirstName.hints.label}" required="#{bindings.FirstName.hints.mandatory}" columns="#{bindings.FirstName.hints.displayWidth}" maximumLength="#{bindings.FirstName.hints.precision}" shortDesc="#{bindings.FirstName.hints.tooltip}" id="it2"> <f:validator binding="#{bindings.FirstName.validator}"/> </af:inputText> <af:inputText value="#{backingBeanScope.employeeBean.lastName}" label="#{bindings.LastName.hints.label}" required="#{bindings.LastName.hints.mandatory}" columns="#{bindings.LastName.hints.displayWidth}" maximumLength="#{bindings.LastName.hints.precision}" shortDesc="#{bindings.LastName.hints.tooltip}" id="it3"> <f:validator binding="#{bindings.LastName.validator}"/> </af:inputText> <af:inputText value="#{backingBeanScope.employeeBean.email}" label="#{bindings.Email.hints.label}" required="#{bindings.Email.hints.mandatory}" columns="#{bindings.Email.hints.displayWidth}" maximumLength="#{bindings.Email.hints.precision}" shortDesc="#{bindings.Email.hints.tooltip}" id="it4"> <f:validator binding="#{bindings.Email.validator}"/> </af:inputText> <af:inputText value="#{backingBeanScope.employeeBean.phoneNumber}" label="#{bindings.PhoneNumber.hints.label}" required="#{bindings.PhoneNumber.hints.mandatory}" columns="#{bindings.PhoneNumber.hints.displayWidth}" maximumLength="#{bindings.PhoneNumber.hints.precision}" shortDesc="#{bindings.PhoneNumber.hints.tooltip}" id="it5"> <f:validator binding="#{bindings.PhoneNumber.validator}"/> </af:inputText> <af:inputDate value="#{backingBeanScope.employeeBean.hireDate}" label="#{bindings.HireDate.hints.label}" required="#{bindings.HireDate.hints.mandatory}" columns="#{bindings.HireDate.hints.displayWidth}" shortDesc="#{bindings.HireDate.hints.tooltip}" id="id1"> <f:validator binding="#{bindings.HireDate.validator}"/> <af:convertDateTime pattern="#{bindings.HireDate.format}"/> </af:inputDate> <af:inputText value="#{backingBeanScope.employeeBean.jobId}" label="#{bindings.JobId.hints.label}" required="#{bindings.JobId.hints.mandatory}" columns="#{bindings.JobId.hints.displayWidth}" maximumLength="#{bindings.JobId.hints.precision}" shortDesc="#{bindings.JobId.hints.tooltip}" id="it6"> <f:validator binding="#{bindings.JobId.validator}"/> </af:inputText> <af:commandButton text="Create Employee" id="cb1" actionListener="#{backingBeanScope.employeeBean.createEmployee}"/> </af:panelFormLayout> </af:form>
рдФрд░ рдкреГрд╖реНрда рд╡рд┐рд╡рд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ред

рдХреЛрдб bean'a рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ (get'ra рдФрд░ set'ry рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛)ред
рдХреНрд╖реЗрддреНрд░реЛрдВ:
private int employeeId; private String firstName; private String lastName; private String email; private String phoneNumber; private Timestamp hireDate; private String jobId; private BindingContainer bindings;
рдкреГрд╖реНрда рдкрд░ рдмрдЯрди рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╡рд┐рдзрд┐:
public void createEmployee(ActionEvent actionEvent) {
рд╣рдо рдкреНрд░рдмрдВрдзрд┐рдд рдмреАрди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╣реИред

CRUD v3
рдФрд░ рдЖрдЦрд┐рд░реА рдЙрджрд╛рд╣рд░рдг, рдЬреЛ рдХреЗрд╡рд▓ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, EmployeeView рдЦреЛрд▓реЗрдВ, рдЬрд╛рд╡рд╛ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдирд┐рдореНрди рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдПрдВред

EmployeesViewImpl рдХреЛ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ EmployeesViewRowImpl рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдЧреАред
рдЙрд╕реА рддрд░рд╣ рд╣рдо Application Module рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓рд╛рд╕ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ EmployeesAppModuleImpl рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП TO рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдмреАрди рдореЗрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рдзрд┐:
public void createEmployee(EmployeeInfo employeeInfo) {
рдирдИ рдмреАрди рд╡рд┐рдзрд┐:
public void createEmployee2(ActionEvent actionEvent) {
рдХрд╛рдо рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

рдЖрдЬ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реА рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЕрднреА рднреА рдмрд╣реБрдд рдХреБрдЫ рдмрдЪрд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ
рдпрд╣рд╛рдВ рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред
PS рдЕрдЧрд▓рд╛ рд▓реЗрдЦ рдХрд╛рд░реНрдп рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред