Когда нам следует использовать аннотацию @Transactional?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Когда нам следует использовать аннотацию @Transactional?

Сообщение Anonymous »

Я хотел знать, когда нам следует использовать @Transactional в Spring Boot Services.
Поскольку метод save() JpaRepository помечен @Tranasactional code> необходимо ли мне добавлять эту аннотацию в мой метод службы?
Я видел пару статей, в которых говорилось, что если внутри вашего метода службы используется только репозиторий ( как в приведенном ниже сценарии), то нет необходимости помещать @Transactional в метод службы, поскольку save() уже помечено @Transactional. Это правда?
class EmployeeService {
@Autowired
EmployeeRepository repo;

@Transactional //(Is it required here?)
public void saveEmployee(Employee employee) {
repo.save(employee)
}
}

Следует ли использовать его в приведенном ниже случае в методе getStudentsWithNameStartsWithAndGradeLessThan(), поскольку мы используем более одного репозитория?
@Getter
@Setter
@Entity
@Table(name = "student")
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Long id;

@Column(name = "name")
private String name;

@Column(name = "average_grade")
private Short averageGrade;
}

public interface StudentRepository extends JpaRepository {
Set findByAverageGradeLessThan(Short averageGrade);
Set findByNameStartsWithIgnoreCase(String name);
}

@Service
public class StudentService {

private final StudentRepository studentRepository;

public StudentService(StudentRepository studentRepository) {
this.studentRepository = studentRepository;
}

@Transactional //(Is it required here?)
public Set getStudentsWithNameStartsWithAndGradeLessThan(String prefix, Short averageGrade) {

Set students = studentRepository.findByNameStartsWithIgnoreCase(prefix);
students.retainAll(studentRepository.findByAverageGradeLessThan(averageGrade));
return students;

}
}


Подробнее здесь: https://stackoverflow.com/questions/781 ... annotation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»