四种关系的转化以及原理图:
测试以下几种不同的状态变化
(A)开始-->持久状态-->游离状态-->结束
(B)开始-->持久状态-->删除状态-->结束
(C)开始-->临时状态-->持久状态-->游离状态-->删除状态-->结束
(D)开始-->持久状态-->游离状态-->持久状态-->删除状态-->结束
(A)开始-->持久状态-->游离状态-->结束:
@Test
public void demo2() {
Configuration configuration = new Configuration().configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
MyTest mt = session.load(MyTest.class, "1");
System.out.println("load" + mt);
session.delete(mt);
transaction.commit();
}
(B)开始-->持久状态-->删除状态-->结束
@Test
public void demo2() {
Configuration configuration = new Configuration().configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
MyTest mt = session.load(MyTest.class, "1");
System.out.println( mt);
持久化状态到游离
session.close();
sessionFactory.close();
}
(C)开始-->临时状态-->持久状态-->游离状态-->删除状态-->结束
@Test
public void demo1() {
Configuration configuration = new Configuration().configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
// 临时状态
MyTest myTest = new MyTest();
myTest.setId("100");
myTest.setName("sdfasdfas");
// 到持久状态
session.save(myTest);
// 持久化状态到游离状态
session.evict(myTest);
//游离状态到删除状态
session.delete(myTest);
transaction.commit();
}
(D)开始-->持久状态-->游离状态-->持久状态-->删除状态-->结束
@Test
public void demo2() {
Configuration configuration = new Configuration().configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
//持久化状态
MyTest mt = session.load(MyTest.class, "1");
System.out.println(mt);
// 持久化状态到游离
session.evict(mt);
// 游离到持久化状态
MyTest myTest = new MyTest();
myTest.setName("名字胜多负少234");
session.saveOrUpdate(myTest);
// 持久化状态到删除状态
session.delete(mt);
transaction.commit();
}