Ist die CrudRepository .delete () - Methode transaktional?

Bei der Verwendung von Spring-data ist es möglich zu verlängern die CrudRepository.

Wie funktioniert diese Repositories .delete() Methode arbeiten "unter der Haube"?

Zudem ist diese Methode Transactional? Wenn dies der Fall ist, gibt es keine Notwendigkeit zu verwenden @Transactional Anmerkungen bei der Verwendung Spring-data.

e.g ist @Transactional hier gebraucht? :

Erweitern CrudRepository:

public interface PersonRepository extends CrudRepository<Person, Integer> {

}

Mithilfe der delete-Methode in der service Klasse:

 @Transactional
 public void deletePerson(Person person) {

        personRepository.delete(person);
    }

Edit: Wie würde @Transactional hier arbeiten?

 @Transactional
     public void deletePersonAndTable(Person person, Table table) {

            personRepository.delete(person);

            tableRepository.delete(Table);

        }
  • Definieren Sie "erweitern Sie den CrudRepository". Dein Beispiel-code macht genau das; Nein? Eine Transaktion erforderlich ist, etwas zu tun mit der Datenbank, so gibt es keine Notwendigkeit, für @Transactional Anmerkung hier - es wäre erforderlich, um die Gruppe mehr als eine DAO-Betrieb in einer einzigen Transaktion.
  • Haben Sie versucht, zu entfernen @Transactional und sehen, wenn die Transaktion ein commit ausgeführt wird?
  • bin nur zeigen, wie mein Repository erweitert die CrudRepository? Können Sie bitte definieren, was du damit meinst: "erforderlich, um der Gruppe mehr als eine DAO-Bedienung in einem einzigen Transaktion" ? Dank
  • Wenn Sie in Ihrer Methode löschen es ist mehr eine Datenbank zugreifen muss transaktional sein, damit es Sinn hinzufügen Transaktions-anotation. Also, wenn es cascading z.B. : beim löschen einer person mehr einen Tisch beteiligt sind, die Notwendigkeit, die mit Transaktions-Transaktions-anotation
  • im nicht sicher, was du meinst? Können Sie ein Beispiel in der Antwort?
  • wenn unsere delete-operation bedeutet mehr einen Tisch, es muss eine Transaktion in Ihrem Beispiel müssen Sie eine Transaktion löschen, weil Sie 2 Objekte.

InformationsquelleAutor java123999 | 2016-04-15
Schreibe einen Kommentar