Is this a legacy table structure that you want to map or are you considering to model it this way? I would recommend you use a single table inheritance, make Cat, DomesticCat and WildCat abstract, and finally use a single discriminator column. Hibernate does not really support multiple discriminator columns per level.