POJO 상태
세 가지 상태:
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 레벨 캐시에 있습니다)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.