belongsTo
с несколькими классами часто подозрительно, так как это означает, что экземпляры будут в композиционных отношениях с несколькими другими объектами домена.По моему опыту, это полезно, только если вы знаете, что один всегда будет null
, когда другой установлен (но все же, вы можете предпочесть, чтобы TagUser
и TagPost
извлекали класс Tag
).Я бы посоветовал вам удалить один из belongsTo
(возможно, Post).
В ваших Post
и User
классах у вас, вероятно, есть отношение hasMany
.Достаточно создать отношения, и не нужно добавлять belongsTo
в Tag
.Единственное преимущество использования belongsTo
состоит в том, что обновление или удаление User
или Post
будет каскадно и также сохранять Tags
.
Если ваш вариант использования для Tag является обычным (например, теги)в stackoverflow) вы пытаетесь создать отношения «многие ко многим» (у одного пользователя много тегов, а у одного тега много пользователей. То же самое для публикации).Вы можете использовать принадлежность к отношениям «многие ко многим», чтобы указать, кому принадлежит отношение.Прочитайте документацию по многим ко многим , чтобы понять, как работают такие отношения.
Что касается вашего последнего вопроса, IntelliJ имеет встроенную функцию визуализации зависимостей классов домена.