如果我已经在使用 @Transactional,我什么时候应该使用

我在 Spring Boot Application 中使用 JPA。


我才刚刚开始使用它,我有一些问题。


我的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.只用@Transactional注解DAO类就够了吗?


一些资源表明需要使用@EnableTransactionManagement 才能使用@Transactional。


守着星空守着你
浏览 143回答 1
1回答

回首忆惘然

不,JPA 提供程序必须在事务方法调用结束时为您完成。是的。Spring Boot 默认启用事务管理(使用 proxyTargetClass = true)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java