
рджреГрд╢реНрдп, рдпрд╛ рджреГрд╢реНрдп, рд╕реАрдмреАрдмреАрдП рдордВрдЪ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬреЛ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдо рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рдордЭрдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдмреЗрд╡рдХреВрдл рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдм рдЕрдкреВрд░реНрдг рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдЪрд╛рдирдХ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЕрднреНрдпрд╛рд╡реЗрджрди (рд╡рд╛рдХреНрдп рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп) рд╣реИ рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреНрдпреЛрдВ рд╣реИред
рдЕрдирд▓реЛрдб рдбреЗрдЯрд╛ рдХреА рд╕рдорд╕реНрдпрд╛
рдЖрдЗрдП рдПрдХ рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдЗрдХрд╛рдИ рд╣реИ рдЬреЛ рдПрдХ рдЧреНрд░рд╛рд╣рдХ- рдЗрдХрд╛рдИ рд╕реЗ рдХрдИ-рд╕реЗ-рдПрдХ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЦрд░реАрджрд╛рд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдХреИрд╢ рдЧрд╛рдп", "рд╕реНрдиреИрдкрд░", рдЖрджрд┐ред CustomerType рдЗрдХрд╛рдИ рдореЗрдВ рдПрдХ рдирд╛рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯрд╛рдЗрдк рдирд╛рдо рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИред
рдФрд░, рд╢рд╛рдпрдж, рд╕рднреА рдирдП рд▓реЛрдЧреЛрдВ (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ) рдХреЛ CUBA рдореЗрдВ рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА:
IllegalStateException: Cannot get unfetched attribute [type] from detached object com.rtcab.cev.entity.Customer-e703700d-c977-bd8e-1a40-74afd88915af [detached].

рдорд╛рди рд▓реАрдЬрд┐рдП, рдЖрдкрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреА рдЖрдБрдЦреЛрдВ рд╕реЗ рднреА рджреЗрдЦрд╛? рдореИрдВ - рд╣рд╛рдБ, рд╕реМ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдореМрдЬреВрдж рд╣реИ, рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░рд┐рдЪрдпред
рдХреНрдпрд╛ рдирдЬрд░рд┐рдпрд╛ рд╣реИ?
CUBA рдореЗрдВ рдПрдХ рджреГрд╢реНрдп рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреЙрд▓рдо рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рд╣реА рдХреНрд╡реЗрд░реА рдореЗрдВ рдПрдХ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдо рдЧреНрд░рд╛рд╣рдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдпреВрдЖрдИ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдкрд╣рд▓рд╛ рдХреЙрд▓рдо рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдирд╛рдо рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдЧреНрд░рд╛рд╣рдХ рдЯрд╛рдЗрдк рд╡рд┐рд╢реЗрд╖рддрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рд╣реИ) рд╕реЗ рдЯрд╛рдЗрдк рдирд╛рдо рд╣реИред рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рдЗрд╕ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреЗрдмрд▓ рд╣реЛрдВрдЧреЗ, рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ рдХрд╕реНрдЯрдордЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдПред SELECT * from CEV_CUSTOMER
рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЯреЗрдмрд▓ (рд╡рд┐рд╢реЗрд╖рддрд╛ name
, рдЖрджрд┐) рд╕реЗ рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдиреНрдп рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рднреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо JOINs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
JOIN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХреНрд▓рд╛рд╕рд┐рдХ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрдШреЛрдВ (рд╕рдВрджрд░реНрдн рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ) рдХрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдЧреНрд░рд╛рдл рд╕реЗ рдПрдХ рдлреНрд▓реИрдЯ рд╕реВрдЪреА рдореЗрдВ рдлреИрд▓рддрд╛ рд╣реИред
рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ: рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдорд┐рдЯ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рдВрдШ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХрд▓ рдбреЗрдЯрд╛ рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реАрдпреВрдмреАрдП рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдУрдЖрд░рдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдЦреЛрддрд╛ рд╣реИ рдФрд░ рдЕрдиреБрд░реЛрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рдЕрднрд┐рдиреНрди рдЧреНрд░рд╛рдл рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, SQL рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдирд╛рд▓реЙрдЧ JPPL, рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдлрд┐рд░ рднреА, рдбреЗрдЯрд╛ рдХреЛ рдЕрднреА рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЙрддрд╛рд░рдирд╛ рдФрд░ рдЗрдХрд╛рдИ рдЧреНрд░рд╛рдл рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдСрдмреНрдЬреЗрдХреНрдЯ-рд░рд┐рд▓реЗрд╢рдирд▓ рдореИрдкрд┐рдВрдЧ рдореИрдХреЗрдирд┐рдЬрд╝реНрдо (рдЬреЛ JPA рд╣реИ) рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рджреЛ рдореБрдЦреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВред
рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдмрдирд╛рдоред рдЙрддреНрд╕реБрдХ рд╣реЛ рд░рд╣рд╛ рд╣реИ
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рд▓рд╛рд▓рдЪреА рд▓реЛрдбрд┐рдВрдЧ рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░рдгрдиреАрддрд┐рдпрд╛рдБ рд╣реИрдВред рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдореВрд▓рднреВрдд рдЕрдВрддрд░ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд▓рд┐рдВрдХреНрдб рдЯреЗрдмрд▓ рд╕реЗ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг:
рдкреБрд╕реНрддрдХ "рдж рд╣реЙрдмрд┐рдЯ рдпрд╛ рд░рд╛рдЙрдВрдб рдЯреНрд░рд┐рдк" рдХреЗ рджреГрд╢реНрдп рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ, рдЬрд╣рд╛рдВ рдЧреИрдВрдбрд▓рдл рдФрд░ рдмрд┐рд▓реНрдмреЛ рдХреА рдХрдВрдкрдиреА рдХреЗ рдЧрдиреЛрдо рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдмреАрд░реНрди рдХреЗ рдШрд░ рдореЗрдВ рд░рд╛рдд рднрд░ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ? рдЧреИрдВрдбрд╛рд▓рдл рдиреЗ рдмреМрдиреЛрдВ рдХреЛ рдмрджрд▓реЗ рдореЗрдВ рд╕рдЦреНрддреА рд╕реЗ рдкреЗрд╢ рдЖрдиреЗ рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдФрд░ рдХреЗрд╡рд▓ рддрдм рдЬрдм рд╡рд╣ рдзреНрдпрд╛рди рд╕реЗ рдмреАрд░реЛрди рдХреЗ рд╕рд╛рде рд╕рд╣рдордд рд╣реБрдП рдФрд░ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкреЗрд╢ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рддрд╛рдХрд┐ рдПрдХ рдмрд╛рд░ рдореЗрдВ 15 рдореЗрд╣рдорд╛рдиреЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдорд╛рд▓рд┐рдХ рдХреЛ рдЭрдЯрдХрд╛ рди рджреЗрдВред

рдЗрд╕рд▓рд┐рдП, рдЧреИрдВрдбрд▓рдл рдФрд░ рдмреНрдпреЛрд░реНрди рдХреЗ рдШрд░ рдореЗрдВ gnomes ... рдпрд╣ рд╢рд╛рдпрдж рдкрд╣рд▓реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрд▓рд╕реА рдФрд░ рд▓рд╛рд▓рдЪреА рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╕рдордп рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдорд╛рдирддрд╛рдПрдВ рд╣реИрдВред рдЧреИрдВрдбрд╛рд▓рдл рдиреЗ рдпрд╣рд╛рдВ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдХрд╛рдо рд▓рд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рд╕реАрдорд╛рдУрдВ рд╕реЗ рдЕрд╡рдЧрдд рдерд╛ред рдЙрд╕реЗ рд╕рдЪреЗрдд рд░реВрдк рд╕реЗ рд╕реВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рд╕рдордЭ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рднрд╛рд░реА рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, 8 рд╡реЗрдВ рд╕реВрдХреНрддрд┐ рдХреЗ рдмрд╛рдж, рдЧреИрдВрдбрд╛рд▓рдл рдиреЗ рд▓рд╛рд▓рдЪреА рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рд╢реЗрд╖ рдЧрдиреЛрдо рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓реЛрдб рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд╣реБрдВрдЪ рдЙрд╕реЗ рдирд░реНрд╡рд╕ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред
рдиреИрддрд┐рдХ рдпрд╣ рд╣реИ рдХрд┐ рдЖрд▓рд╕реА рдФрд░ рд▓рд╛рд▓рдЪреА рджреЛрдиреЛрдВ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдЕрдкрдиреЗ рдкрдХреНрд╖ рдФрд░ рд╡рд┐рдкрдХреНрд╖ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреНрдпрд╛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИ, рдЖрдк рддрдп рдХрд░рддреЗ рд╣реИрдВред
рдЕрдиреБрд░реЛрдз рд╕рдорд╕реНрдпрд╛ N + 1
N + 1 рдХреНрд╡реЗрд░реА рд╕рдорд╕реНрдпрд╛ рдЕрдХреНрд╕рд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдпрджрд┐ рдЖрдк рдЬрд╣рд╛рдБ рднреА рдЬрд╛рддреЗ рд╣реИрдВ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реЛрдЪ-рд╕рдордЭрдХрд░ рдХрд░рддреЗ рд╣реИрдВред рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдЧреНрд░реЗрд▓реНрд╕ рдХреЛрдб рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЛ рджреЗрдЦреЗрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЧреНрд░рд┐рд▓реНрд╕ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЖрд▓рд╕реА рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдЦреБрдж рдмреВрдЯ рд╡рд┐рдзрд┐ рдЪреБрдирддреЗ рд╣реИрдВ)ред рдЧреНрд░рд┐рд▓реНрд╕ рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд┐рдЯрд░реНрди рдПрдВрдЯрд┐рдЯреА рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╡реЗрд░реА рдЗрд╕рдХреА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, SELECT * FROM Pet
рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреЛрд╕реНрдЯ рдлреИрдХреНрдЯрдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
function getPetOwnerNamesForPets(String nameOfPet) { def pets = Pet.findAll(sort:"name") { name == nameOfPet } def ownerNames = [] pets.each { ownerNames << it.owner.name } return ownerNames.join(", ") }
рдЧреНрд░рд╛рдл рдпрд╣рд╛рдВ рдПрдХ рдкрдВрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ it.owner.name
рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: it.owner.name
ред рдорд╛рд▓рд┐рдХ рдПрдХ рдРрд╕рд╛ рд░рд┐рд╢реНрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореВрд▓ рдЕрдиреБрд░реЛрдз ( Pet.findAll
) рдореЗрдВ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рд░ рдмрд╛рд░ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, GORM рдХреБрдЫ рдРрд╕рд╛ рдХрд░реЗрдЧрд╛ рдЬреИрд╕реЗ SELECT * FROM Person WHERE id='тАж'
ред рд╢реБрджреНрдз рдкрд╛рдиреА рдЖрд▓рд╕реА рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдпрджрд┐ рдЖрдк SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрди (рдкреНрд░рддреНрдпреЗрдХ it.owner
рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рд▓рд┐рдХ) + 1 (рдореВрд▓ Pet.findAll
) рдорд┐рд▓рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдЧреНрд░рд╛рдл рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЬрд▓реНрджреА рд╕реЗ рдЕрдкрдиреА рд╕реАрдорд╛рдПрдВ рдЦреЛрдЬ рд▓реЗрдЧрд╛ред
рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдЗрд╕реЗ рдиреЛрдЯрд┐рд╕ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЖрдк рдмрд╕ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреНрд░рд╛рдл рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдПрдХ рдЫреЛрдЯреА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдпрд╣ рдЫрд┐рдкрд╛ рд╣реБрдЖ рдШреЛрдВрд╕рд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджрд░реНрдж рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдФрд░ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдХрднреА-рдХрднреА рдЦрддрд░рдирд╛рдХ рдмрдирд╛ рджреЗрддрд╛ рд╣реИред
рдПрдХ рд╣реЙрдмреА рд╕рд╛рджреГрд╢реНрдп рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╕реЗ, N + 1 рдХреА рд╕рдорд╕реНрдпрд╛ рд╕реНрд╡рдпрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдХрдЯ рд╣реЛ рд╕рдХрддреА рд╣реИ: рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЧреИрдВрдбрд╛рд▓рдл рдЕрдкрдиреА рд╕реНрдореГрддрд┐ рдореЗрдВ gnomes рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдмреМрдиреЛрдВ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддреЗ рд╣реБрдП, рд╡рд╣ рдЕрдкрдиреЗ рд╕рдореВрд╣ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдмреМрдирд╛ рдкреВрдЫрддрд╛ рд╣реИред рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде, рд╡рд╣ рдмреАрдУрд░реНрди рд╡рд╛рдкрд╕ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдереЛрд░рд┐рди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рд╡рд╣ рдмрд┐рдлреВрд░, рдмреЛрдлреВрд░, рдлрд┐рд▓реА, рдХрд┐рд▓реА, рдбреЛрд░реА, рдиреЛрд░реА, рдУрд░реА, рдУрдЗрди, рдЧреНрд▓рд┐рди, рдмрд╛рд▓рд┐рди, рдбрд╡рд▓рд┐рди рдФрд░ рдмреЙрдореНрдмреВрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдпреБрджреНрдзрд╛рднреНрдпрд╛рд╕ рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред

рдпрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдп рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧреА: рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдорд╛рдВрдЧреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛? рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдмрд┐рдирд╛ рд╕реЛрдЪреЗ-рд╕рдордЭреЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЕрдкрдиреЗ рд╣рда рдореИрдкрд░ рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдЖрдБрдЦ рдмрдВрдж рдХрд░рдХреЗ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
CUBA рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ N + 1 рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди
CUBA рдореЗрдВ, рдЖрдк рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХрднреА рднреА рдПрди + 1 рдХреНрд╡реЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдиреЗ рдЫрд┐рдкреА рд╣реБрдИ рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, CUBA рдиреЗ рдЕрднреНрдпрд╛рд╡реЗрджрди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреЗрд╢ рдХреАред рджреГрд╢реНрдп рдЗрд╕ рдмрд╛рдд рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЪрдпрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рдВрд╕реНрдерд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреБрдЫ рдЗрд╕ рддрд░рд╣
SELECT pet.name, person.name FROM Pet pet JOIN Person person ON pet.owner == person.id
рдПрдХ рддрд░рдл, рджреГрд╢реНрдп рдЙрди рд╕реНрддрдВрднреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛ ( рдкреЗрдЯ ) (* рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп) рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рджреВрд╕рд░реА рдУрд░, рдпрд╣ рдЙрди рд╕реНрддрдВрднреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реА-рдЬреЛрдЗрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдк OR-Mapper рдХреЗ рд▓рд┐рдП SQL рджреГрд╢реНрдп рдХреЗ рд░реВрдк рдореЗрдВ CUBA рджреГрд╢реНрдп рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдСрдкрд░реЗрд╢рди рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИред
CUBA рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ, рдЖрдк рдмрд┐рдирд╛ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП DataManager рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдХреНрд╡реЗрд░реА рдЖрдордВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдкреНрд░рд▓реЗрдЦрди рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
@Inject private DataManager dataManager; private Book loadBookById(UUID bookId) { LoadContext<Book> loadContext = LoadContext.create(Book.class) .setId(bookId).setView("book.edit"); return dataManager.load(loadContext); }
рдпрд╣рд╛рдВ рд╣рдо рдЗрд╕рдХреА рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдкреБрд╕реНрддрдХ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред setView("book.edit")
рд╡рд┐рдзрд┐, рд▓реЛрдб рд╕рдВрджрд░реНрдн рдмрдирд╛рддреЗ рд╕рдордп, рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХрд┐рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкреБрд╕реНрддрдХ рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рджреГрд╢реНрдп рдХреЛ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрдХ рддреАрди рдорд╛рдирдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЗрдХрд╛рдИ рдореЗрдВ рд╣реИ: _local рджреГрд╢реНрдп ред рд╕реНрдерд╛рдиреАрдп рдпрд╣рд╛рдВ рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдиреНрдп рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред
рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ IllegalStateException рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди
рдЕрдм рдЬрдм рд╣рдореЗрдВ рдЕрднреНрдпрд╛рд╡реЗрджрди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреА рдереЛрдбрд╝реА рд╕рдордЭ рд╣реИ, рддреЛ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
рдореИрд╕реЗрдЬ IllegalStateException: рдбрд┐рдЯреИрдЪреНрдб рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЕрдирдлрд╝рд┐рд▓реНрдЯрд░реНрдб рд╡рд┐рд╢реЗрд╖рддрд╛ [] рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЙрд╕ рджреГрд╢реНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЗрдХрд╛рдИ рд▓реЛрдб рдХреА рдЧрдИ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмреНрд░рд╛рдЙрдЬрд╝ рд╕реНрдХреНрд░реАрди рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдореЗрдВ рдореИрдВрдиреЗ _local рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкреВрд░реА рд╕рдорд╕реНрдпрд╛ рд╣реИ:
<dsContext> <groupDatasource id="customersDs" class="com.rtcab.cev.entity.Customer" view="_local"> <query> <![CDATA[select e from cev$Customer e]]> </query> </groupDatasource> </dsContext>
рддреНрд░реБрдЯрд┐ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рджреГрд╢реНрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЪреВрдВрдХрд┐ рд╣рдо _local рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рджреГрд╢реНрдп рдХреЛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ, рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ (рд╕рдВрд╕реНрдерд╛рдУрдВ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ> рджреГрд╢реНрдп рдмрдирд╛рдПрдВ):

рдпрд╛ рддреЛ рд╕реАрдзреЗ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ view.xml рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдореЗрдВ:
<view class="com.rtcab.cev.entity.Customer" extends="_local" name="customer-view"> <property name="type" view="_minimal"/> </view>
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝ рд╕реНрдХреНрд░реАрди рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ:
<groupDatasource id="customersDs" class="com.rtcab.cev.entity.Customer" view="customer-view"> <query> <![CDATA[select e from cev$Customer e]]> </query> </groupDatasource>
рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдм рдЧреНрд░рд╛рд╣рдХ рдбреЗрдЯрд╛ рд╕реНрдХреНрд░реАрди рдореЗрдВ рд▓рд┐рдВрдХ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред
_рдордирд┐рдорд▓ рджреГрд╢реНрдп рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдирд╛рдо
рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдФрд░ рдХреНрдпрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ _ рдиреНрдпреВрдирддрдо рджреГрд╢реНрдпред рд╕реНрдерд╛рдиреАрдп рджреГрд╢реНрдп рдХреА рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ: рдЗрд╕рдореЗрдВ рдЗрдХрд╛рдИ рдХреЗ рд╕рднреА рдЧреБрдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдЧреБрдг рд╣реИрдВ (рдЬреЛ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдирд╣реАрдВ рд╣реИрдВ)ред
рдиреНрдпреВрдирддрдо рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдЗрддрдиреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рднреА рд╣реИред
CUBA рдХреА рдПрдХ рдЗрдХрд╛рдИ рдЙрджрд╛рд╣рд░рдг рдирд╛рдо - рдЙрджрд╛рд╣рд░рдг рдирд╛рдо рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдирд╛рдо рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ Java рдореЗрдВ toString()
рдкрджреНрдзрддрд┐ рдХреЗ рд╕рдорддреБрд▓реНрдп рд╣реИред рдпрд╣ рдпреВрдЖрдИ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдФрд░ рд▓рд┐рдВрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдХрд╛рдИ рдХрд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИред рдирд╛рдо рдХрд╛ рдирд╛рдо NamePattern рдЗрдХрд╛рдИ рдХреЗ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: @NamePattern("%s (%s)|name,code")
ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ:
рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдирд╛рдо рдпреВрдЖрдИ рдХреЛ рдЗрдХрд╛рдИ рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдирд╛рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ UI рдореЗрдВ рдХреНрдпрд╛ рдФрд░ рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдПрдХ рдЗрдХрд╛рдИ рдХрд┐рд╕реА рдЕрдиреНрдп рдЗрдХрд╛рдИ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ CustomerType рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ)ред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рдХрд╕реНрдЯрдо рдЯрд╛рдЗрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рдХреЛрд╖реНрдардХ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдирд╛рдо рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЖрдИрдбреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рджреЗрдЦреЗрдВред


рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдирд╛рдо рдиреНрдпреВрдирддрдо рджреГрд╢реНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
NamePattern рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рджреВрд╕рд░реА рдЪреАрдЬ рд╣реИ: рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдмрд╛рд░ рдХреЗ рдмрд╛рдж рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ _minimal рджреГрд╢реНрдп рдмрдирд╛рддреА рд╣реИрдВред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ UI рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВред
рдпрд╣рд╛рдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдиреНрдпреВрдирддрдо рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, рдпрджрд┐ рд╕реНрдерд╛рдиреАрдп рдПрдХ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреА рдЬрд╛рдП, рддреЛ рдЕрдиреНрдп рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рдВрджрд░реНрдн рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЦрд░реАрджрд╛рд░ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдирд╛рдо рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдЗрдХрд╛рдИ рдХрд╛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛ ( name
) рдФрд░ рдПрдХ рд╕рдВрджрд░реНрдн рд╡рд┐рд╢реЗрд╖рддрд╛ ( type
) рд╢рд╛рдорд┐рд▓ рд╣реИ:
@NamePattern("%s - %s|name,type")
рдиреНрдпреВрдирддрдо рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: (рдЧреНрд░рд╛рд╣рдХ [рдЙрджрд╛рд╣рд░рдг рдирд╛рдо] -> рдЧреНрд░рд╛рд╣рдХрдкреНрд░рдХрд╛рд░ [рдЙрджрд╛рд╣рд░рдг рдирд╛рдо])
рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ: рд▓реЗрдЦ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж рд╕реЗ, рдПрдХ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╡реНрдпреВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ - _base
рд╡реНрдпреВ, рдЬрд┐рд╕рдореЗрдВ @NamePattern рдПрдиреЛрдЯреЗрд╢рди (рдпрд╛рдиреА, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ _minimal
+ _local
) рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рднреА рд╕реНрдерд╛рдиреАрдп рдЧреИрд░-рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрдВрдд рдореЗрдВ, рд╣рдо рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╖рдп рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВред рд╕реАрдпреВрдмреАрдП рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХреНрдпрд╛ рд▓реЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рджреГрд╢реНрдп рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд▓рд╛рд▓рдЪреА рдХреЛ рдХреНрдпрд╛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рд░реВрдкрд░реЗрдЦрд╛ рдЧреБрдкреНрдд рд░реВрдк рд╕реЗ рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдПрдХ рдмреЛрдЭрд┐рд▓ рддрдВрддреНрд░ рдХреА рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рд╡реЗ рдЦреБрдж рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рддреЗ рд╣реИрдВред
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рд╕реБрд▓рдн рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдХрд┐ рдпреЗ рд░рд╣рд╕реНрдпрдордп рджреГрд╢реНрдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реИрдВред рдмреЗрд╢рдХ, рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрднреНрдпрд╛рд╡реЗрджрди рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдиреНрдпреВрдирддрдо рдЕрднреНрдпрд╛рд╡реЗрджрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдПрдХ рдЕрд▓рдЧ рдкреЛрд╕реНрдЯ рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ред