Это из Официальное руководство Hibernate:
Существует альтернативное объявление
<composite-id>
, которое позволяет получить доступ к устаревшим данным с помощью составных клавиш. Его использование сильно не рекомендуется ни для чего другого.
Почему составные клавиши обескуражены? Я рассматриваю возможность использования таблицы с тремя столбцами, где все столбцы являются внешними ключами и вместе образуют первичный ключ, который является содержательной связью в моей модели. Я не понимаю, почему это плохая идея, особенно, что я буду использовать для них индекс.
Какая альтернатива? Создать дополнительный автоматически созданный столбец и использовать его в качестве первичного ключа? Мне все равно нужно запросить мои 3 столбца в любом случае!?
Короче говоря, почему это утверждение верно? и какая лучшая альтернатива?