Hibernate는 엔티티에서 정적 속성과 동적 속성의 조합을 지원하는지 궁금합니다. 예를 들어,Hibernate는 런타임시 엔티티 모드를 혼합 할 수 있습니까?
public class User
{
private Long id;
private String first_name;
private String last_name;
private Map<String,Object> dynamicProperties;
}
런타임시 Db에서 User 테이블의 메타 데이터를 읽어 동적 속성을 얻을 수 있습니다. 기본적으로 저는 여러 클라이언트를 지원하는 제품을 개발 중입니다.
하나의 클라이언트에 대한 사용자 테이블은 다른 클라이언트 사용자 테이블 반면 last_name
는 DOB
및 Title
처럼이 또한 열을 저장해야, id
, first_name
처럼 열을 가질 수 있습니다. 모든 클라이언트들 id
, first_name
와 속성의 last_name
같은 일반적인 설정을 고려
나는 그 정적 속성을 사용하여 내가 엔티티의 맵으로 저장하기 위해 계획하고 휴식을하고있다. 최대 절전 모드로 죽을 지 확신 할 수 없으므로이를 지원합니다.
코드는 런타임시 동적 속성 열에 대해 코드가 알고 있다는 제약이 있습니다.
이 질문은 내가 이해하지 못했던 부분입니다. "제약 조건은 런타임시 동적 속성 열에 대해서만 알고 있습니다."라는 일시적인 속성처럼 보이는 이유는 그 제한이 필요한 이유를 알지 못합니다. –
감사합니다. Duncan. 내 질문에 대해 좀 더 자세히 설명해 드리겠습니다. 저는 여러 조직을 클라이언트로 지원하는 제품을 개발하고 있습니다. 한 조직의 직원 정의는 id, firstName, lastName과 같은 3 개의 필드를 가질 수 있지만 다른 조직의 경우 id, firstName, lastName, 생년월일, 인사말 등과 같은 5 개의 필드를 가질 수 있습니다. 이러한 변형을 지원하기 위해 나는 DynamicProperties라는 맵에 저장된 Object 및 Client 특정 속성의 속성으로 Employee의 공통 속성을 사용하고 있습니다. 기본적으로 새로운 클라이언트가 들어올 때마다 db의 메타 데이터를 읽습니다. – user1914503
"metadata from db"에 대해 더 자세히 설명하십시오. 모든 클라이언트에 대해 하나의 스키마 만 고수하고 있습니까? 런타임시 캐스팅 할 수있는 데이터 유형에 대한 ID 및 문자열 값 및 상수를 갖는 CustomProperty와 같은 객체는 어떻습니까? 그런 다음 해당 메타 데이터에 대한 사용자 지정 쿼리 메서드를 작성할 수 있다고 가정합니다. 그러나 각 클라이언트에는 동일한 스키마 권한이 있습니까? –