Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Как заставить Spring JPA записать объект в БД  [new]
Molasar
Member

Откуда:
Сообщений: 804
Всем привет!

Как в тестах заставить Spring немедленно записать в БД созданный объект?

@RunWith(SpringRunner.class)
@SpringBootTest(classes = WicketApplication.class)
@Transactional
public class BackupTest {
    
    @PersistenceContext
    private EntityManager entityManager;
    
    @Autowired
    private CertcategoryDAO certcategoryDAO;

    public BackupTest() {
    }
    
    @Test
    public void exportImportTest() {
        assertEquals(3, certcategoryDAO.getAll().size());
        addCertCategory();
        assertEquals(4, certcategoryDAO.getAll().size());
    }
    
    public void addCertCategory() {
        Certcategory certCategory = new Certcategory();
        certCategory.setCrtcatName("New temp category");
        entityManager.persist(certCategory);
        entityManager.flush();
    }

}
19 мар 20, 17:16    [22102437]     Ответить | Цитировать Сообщить модератору
 Re: Как заставить Spring JPA записать объект в БД  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5704
Molasar, Вам надо использовать общий для insert и select entity-менеджер, тогда независимо от реальной вставки в базу тест будет давать правильный ответ
19 мар 20, 17:32    [22102472]     Ответить | Цитировать Сообщить модератору
 Re: Как заставить Spring JPA записать объект в БД  [new]
Molasar
Member

Откуда:
Сообщений: 804
Kachalov
Molasar, Вам надо использовать общий для insert и select entity-менеджер, тогда независимо от реальной вставки в базу тест будет давать правильный ответ
Согласен, но как сделать реальную вставку?
19 мар 20, 17:40    [22102483]     Ответить | Цитировать Сообщить модератору
 Re: Как заставить Spring JPA записать объект в БД  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5183
Molasar
Kachalov
Molasar, Вам надо использовать общий для insert и select entity-менеджер, тогда независимо от реальной вставки в базу тест будет давать правильный ответ
Согласен, но как сделать реальную вставку?


Убрать @Transactional
<:o)
20 мар 20, 06:16    [22102653]     Ответить | Цитировать Сообщить модератору
 Re: Как заставить Spring JPA записать объект в БД  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5704
Molasar
Согласен, но как сделать реальную вставку?

- разберитесь, почему CertcategoryDAO использует другой инстанс EntityManager-а (как вариант - там нет аннотации @Transactional)
23 мар 20, 11:26    [22104307]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить