ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому
ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€

🧠 Частая Π»ΠΎΠ²ΡƒΡˆΠΊΠ° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с @Transactional Π² Spring

🧠 Частая Π»ΠΎΠ²ΡƒΡˆΠΊΠ° ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с @Transactional Π² Spring БСйчас ΠΏΠΎΠΊΠ°ΠΆΡƒ Π²Π°ΠΌ ΠΎΠ΄ΠΈΠ½ распространённый Π°Π½Ρ‚ΠΈ-ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ β€” Π²Ρ‹Π·ΠΎΠ² Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ класса. πŸ“Œ ΠŸΡ€ΠΈΠΌΠ΅Ρ€: @Service public class UserService { @Transactional public void registerUser(UserDto dto) { saveUser(dto); } @Transactional public void saveUser(UserDto dto) { // сохранСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ } } πŸ’₯ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: Spring Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΊ saveUser(), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² происходит Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π±ΠΈΠ½Π° β€” минуя прокси. Spring AOP Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· прокси, ΠΈ @Transactional "срабатываСт", Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся ΠΈΠ·Π²Π½Π΅, Ρ‡Π΅Ρ€Π΅Π· прокси-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ⚠️ Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΎΡ‡Π΅Π½ΡŒ странным Π±Π°Π³Π°ΠΌ: Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ транзакция Π΅ΡΡ‚ΡŒ, Π° Π΅Ρ‘ Π½Π΅Ρ‚. πŸ’‘ Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ: 1. ВынСсти ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±ΠΈΠ½: @Service public class UserSaver { @Transactional public void save(UserDto dto) { // сохраняСм } } @Service public class UserService { private final UserSaver saver; public UserService(UserSaver saver) { this.saver = saver; } public void registerUser(UserDto dto) { saver.save(dto); } } 2. Или ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ TransactionTemplate Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. βœ… ВсСгда провСряйтС, ΠΊΠ°ΠΊ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ с @Transactional. ОсобСнно ΠΏΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅! πŸ‘‰ @BookJava

583 просмотров

Канал Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€Π°

1Β 612 подписчиков Β· Наука

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

Π•Ρ‰Ρ‘ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ «Наука»

Π§ΠΈΡ‚Π°Ρ‚ΡŒ дальшС

Π”Π²Π° Ρ€Π°Π·Π° Π² нСдСлю свСТиС посты этого ΠΊΠ°Π½Π°Π»Π° β€” Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈ Π² Π»ΠΈΡ‡Π½ΡƒΡŽ Π»Π΅Π½Ρ‚Ρƒ. Π‘Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ поиска ΠΊΠ°Π½Π°Π»Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.