Do you put the @NaturalIdCache on the subclass? That is not allowed - per documentation, @NaturalIdCache (as well as @org.hibernate.annotations.Cache) is only allowed on root classes.