Создание экземпляра Entity в Spring без какого-либо взаимодействия с Spring - PullRequest
2 голосов
/ 16 апреля 2019

В моем проекте, основанном на spring-data-rest, у меня есть некоторые классы с аннотацией @Entity.

@Entity
@Table(name = "my_table)
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class MyTable extends BaseTableEntity {
    private String name;
    private String description;
}

Теперь я не совсем уверен относительно того, как Spring обрабатывает создание новых экземпляров классов, аннотированных этой аннотацией. Мне нужно было создать объект такого класса Entity, чтобы убедиться, что никакие операции с базой данных не выполняются.

Чтобы было понятно, скажите, что я делаю MyTable table = new MyTable() в классе POJO. Могу ли я быть уверен, что Spring с помощью Hibernate / JPA не будет создавать записи в моей базе данных. Что делать, если я делаю то же самое в классе @Component вместо POJO.

1 Ответ

4 голосов
/ 16 апреля 2019

Создание нового объекта с ключевым словом new не делает вставки в БД.Сущность находится в отдельном состоянии.Вы должны будете передать эту сущность reporitory.save или entityManager.persist или entityManager.merge ... Но пока persist не вызывается (прямо или косвенно), это обычное pojo без представления в базе данных.

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