2010-06-08 2 views
0

필드를 변경할 수있는 클래스 (새 필드 추가)를 구현하고 싶습니다. 문제는 내 고객에게 어떤 분야의 양식을 완성하고 자신이 원하는 유형을 완성하여이 작업을 스스로 수행 할 수있게하려는 것입니다. 그러면 변경이 자동으로 수행됩니다! 누구나 어떻게이 클래스를 구현하고 최대 절전 모드 주석을 사용하여 데이터베이스에서이 변경을 수행 할 수 있는지 알 수 있습니까?최대 절전 모드 주석을 사용하여 동적 클래스 구현

답변

0

이름 - 값 쌍의 맵을 사용해야합니다. 맵은 Hibernate에 의해 지원되며 그 내용은 동적이다.

+0

감사합니다. 미안, 나는 최대 절전 모드에 익숙하지 않다. 내 이해에서 hibernate는 해쉬 맵을위한 새로운 테이블을 생성한다. 내 해시 맵의 값이 다른 클래스의 객체 일 경우, hql은 해당 객체에서 일부 값을 선택해야하는 쿼리를 지원합니까? 다른 말로하면 hql은이 경우 중첩 된 select 쿼리를 지원합니까? –

+0

@ Zahra에는 일반적으로 맵 자체에 필요한 테이블이 없으며 포함 된 오브젝트 (엔티티 자체 인 경우)에만 필요합니다. AFAIK HQL은 일반적으로 중첩 된 선택을 지원합니다. 그러나 맵 내용은 액세스 할 때 Hibernate에 의해 자동으로로드되므로 HQL 대신 맵 내에서 간단한 조회를 수행 할 수도 있습니다. –

+0

고맙습니다. 사실지도에 넣은 객체의 일부 필드가 필요한 검색이 있기 때문에 실제로 HQL 쿼리가 필요합니다! –

0

컴파일시에만 주석을 클래스에 첨부 할 수 있으므로 Hibernate Annotations를 사용하여 변경할 수 없습니다. 그러나 런타임에 클래스의 구조를 변경하려면 (필드, 메소드 추가 등) 클래스를 다시 컴파일하고 Hibernate가 데이터베이스에 액세스 할 때 사용하는 데이터베이스 매핑을 다시 만들어야합니다.