persist()
не записывает ваш объект в базу данных немедленно. Вместо этого он помечает ваш объект как persistent , так что он будет записан в базу данных до принятия транзакции (или до выполнения запроса, или во время явной операции flush()
).
Итак, даже если вам не нужно транзакционное поведение, вам все равно придется управлять транзакциями. Вы можете сделать это вручную следующим образом:
@RequestMapping(method = RequestMethod.POST)
public String form() {
EntityManager em = this.emf.createEntityManager();
TaxRates t = new TaxRates();
t.setCountry("US");
// set more properties
em.getTransaction().begin();
em.persist(t);
em.getTransaction().commit();
em.close();
...
}
Но Поддержка декларативных транзакций Spring - более удобный способ сделать это.