Accessory
오브젝트의리스트를 포함한 클래스 Player
가 있습니다. 악세사리에는 두 가지 종류가 있습니다. SocketedAccessories에는 SocketJewels 목록이 있고 MagicAccessories에는 MagicEnchantments 목록이 있습니다.Hibernate 콜렉션의 복수형 타입
데이터베이스 수준에는 플레이어를 나타내는 players
테이블과 액세서리 목록이 포함 된 accessories
테이블이 있습니다. 액세서리에는 소켓이 있는지 또는 마법인지를 나타내는 유형 필드가 있으며 한 유형에서만 사용되는 열은 다른 유형의 항목으로 비워 두었습니다. 소켓 보석이나 각 액세서리의 마법 요소를 나타내는 socket_jewels
및 magic_enchantments
테이블이 있습니다.
나는 이것을 Hibernate와 매핑하는 정확한 방법을 찾아 내려하고있다. 한 가지 방법은 플레이어가 SocketedAccessories 용 액세서리와 MagicAccessories 용 액세서리의 두 가지 목록을 갖는 것입니다. 그래도 바람직하지 않은 것 같습니다. 내가 원하는 건 플레이어가 두 가지 유형의 것을 모두 포함하는 List<Accessory> accessories
필드를 가져야한다는 것입니다.
hbm.xml이나 annotation에서 Hibernate에게이를 알려주는 방법이 있습니까?
이것은 좋은 소식입니다. 비록 "액세서리"가 기본 클래스이고 인터페이스가 아닌 것 같아요. 목록을 갖고 싶습니다. –
@CaptainAwesomePants 액세서리는 인터페이스가 될 수 있습니다. 그러나 hbm을 사용해야 할 수도 있습니다. Hibernate 핵심 문서는 실제로 인터페이스를 사용할 수 있다고 명시 적으로 언급합니다. JPA와의 인터페이스의 경우를 다루는 다른 답변에 대한 링크를 추가하겠습니다. –
아, 알겠지만 지불이 인터페이스라는 사실을 놓쳤습니다. (또한 "주석 인터페이스는 현재 지원되지 않습니다."비트가 없습니다.) 고맙습니다! –