• CoreAPI_Delete


    session管理一个数据库的任务单元,简单来说就是来帮我们管理数据库的增删改查的操作,一个session里面可以执行一系列的增删改查,然后它会帮我们放到一个事务里面,已提交,数据库的状态就产生变化了。

    通过save我们认识了三种状态,分别是transient、persistent、detachd,下面来看delete方法。

    delete(Object object) 从数据库中删除一个持久状态对象,那么缓存中会不会清楚呢?一个persistent状态的对象delete后就变成transient状态了,缓存中没有了。从数据库里删了,它的ID号就没了,当然变成transient状态了,所以缓存里就清了。

    强烈建议动手实验,什么时候会delete什么时候不会

    package hjj.lch.hibernate.model;
    
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.AnnotationConfiguration;
    import org.junit.AfterClass;
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    public class HibernateCoreAPITest {
    
    private static SessionFactory sf = null;
        
        @BeforeClass
        public static void beforeClass(){
            sf = new AnnotationConfiguration().configure().buildSessionFactory();
        }
        
        @Test
        public void testDelete() {
            Teacher t = new Teacher(); 
            t.setName("t1");
            t.setTitle("中级");
            
            Session session = sf.getCurrentSession();
            session.beginTransaction();
            session.save(t); // save后,t变成了Persistent状态
            System.out.println(t.getId());
            session.getTransaction().commit(); // commit之后,t变成了Detached状态
            
            Session session2 = sf.getCurrentSession();
            session2.beginTransaction();
            session2.delete(t); 
            session2.getTransaction().commit();
        
        }
        
        @Test
        public void testDelete2() {
            Teacher t = new Teacher(); 
            t.setName("2");
            
            Session session2 = sf.getCurrentSession();
            session2.beginTransaction();
            session2.delete(t); 
            session2.getTransaction().commit(); 
        
        }
    
    
        @AfterClass
        public static void afterClass(){
            sf.close();
        }
    
    }
  • 相关阅读:
    [HAOI2011] 向量
    [HNOI2004] 树的计数
    [TJOI2009] 猜数字
    Wannafly Camp 2020 Day 6K 最大权值排列
    [HAOI2012] 容易题
    [ZJOI2008] 生日聚会
    [CQOI2007] 余数求和
    [CQOI2009] 中位数
    [SDOI2012] Longge的问题
    我的Apache又挂了之apache错误:server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName'
  • 原文地址:https://www.cnblogs.com/ligui989/p/3463769.html
Copyright © 2020-2023  润新知