POJO 상태

2581 단어
POJO 상태 Plain Ordinary Java Object의 간단한 Java 대상은 실제적으로 일반 JavaBeans로 EJB와 혼동을 피하기 위해 만들어진 약칭이다.
세 가지 상태:
1.1. 순식간에 POJO(new POJO)를 생성합니다. 대상은 데이터베이스와 관계가 없습니다. OID는 값이 없습니다. (메인키는 값이 없습니다.) Session에 의해 관리되지 않습니다.
1.2. 영구 층태에는 OID(주키가 있음)가 있고,session관리에Session위탁관리(session.save();session.load(), session을 만들 때 데이터베이스 데이터와 대응하는 관계가 있고 OID는 값이 있습니다.SQL씨를 메인 키로 보내서 사무를 제출해야 입고합니다.
1.3. 유리 상태에는 OID가 있고 세션 관리 세션에 의해 닫히지 않습니다(session.close(), OID에 값이 있습니다. 세션에서 벗어납니다.
사례: public class TypeDAO {
public void addType() {Session session = HibernateUtils.openSession(), Transaction transaction = session.beginTransaction(), BookTypeEntity bookTypeEntity = new BookTypeEntity(), bookTypeEntity.setTypeDesc("외적 내려놓기와 내적 내려놓기");/이 POJO 대상은 2.1입니다. 순간적
  session.save(bookTypeEntity);// ,   
  System.out.println(bookTypeEntity.getTypeId());//oid 

  transaction.commit();
  session.close();

  System.out.println(bookTypeEntity.getTypeId());// ,   

}
public static void main(String[] args) { TypeDAO typeDAO = new TypeDAO(); typeDAO.addType(); }
}
Hibernate 특징: 추가하면 바로 메인 키를 얻을 수 있습니다.
주의점: 기록을 수정한 후 업데이트 방법 업데이트를 호출하지 않지만, 제출 업무는 데이터베이스를 자동으로 업데이트합니다. 수동으로 업데이트를 호출할 필요가 없습니다.즉, 1급 캐시를 갱신하고 업데이트 문구를 자동으로 실행하여 1급 캐시의 데이터를 데이터베이스로 업데이트합니다.
관찰 현상: 스냅샷 메커니즘(데이터 일치성 확보)
public void updateType() {Session session = HibernateUtils.openSession(), Transaction transaction = session.beginTransaction(), BookTypeEntity bookTypeEntity = session.get(BookTypeEntity.class, 31L), bookTypeEntity.setTypeName("진짜 내려놓기"),/session.update(bookTypeEntity);//업데이트를 호출하지 않아도 내용 transaction.commit ();//트랜잭션을 제출하면 session.close ();}
다음 상황은 안 됩니다. (사무 제출도 업데이트되지 않았습니다.)
public void update1 () {Session session = HibernateUtils.openSession (), Transaction transaction = session.beginTransaction (),//카테고리 추가 BookType bookType = new BookType (), bookType.setType Id (39L), bookType.setTypeName ("뛰지 않음", bookType.setTypeDesc ("개발 노력"),/session.update(bookType);trans. action.commit ();session.close ();}
이런 상황의 대상은session에 의해 관리되지 않고 지속화된 상태에 속하지 않으며 1급 캐시에 있지 않습니다.추가도 마찬가지입니다.
public void add1() {Session session = HibernateUtils.openSession();//Transaction transaction = session.beginTransaction();//카테고리 추가 BookType bookType = new BookType();bookType.setTypeName("뛰지 않음");bookType.setTypeDesc("열심히 개발");session.save(bookType);System.out.print(bookType.getTypeId());//transaction.commit();session.close();}
세션을 사용한 후 제출하지 않은 업무도 입고되었습니다.(이 때 데이터는 1 레벨 캐시에 있습니다)

좋은 웹페이지 즐겨찾기