[JAVA] Lorsque @Transactional of Spring Boot ne fonctionne pas

J'utilise Spring Boot et je dois maintenant gérer les transactions lors de mon inscription à la base de données.

Il semble que si vous ajoutez l'annotation @Transactional à une méthode publique et déclenchez une exception, elle sera automatiquement annulée.

C'est pourquoi je l'ai essayé, mais cela n'a pas du tout fonctionné. J'ai essayé de modifier les paramètres donnés aux annotations, mais ils ne sont pas du tout rétablis.

Après avoir lutté pendant deux ou trois heures et rampé sur la mer sur le Web, j'ai vu un phare divin.

https://ameblo.jp/kochablo/entry-11578714824.html

Dieu

Cela a fonctionné d'un seul coup. Merci au frère pionnier. Merci beaucoup.

Cependant, je me demandais comment c'était de l'appeler directement. Je voudrais aider quelqu'un qui est en difficulté comme un frère pionnier, et je l'expliquerai en détail ci-dessous.

Mauvais exemple: no_good:

SampleController.java


class SampleController{
  @Autowired
  private SampleService sampleService;

  public String sample(){
    sampleService.transactionalInsert();
    return "sampleView";
  }
}

SampleService.java


class SampleService{

  public void transactionalInsert(){
    doInsert();
  }

  @Transactional
  public void doInsert(){
    //D'une manière ou d'une autre, le traitement tel que Insérer dans la base de données
    //Traitement pour lancer RuntimeExeption si cela ne fonctionne pas
  }
}

Cela ne devrait pas être le cas.

Bon exemple: ok_woman:

SampleController.java


class SampleController{
  @Autowired
  private SampleService sampleService;

  public String sample(){
    sampleService.doInsert();
    return "sampleView";
  }
}

SampleService.java


class SampleService{

  public void transactionalInsert(){
    doInsert();
  }

  @Transactional
  public void doInsert(){
    //D'une manière ou d'une autre, le traitement tel que Insérer dans la base de données
    //Traitement pour lancer RuntimeExeption si cela ne fonctionne pas
  }
}

Avez-vous compris? Quoi qu'il en soit, si vous appelez la méthode @Transactional depuis la classe @Autowired, c'est fou.

Recommended Posts

Lorsque @Transactional of Spring Boot ne fonctionne pas
Mémorandum lorsque Spring Boot 1.5.10 → Spring Boot 2.0.0
@BeforeStep ne fonctionne pas avec le Tasklet Spring-batch
Lorsque le formulaire tel que Select of Materialize ne fonctionne pas correctement
[Ruby on Rails] Lorsque l'acquisition de l'identifiant du paramètre ne s'est pas bien déroulée
Sortie de message (Spring boot)
Le ressort doit être suspecté lorsque les commandes Rails ne fonctionnent pas correctement
Erreur inconnue dans la ligne 1 de pom.xml lors de l'utilisation de Spring Boot dans Eclipse
Si vous en avez assez de "Spring Boot", pourquoi ne pas essayer "jooby"?
La comparaison Java Integer (==) ne fonctionne pas correctement
le changement de largeur de tabulation d'éclipse ne fonctionne pas
L'histoire de la transition de Spring Boot 1.5 à 2.1
Modifications lors de la migration de Spring Boot 1.5 vers Spring Boot 2.0
Le simulateur ne fonctionne pas: impossible de démarrer le périphérique en raison de ressources système insuffisantes
Mémorandum WebMvcConfigurer de Spring Boot 2.0 (printemps 5)
Modifications lors de la migration de Spring Boot 2.0 vers Spring Boot 2.2
Erreur Javaw.exe lors du démarrage de Spring Boot (STS)
[NetBeans] Story quand il ne démarre pas
Comment faire fonctionner @Transactional qui ne fonctionne pas si vous ne l'utilisez pas correctement
Paramètres du gestionnaire de ressources lors de la livraison du SPA avec la fonction de ressource statique de Spring Boot
Uri Components Builder n'encode pas "+" selon la version de spring
Résumé de ce que j'ai appris sur Spring Boot
[FCM] Implémentation de la transmission de messages en utilisant FCM + Spring boot
L'histoire de la montée de la série Spring Boot 1.5 à la série 2.1
Vérifions la sensation de Spring Boot + Swagger 2.0
Divers tableau de correspondance de Spring Framework et Spring Boot
Confirmation finale lorsque la version ruby ne change pas
Remarques sur les annotations lors de l'écriture de tests pour Spring Boot
Ne reconnaît pas la bibliothèque lors de l'implémentation de jcaptcha
[Vérification] Comparaison de la vitesse de démarrage de Spring Boot et de Micronaut
[Railways] Railways ne fonctionne pas lorsque la racine du projet RubyMine est différente du répertoire racine Rails.
Défi Spring Boot
[Spring Boot] L'histoire selon laquelle le bean de la classe avec l'annotation ConfigurationProperties n'a pas été trouvé
Forme de botte de printemps
Spring Boot Rappelez-vous
gae + botte à ressort
Dans la boîte de dialogue d'avertissement lors du démarrage de l'applet, la vérification de "Ne pas afficher de la prochaine fois" ne fonctionne pas
Personnalisez l'affichage lorsqu'une erreur telle que 404 Not Found se produit dans Spring Boot
Spécifiez le codage des ressources statiques dans Spring Boot
Exécution asynchrone des requêtes examinée dans Spring Boot 1.5.9
Un mémorandum de dépendance à Spring Boot2 x Doma2
Accédez au h2db intégré de Spring Boot avec jdbcTemplate
05. J'ai essayé de supprimer la source de Spring Boot
Remarque: l'analyseur de mémoire ne fonctionne pas sous Mac OS
J'ai essayé de réduire la capacité de Spring Boot
Lorsque Docker pour Mac 2.4.0.0 ne reflète pas les modifications de fichier
Comment utiliser CommandLineRunner dans Spring Batch of Spring Boot
[Remarque] Lorsque la vitesse d'accès à la page n'augmente pas
Un mémorandum lors de la création d'un service REST avec Spring Boot
Créer Restapi avec Spring Boot (jusqu'à l'exécution de l'application)
Comment démarrer par environnement avec Spring Boot de Maven
Spécifiez spring.profiles.active via context-param dans web.xml dans Spring Boot
Hivernate Validator ne fonctionne pas dans l'environnement WAS Liberty
Téléchargement de fichiers avec Spring Boot (ne pas utiliser de fichier en plusieurs parties)