2011-08-01 2 views
0

문제는 다음과 같습니다. 나는 Embeddable 클래스 (예 : Address)의 여러 필드를 가지고 있습니다. 더 복잡한 클래스 (예 : Employee)에는 Address 클래스의 인스턴스 필드가 여러 개 있습니다 (예 : homeAddress, workAddress 등). 물론 workAddressStreethomeAddressStreet 또는 그와 비슷한 다른 인스턴스의 Address 필드에 다른 열 이름이 있어야합니다.클래스 별 최대 절전 모드 NamingStrategy

각 입력란에 AttributeOverride 주석을 사용할 수 있지만 매우 번거롭습니다. 이 문제를 해결하는 데 사용할 수있는 NamingStrategy 인터페이스가 있습니다. 그러나 모든 문서와 샘플에 따라 세션 수준에서 만 전역 적으로 만 사용할 수 있습니다. 그 동안 내가 작업하는 시스템에는 그러한 불분명 한 점이 없으며 그러한 스키마를 도입하면 기존 스키마에서 많이 바뀔 것입니다. 특정 클래스에만 적용 할 방법이 없습니까?

답변

0

workAddressStreet 및 homeAddressStreet와 같은 2 개의 필드를 사용해야합니까? 제안 사항은 addressStreet 필드를 사용하고 "addressType"값 유형 = 1이 집이고 값 유형 = 2가 작동한다고 말하는 다른 필드가 있습니다.

+0

좋은 생각이지만 몇 가지 (실제로는 3 가지) 다른 주소가 있으므로 한 테이블의 다른 열 이름에 어떤 식 으로든 매핑해야합니다. 하지만 당신의 제안은 "주소"를 삽입 할 수 없다고 생각하게하고 다른 테이블에 보관합니다. 흠, 어쩌면 이것이 갈 길입니다 ... – yozh