JPA EntiityManager.flush方法


flush 方法

  • 將Managed狀態的實體中的數據更新到數據庫中(不用等到 commit 了)

flush 方法測試

find 之后 setter 之后 flush

@Test
public void test() {
    EntityManagerFactory factory = Persistence.createEntityManagerFactory("myJpa");
    EntityManager em = factory.createEntityManager();
    EntityTransaction tx = em.getTransaction();
    tx.begin();

    Student s = em.find(Student.class, 1L);
    /*

    Hibernate:
        select
            student0_.sid as sid1_0_0_,
            student0_.sage as sage2_0_0_,
            student0_.sname as sname3_0_0_
        from
            Student student0_
        where
            student0_.sid=?

     */
    s.setSage(s.getSage() + 1);
    em.flush();
    /*

    Hibernate:
        update
            Student
        set
            sage=?,
            sname=?
        where
            sid=?

     */
    tx.commit();
    em.close();
    factory.close();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM