рдореБрдЦрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕рдорд╕реНрдпрд╛

рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХрд┐рд╕реА рднреА рдмрдбрд╝реА рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рд╕рд╛рдореВрд╣рд┐рдХ рдкрддрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдЫреЛрдЯреА рд╕реА рдЬрд╛рд╕реВрд╕реА рдХрд╣рд╛рдиреА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╣рд╛рдирд┐рд░рд╣рд┐рдд рдкреНрд░рддрд┐рдмрджреНрдз рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд▓рдЧрднрдЧ 150 рдкрд░реАрдХреНрд╖рдг рдЧрд┐рд░ рдЧрдП, рдЬрдмрдХрд┐ рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рд╕реЗрдЯ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рдерд╛ред рдкрд░реАрдХреНрд╖рдг рдкрд░рд╕реНрдкрд░ рдЬреБрдбрд╝реЗ рд╣реБрдП рдирд╣реАрдВ рдереЗ, рдкрд░реАрдХреНрд╖рдг рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдП рдЧрдП рдереЗред рдЗрди-рдореЗрдореЛрд░реА h2 рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди 150 рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЗ рдкрддрди рдореЗрдВ рд▓реЙрдЧ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдерд╛: "рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╡рд╕реНрддреБ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рдПрдХ рдХрдиреЗрдХреНрд╢рди, рдкреВрд▓ рддреНрд░реБрдЯрд┐ рдЯрд╛рдЗрдордЖрдЙрдЯ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ"ред рдпрд╣ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдХрд╛ рдЖрдХрд╛рд░ 1 рд╣реИред

рдПрдХ рдЫреЛрдЯрд╛ рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░: рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдореЗрдВ, рд▓реЗрди-рджреЗрди рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдХреЛрдб рдХреЛ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдирджреЗрди рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдВрдд рдореЗрдВ, рд▓реЗрди-рджреЗрди рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

TransactionRunner.run(dbDataManager(), new MethodTransaction() { @Override public ExecutionResult runInTransaction() throws Exception { // ,       return result; } ); 

рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдПрдХ рдЕрд╕рдлрд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд▓реЗрдирджреЗрди рдореЗрдВ рдПрдХ рдХреЛрдб рдХреЙрд▓ рд╣реЛрддрд╛ рд╣реИ:

 TransactionRunner.run(dbDataManager(), new MethodTransaction() { @Override public ExecutionResult runInTransaction() throws Exception { // ...   // assert   assert( 1, result.getSomeNotEqualOneIntValue() ); return result; } ); 

TransactionRunner рд╡рд░реНрдЧ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рдПрдХ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдирд┐рдореНрди рдХреЛрдб рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ:

 protected ExecutionResult run() throws CommonException { Transaction outerTr = getThreadTransaction(); bindThreadTransaction(null); try { beginTransaction(); try { setResult(transactionCode.runInTransaction()); } catch (Exception e) { dbDataManager().rollbackTransaction(); if (transaction.onException(this, e)) throw e; } dbDataManager().commitTransaction(); return getResult(); } catch (Exception e) { throw ExceptionUtil.createCommonException(e); } finally { bindThreadTransaction(outerTr); } } 

рддреЛ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╣реИ? рдФрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдПрд╢реНрдпреЛрд░рд┐рдпрди рдПрдХреНрд╕реЗрдкреНрд╢рди рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдиреЗрд╕реНрдЯреЗрдб рд▓реЗрдирджреЗрди рди рддреЛ рд╡рд╛рдкрд╕ рд▓реБрдврд╝рдХрд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рди рд╣реА рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИред рдЪреВрдВрдХрд┐ рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдПрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ "рдмрд╛рдж рдХреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрдиреЗрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп" рдПрдХ рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рдирд┐рд╖реНрдХреНрд░рд┐рдп рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ "ред

рдиреИрддрд┐рдХ: рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЬреЛрд░ рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕рд╛рдореВрд╣рд┐рдХ рджреБрд░реНрдШрдЯрдирд╛ рдореЗрдВ, рдПрдХ рд╕рдорд╛рдзрд╛рди рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рд╣реИ рдХрд┐ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдЕрдкрд╡рд╛рдж рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдорд╛рдорд▓рд╛ рдореБрдЭреЗ рдлрд┐рдХреНрд╕реЗрд╢рди рдХреЗ рдпреЛрдЧреНрдп рд▓рдЧрд╛, рд╢рд╛рдпрдж рдпрд╣ рдЕрдиреБрднрд╡ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред

Source: https://habr.com/ru/post/hi420509/


All Articles