programing

용어 명확화 - DB에서 엔티티를 가져올 때 JPA 또는 휴지 상태 엔티티를 "하이드레이팅"하는 것은 무엇을 의미합니까?

goodsources 2022. 12. 9. 21:56
반응형

용어 명확화 - DB에서 엔티티를 가져올 때 JPA 또는 휴지 상태 엔티티를 "하이드레이팅"하는 것은 무엇을 의미합니까?

엔티티의 ORM/Legy loading의 맥락에서, "Hydication"이라는 용어에 대한 저의 이해는 다음과 같습니다.

"하이드레이팅"은 느린 로드를 사용하여 가져온 엔티티의 이전에 채워지지 않은 속성의 일부 또는 전부를 채우는 프로세스를 설명합니다.

eg: 래 egAuthor됩니다.

@Entity
class Author
{
     @Id
     long id;
     List<Book> books;
}

''는books이치노

로딩 프로세스로 알고 있습니다.books데이터베이스로부터의 수집을 「수집」이라고 부릅니다.

이 정의가 올바르고 일반적인 장소입니까?이 프로세스에 대해 더 일반적으로 사용해야 하는 용어가 더 많은 용어가 있습니까?

Hydrate는 데이터베이스(특히 휴지 상태)에서 인스턴스화된(그러나 비어 있는) 값 개체/모델을 채우는 용어로 시작되었습니다.

BizTalk와 같은 다양한 ORM 및 툴은 Hydrate 및 기타 관련 용어를 사용합니다(예를 들어 BizTalk은 사용 가능하지만 아직 채워지지 않은 인스턴스를 의미합니다).

저는 개인적으로 중복된 용어의 오버홀을 싫어합니다.언어를 재발명하지 않고 poopled는 같은 의미입니다.그것은 아무것도 추가하지 않고 혼란으로 이어진다(다시 발명된 용어를 접하는 것에 대한 일반적인 첫 번째 생각: 이것은 어딘가 다르고 마법 같은 인가?).

이런 스타일의 언어, 특히 탈수된 언어의 BizTalk 확장 기능은 중복됩니다.사람들은 어떻게 말해야 할지, 공허해야 할지, 또렷해야 할지 잊지 않았겠죠?

하이드레이티드(hydrated)와 그 관련 비유는 본질적으로 동면기를 경쟁 제품과 차별화하기 위해 개발된 마케팅 도구입니다.

이 시점에서 Hibernate 및 기타 ORM 제품은 오랫동안 이러한 용어를 사용해 왔기 때문에 Hydrate(및 탈수)는 계속 사용할 수 있습니다.

엔티티 로드 상태

엔티티를 가져오면 휴지 상태가 두 번째 수준 캐시 또는 데이터베이스에서 엔티티를 로드하려고 합니다.

엔티티 로드 상태

캐시에 되며 JDBC는 "JDBC"를 사용합니다.ResultSet라고 하면, 로변변 an an an is로 바뀝니다.Object[]이치

번째 에는 이 캐시가 됩니다.Object[] 하면 DB를 가져옵니다.Object[]★★★★★★★★★★★★★★★★★★★★★★★★★★

「」의 .Object[]Java 엔티티 오브젝트에 로드된 상태를 하이드레이션이라고 합니다.이러한 상태는 다음과 같습니다.

final Object[] values = persister.hydrate(
    rs, id, object,
    rootPersister, cols, eagerPropertyFetch, session
);

로드된 상태는 현재 실행 중인 지속성 컨텍스트에 엔티티로 저장됩니다.엔트리 오브젝트입니다.이 오브젝트는 현재 엔티티 데이터를 로드 시간 스냅샷과 비교하는 기본 더티 체크 메커니즘에 나중에 사용됩니다.

로드된 상태는 두 번째 레벨 엔티티 캐시의 캐시 엔트리 값으로도 사용됩니다.

를 「」로 .Object[] 파라미터 때 INSERT,UPDATE ★★★★★★★★★★★★★★★★★」DELETE진술은 탈수라고 불린다.

하이드레이션은 느슨한 용어입니다.우리 회사에서는 전체 객체 그래프의 모든 객체 속성을 로드하기 위해 그가 말하는 "재하이드레이션"을 사용합니다.여기 다양한 수준의 수화물에 대해 설명하는 게시물이 있습니다(동면 상태에서 사용하는 일반적인 사용법입니다).

ORM의 맥락에서 'hydrate(s)'라는 용어는 단순히 프레임워크가 대상을 제공한다는 것을 의미한다고 생각합니다.따라서 저장소에서 데이터를 꺼낸 후 ORM에 의해 객체가 '하이드레이트'됩니다.이 용어는 ORM 프레임워크가 스토어에 표시되는 객체/그래프를 제공할 때마다 적용할 수 있습니다.

수화라는 용어는 최근에 로드된 물체의 필드를 설정하는 과정을 가리키기 위해 동면 라이브러리의 내장에 광범위하게 사용되며, 실제로 객체 그래프 포퓰러톤과 관련이 있습니다.
그러나 이는 사용자에게 반만 채워진 개체를 제공하고 나머지는 필요에 따라 로드하는 느린 로딩의 개념과는 다릅니다.
수분공급은 항상 게으르거나 열심히 수행되며 겨울잠을 자는 것이다.
짐은 일 뿐이다

hibernate를 선택한 orm 이름으로 바꿉니다.

하이드레이션은 쿼리 결과를 반환하는 방법을 의미하는 일반적인 ORM 도메인 용어입니다.과정이나 동사가 아니라 동작이나 사건이 일어나는 것이 아니라 명사입니다.그러므로 수화한다는 것은 단순히 수화법을 사용한다는 것을 의미한다.하이드레이션 방식은 데이터를 나타내는 구조를 만듭니다.하지만, 모든 수화물은 물체를 인스턴스화할 뿐만 아니라 참조를 반환하기 전에 채워진다는 일반적인 오해가 있습니다.그건 규칙이 아니에요.특정 수화물이 물체를 채울 수도 있지만, 모든 수화물이 그렇게 하는 것은 아닙니다.수화물에 따라 다른 구조가 반환됩니다.

  • 특이 스칼라
  • 스칼라 배열
  • 배열
  • 오브젝트 배열
  • 객체 수집 스칼라
  • 객체 수집 배열
  • 오브젝트 다른 오브젝트 수집
  • ...더

ORM 구현 세부 사항입니다.ORM에 따라서는 여러 개의 수화물이 제공되며, 어떤 ORM은 인수를 전달하여 하나의 수화물을 선택할 수 있습니다.또 어떤 ORM은 이러한 제어를 제공하지 않고 이를 현명하게 다루려고 하는 관습으로 대체하기도 합니다(이것은 위에서 설명한 수화물/인구 오해의 원인입니다).고급 버전에서는 필드 유형을 매핑할 수 있는 사용자 지정 개체에 고유한 소화기를 작성할 수 있습니다.이 용어 자체는 역직렬화와 밀접하게 관련되어 있습니다(더 일반적이며 데이터베이스나 ORM을 반드시 포함할 필요는 없습니다).

언급URL : https://stackoverflow.com/questions/4929243/clarifying-terminology-what-does-hydrating-a-jpa-or-hibernate-entity-mean-wh

반응형