
рд▓реЗрдЦ рдХрд╛ рд╡рд┐рд╖рдп рдмрд▓реНрдХрд┐ рд╕рдВрдХреАрд░реНрдг рд░реВрдк рд╕реЗ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВред
рдЖрд╡рд╢реНрдпрдХ рд╢рд░реНрддреЗрдВ
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЖрдорддреМрд░ рдкрд░ рдЕрдкрдиреА рдЖрджрддреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдЕрдХреНрд╕рд░, рд░реВрдкрд░реЗрдЦрд╛ рдХреЛ рдЖрджрддреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЬрдм рдореИрдВрдиреЗ рд╕реАрдпреВрдмреАрдП рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдореБрдЭреЗ рдмрд╣реБрдд рд╕реА рдирдИ рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рд╕реАрдЦрдиреА рдкрдбрд╝реАрдВ , рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рд╕рдВрднрд╡ рдерд╛ред рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рдд рдереА рдХрд┐ рдореБрдЭреЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдмреИрдардирд╛ рдерд╛ - рдпрд╣ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред
рд╕реНрдкреНрд░рд┐рдВрдЧ рдореЗрдВ рдХрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рд╕реНрдкреНрд░рд┐рдВрдЧ-рдбреЗрдЯрд╛-рдЬреЗрдкреАрдП , рдЬреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдкрдХреЛ SQL рдпрд╛ JPQL рдирд╣реАрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдЙрди рддрд░реАрдХреЛрдВ рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдирд╛рдорд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рд╡рд╕рдВрдд рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЗрдХрд╛рдИ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдХреА рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред
рдиреАрдЪреЗ рдПрдХ рдЕрдВрддрд┐рдо рдирд╛рдо рдХреЗ рд╕рд╛рде рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЧрд┐рдирдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реИред
interface CustomerRepository extends CrudRepository<Customer, Long> { long countByLastName(String lastName); }
рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕реАрдзреЗ рд╡рд╕рдВрдд рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд╛рдо рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИред
рд╕реАрдпреВрдмреАрдП рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рднрд░реА рд╣реБрдИ рдЗрдХрд╛рдЗрдпрд╛рдБ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдЗрдХрд╛рдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдкреЗрдЪреАрджрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА рдЬреИрд╕реА рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдкреАрдЖрдИ рд╕реНрдкреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдпрд╛ рдЬреЗрдкреАрдП / рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред
рд╕реАрдпреВрдмреАрдП рдореЗрдВ рдХреЛрдИ рдЬреЗрдкреАрдП рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ?
CUBA рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛
CUBA рдореЗрдВ, рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рдореБрдЦреНрдп рд╡рд░реНрдЧ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ: DataStore, EntityManager, рдФрд░ DataManagerред
DataStore рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдореВрд░реНрдд рд╣реИ: рдбреЗрдЯрд╛рдмреЗрд╕, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдпрд╛ рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬред рдпрд╣ рдПрдкреАрдЖрдИ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдкрд░ рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реАрдзреЗ рдбреЗрдЯрд╛рд╕реНрдЯреЛрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдпрд╛ рдпрджрд┐ рднрдВрдбрд╛рд░рдг рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдХреБрдЫ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢реЗрд╖ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
EntityManager рдкреНрд░рд╕рд┐рджреНрдз JPA EntityManager рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╣реИред рдорд╛рдирдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЗрд╕рдореЗрдВ рд╕реАрдпреВрдмреАрдП рдЕрднреНрдпрд╛рд╡реЗрджрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╣реИрдВ, рдбреЗрдЯрд╛ рдХреЗ "рд╕реЙрдлреНрдЯ" (рддрд╛рд░реНрдХрд┐рдХ) рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рд╕реАрдпреВрдмреАрдП рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреАред рдбреЗрдЯрд╛рд╕реНрдЯреЛрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, 90% рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдбреЗрд╡рд▓рдкрд░ рдХреЛ EntityManager рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЬрдм рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рддрд┐рдмрдВрдз рдкреНрд░рдгрд╛рд▓реА рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдХреЗ рдХреБрдЫ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛред
CUBA рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DataManager рдореБрдЦреНрдп рд╡рд░реНрдЧ рд╣реИред рдбреЗрдЯрд╛ рд╣реЗрд░рдлреЗрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдкрдВрдХреНрддрд┐-рд╕реНрддрд░реАрдп рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рд╣рд┐рдд рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред DataManager рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ CUBA рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЙрди рддрд╛рд▓рд┐рдХрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рдирдХрд╛ рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ select
рд╡рд┐рд╡рд░рдг рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ рдФрд░ where
рдЪрдпрди рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд░реНрддреЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рд╕реЛрдЪрдирд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЦрд╛рддреЗ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдХрд░ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ, CUBA рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗрд╡рд╛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд░рддрд╛ рд╣реИред
рдиреАрдЪреЗ CUBA рдШрдЯрдХреЛрдВ рдХреЗ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХрд╛ рдПрдХ рдЖрд░реЗрдЦ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

DataManager рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрд╕реНрдерд╛рдУрдВ рдФрд░ CUBA рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рдкреВрд░реА рдкрджрд╛рдиреБрдХреНрд░рдо рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рд╕рд░рд▓рддрдо рд░реВрдк рдореЗрдВ, рдХреНрд╡реЗрд░реА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:
dataManager.load(Customer.class).list();
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, DataManager "рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдП рдЧрдП" рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдЧрд╛, рдЕрдиреБрд░реЛрдз рд╕реЗ рдирд┐рд╖рд┐рджреНрдз рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛, рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЗрди-рджреЗрди рднреА рдЦреЛрд▓ рдФрд░ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред
рд▓реЗрдХрд┐рди, рдЬрдм рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ CUBA рдореЗрдВ JPQL рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЕрдВрддрд┐рдо рдирд╛рдо рдХреЗ рд╕рд╛рде рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рд╕реЗ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:
public Long countByLastName(String lastName) { return dataManager .loadValue("select count(c) from sample$Customer c where c.lastName = :lastName", Long.class) .parameter("lastName", lastName) .one(); }
рдпрд╛ рдРрд╕реЗ:
public Long countByLastName(String lastName) { LoadContext<Customer> loadContext = LoadContext.create(Customer.class); loadContext .setQueryString("select c from sample$Customer c where c.lastName = :lastName") .setParameter("lastName", lastName); return dataManager.getCount(loadContext); }
CUBA рдПрдкреАрдЖрдИ рдореЗрдВ, рдЖрдкрдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ JPQL рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдорд╛рдирджрдВрдб рдПрдкреАрдЖрдИ рдЕрднреА рддрдХ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ), рдпрд╣ рдкреНрд░рд╢реНрди рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдкрдардиреАрдп рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рддрд░реАрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдордЬреЗрджрд╛рд░ рдорд┐рдирдЯ рд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЗрдкреАрдХреНрдпреВрдПрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдХрдВрдЯреЗрдирд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рд╕рддреНрдпрд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдкреНрд░рд┐рдВрдЧ рдЬреЗрдкреАрдП рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
interface CustomerRepository extends CrudRepository<Customer, Long> { long countByLastName(String lastName); }
рдХреЛрдб рддреАрди рдЧреБрдирд╛ рдЫреЛрдЯрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рд░реЗрдЦрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рдзрд┐ рдирд╛рдо countByLastName
рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрдВрдЯреЗрдирд░ рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдХреЗ рджреМрд░рд╛рди рдЬрд╛рдБрдЪ рдХреА countByLastName
рд╣реИред рдпрджрд┐ рдХреЛрдИ рдЯрд╛рдЗрдкреЛ рд╣реИ рдФрд░ рдЖрдкрдиреЗ countByLastNsme
рд▓рд┐рдЦрд╛ рд╣реИ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛:
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property LastNsme found for type Customer!
CUBA рд╕реНрдкреНрд░рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк CUBA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦреЗ рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ-рдбреЗрдЯрд╛-рдЬреЗрдкреАрдП рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдкреНрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЫреЛрдЯреА рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ред рд╕реНрдкреНрд░рд┐рдВрдЧ CrudRepository рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдкрдиреЗ EntityManager рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ DataManager рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, CUBA рдореЗрдВ JPA рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ DataManager рдХреЙрд▓ рдХреЗ рд╕рд╛рде рд╕рднреА EntityManager рдХреЙрд▓ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ CUBA рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХреЛрдИ рдХрд╣ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ-рдбреЗрдЯрд╛-рдЬреЗрдкрд╛ рдПрдХ рдРрд╕рд╛ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рд╢реБрджреНрдз рдЬреЗрдкреАрдХреНрдпреВрдПрд▓ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрд╕рдХреНрдпреВрдПрд▓ рд▓рд┐рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рдЕрдореВрд░реНрдд рдХреЗ рд╕реНрддрд░ рдХреЗ рдмреАрдЪ рд╕рдВрддреБрд▓рди рдХреА рд╢рд╛рд╢реНрд╡рдд рд╕рдорд╕реНрдпрд╛ рд╣реИред рд╣рд░ рдХреЛрдИ рдЙрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдЪреБрдирддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд╣ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реАрдХрд╛ рдХрднреА рднреА рдЪреЛрдЯ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдПрдЧрд╛ред рдФрд░ рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП рд╕реНрдкреНрд░рд┐рдВрдЧ рдореЗрдВ рдЬреЗрдкреАрдП рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ ред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдЬреЗрдкреАрдП рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕реАрдпреВрдмреАрдП рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╕рдВрдд-рдбреЗрдЯрд╛-рдХреЙрдордиреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдордиреЗ рд╕реНрдкреНрд░рд┐рдВрдЧ-рдбреЗрдЯрд╛-рдЬрдкрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рддреНрдпрд╛рдЧ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреНрд╡реЗрд░реА рдЬрдирд░реЗрдЯрд░ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдо рдХреА рдорд╛рддреНрд░рд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрдЧреАред рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рд╡рд╕рдВрдд-рдбреЗрдЯрд╛-рдХреЙрдордиреНрд╕ рдЬреНрдпрд╛рджрд╛рддрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рдзрд┐ рдирд╛рдо рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдФрд░ рд╡рд░реНрдЧреЛрдВ рдФрд░ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирд╛рдо рдЬреЛрдбрд╝рдирд╛ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдкреНрд░рд┐рдВрдЧ-рдбреЗрдЯрд╛-рдХреЙрдордиреНрд╕ рдореЗрдВ рдЖрдкрдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╕рдВрдд-рдбреЗрдЯрд╛-рдореЛрдВрдЧреЛрдбрдм рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдХрдард┐рди рдмрд╛рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ JPQL рдкреАрдврд╝реА рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдерд╛ - рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдоред рд▓реЗрдХрд┐рди, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, Apache рдЗрдЧреНрдирд╛рдЗрдЯ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдХреЛрдб рдХреЛ рд╡рд╣рд╛рдВ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ SQL рдХреЗ рдмрдЬрд╛рдп JPQL рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдФрд░ delete
рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕реНрдкреНрд░рд┐рдВрдЧ-рдбреЗрдЯрд╛-рдХреЙрдордиреНрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬрдм рд╕реАрдпреВрдмреАрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрджрд░реНрдн рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рднреА рд▓рд┐рдВрдХ рдХреЛ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреНрд░реЙрдХреНрд╕реА рдмрд┐рди рдХреЗ рд▓рд┐рдВрдХ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕реА рдкреНрд░реЙрдХреНрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрдм рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо рд╕реЗ рдПрдХ JPQL рдХреНрд╡реЗрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП DataManager рдХреЗ рд╕рд╛рде рдкреИрд░рд╛рдореАрдЯрд░ рднреЗрдЬрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд░реЗрдЦ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреНрд░рдореБрдЦ рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХреА рдПрдХ рд╕рд░рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рд╕реАрдпреВрдмреАрдП рдореЗрдВ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
CUBA рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
appComponent("com.haulmont.addons.cuba.jpa.repositories:cuba-jpa-repositories-global:0.1-SNAPSHOT")
рдЖрдк XML рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ "рд╕рдХреНрд╖рдо" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:repositories="http://www.cuba-platform.org/schema/data/jpa" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.cuba-platform.org/schema/data/jpa http://www.cuba-platform.org/schema/data/jpa/cuba-repositories.xsd"> <context:component-scan base-package="com.company.sample"/> <repositories:repositories base-package="com.company.sample.core.repositories"/> </beans:beans>
рдФрд░ рдЖрдк рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
@Configuration @EnableCubaRepositories public class AppConfig {
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рд╕рдорд░реНрдерди рд╕рдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
public interface CustomerRepository extends CubaJpaRepository<Customer, UUID> { long countByLastName(String lastName); List<Customer> findByNameIsIn(List<String> names); @CubaView("_minimal") @JpqlQuery("select c from sample$Customer c where c.name like concat(:name, '%')") List<Customer> findByNameStartingWith(String name); }
рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
@CubaView
рдХреНрдпреВрдмрд╛ рджреГрд╢реНрдп - @CubaView
рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА CUBA рджреГрд╢реНрдп рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП@JpqlQuery
- @JpqlQuery
рдХреНрд╡реЗрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ рд╡рд┐рдзрд┐ рдирд╛рдо рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдпреВрдмреАрдП рдврд╛рдВрдЪреЗ рдХреЗ global
рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ core
рдореЙрдбреНрдпреВрд▓ рдФрд░ web
рджреЛрдиреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдЖрдкрдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡рд╣ рд╣реИ рджреЛрдиреЛрдВ рдореЙрдбреНрдпреВрд▓ рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛ред
CUBA рд╕реЗрд╡рд╛ рдореЗрдВ рднрдВрдбрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
@Service(CustomerService.NAME) public class CustomerServiceBean implements PersonService { @Inject private CustomerRepository customerRepository; @Override public List<Date> getCustomersBirthDatesByLastName(String name) { return customerRepository.findByNameStartingWith(name) .stream().map(Customer::getBirthDate).collect(Collectors.toList()); } }
рдирд┐рд╖реНрдХрд░реНрд╖
CUBA рдПрдХ рд▓рдЪреАрд▓рд╛ рдврд╛рдВрдЪрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХрд░реНрдиреЗрд▓ рдХреЛ рдЦреБрдж рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдпрд╛ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдореЙрдбреНрдпреВрд▓ рд╕реАрдпреВрдмреАрдП рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдФрд░ рддреЗрдЬ рдмрдирд╛ рджреЗрдЧрд╛ред рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЧрд┐рдЯрд╣рдм рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ , рдЬрд┐рд╕реЗ рд╕реАрдпреВрдмреАрдП рд╕рдВрд╕реНрдХрд░рдг 6.10 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ