Я пытаюсь создать отображение гибернации между двумя таблицами User и Country, как показано ниже на изображении ниже.
Таблица Country используется только для пользователя, а не где-либо еще, поэтому я должен использовать встроенные и встраиваемые для создания этих таблиц или просто выполнять сопоставление «многие в один» после создания таблиц.





Это зависит от того, как вы это будете использовать. Если вы вставите данные о стране, они появятся в таблице User и будут загружены с данными пользователя.
Если в большинстве случаев вам не нужны данные о стране каждый раз, когда вы работаете с пользовательскими данными, вы можете выполнить сопоставление OneToMany с отложенной инициализацией. В этом случае данные о стране будут загружаться только при необходимости с учетом стоимости дополнительного обращения к БД (которое может быть уменьшено до соединения).
Это зависит от того, когда вы хотите загрузить данные страны. Если вы используете встроенные данные, данные страны будут загружены во время загрузки пользовательских данных. Но если вы выберете сопоставление OneToMany с отложенной инициализацией, тогда данные страны будут загружены, когда они вам понадобятся. . Итак, это основано на том, что вы используете.
Это нечто более личное. Некоторые люди предпочитают использовать Embedded для абстрагирования некоторой информации, а другие люди более консервативны.
По моему опыту, я предпочитаю отображать объекты очень близко к их представлению в таблицах. Причины просты:
И, как уже упоминалось в других ответах, вы всегда будете приносить информацию о Country с помощью User, используя встроенный. Это поведение ЖАЖДУЩИЙ, чего обычно следует избегать в JPA / Hibernate.
Итак, в вашем случае я бы использовал отношение «многие к одному».
@Dherik, спасибо за редактирование моего вопроса. Я ценю это.