Контекст сохранения JPA и операции с базой данных в Spring - PullRequest
0 голосов
/ 09 июня 2019

Я работаю в проекте Spring, который должен выполнять простые операции CRUD. Тем не менее, я не понимаю, как это действительно работает ... У меня есть несколько вопросов:

  1. Будут ли методы JpaRepository выполнять операции в базе данных именно тогда, когда я их вызываю?
  2. Как лучше всего выполнить вставку с помощью JpaRepository и получить ответ, если вставка была успешной или нет?
  3. Как работает постоянство контекста и когда операции действительно выполняются в базе данных? (PS: схема очень поможет)
  4. Должен ли я использовать флеш сам или позволить Spring и JPA позаботиться об этом для меня?

1 Ответ

0 голосов
/ 09 июня 2019

Просто чтобы упомянуть: все эти вопросы легко в Google и частично уже ответил на существующие вопросы.

1 Зависит от того, какие операции вы используете:

  • , если у вас есть аннотация @Transactional для вашего метода, он выполнит все операции в конце метода (самого верхнего).
  • имейте в виду: существуют разные типы транзакций (например, require_new создаст приостановивший родительский элемент, а затем создаст новый после принятия нового родительского продолжения)
  • , если вы используете .saveAndFush (xx)мгновенно сбросит его
  • , если вы не используете явные транзакции, он ведет себя немного иначе

2 Вы создаете сущность + хранилище для нее и вызываете метод .save, например,

@Entity
public class Artist {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
}

public interface ArtistRepository extends JpaRepository<Artist, Long> {}

, если оператор вставки не был выполнен успешно, он выдаст исключение.

3 Я думаю, что на это уже ответили 1

4 Я бы предложил использовать транзакции и позволить Spring позаботиться об этом, но это сильно зависит от потребностей вашего проекта.

Надеюсь, это немного поможет вам, но сначала вы просто делаете урок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...