Я использую JPA в приложении Spring Boot .
Я только начинаю его использовать, и у меня есть несколько вопросов.
Мой DAO код следующий:
@Transactional
public class DatabaseUnitDao implements IDatabaseUnitDao {
@PersistenceContext
private EntityManager entityManager;
@Override
public void create(Unit unit) {
final String CREATE_UNIT =
"CREATE TABLE " + unit.getName() + " (id VARCHAR(255) PRIMARY KEY NOT NULL, value text NOT NULL)";
entityManager.persist(unit); // add an info about unit in the general table
entityManager.createNativeQuery(CREATE_UNIT).executeUpdate(); // create table for this units
}
}
1. Должен ли я использовать flush()
в этом случае?
2. Достаточно просто аннотировать класс DAOс @Transactional?
Некоторые ресурсы сообщают, что необходимо использовать @ EnableTransactionManagement для использования @ Transactional.