2015-12-29 9 views
1

У меня есть два стола в спящем режиме с весенним ботинком: «Игра» и «Категория»Hibernate ManyToMany Association?

Игра имеет несколько категорий и категорий, которые могут иметь несколько игр. Теперь мне нужна таблица между «Играми» и «Категория» для хранения обоих основных ключей из таблиц в качестве внешних ключей.

Я назвал таблицу «Game2Categorie».

Теперь мой вопрос: как 3 класса должны выглядеть на Java?

Игра имеет gid как ПК. Категория имеет cid как ПК. Game2Categorie должен иметь только gid и cid сверху, как FK.

Может ли кто-нибудь показать мне, как создать эти три класса?

+1

Вы делаете это неправильно: вы должны начать с разработки своего домена, который имеет смысл в вашем приложении, а затем использовать JPA/Hibernate, чтобы «сжать» его в базу данных. – kryger

ответ

0

Вам нужно всего лишь создать классы для Game и Category, поскольку это ваши единственные сущности. Я бы предложил сначала прочитать документ Hibernate, чтобы понять концепцию сущностей.

Затем вы определяете свое отношение с @ManyToMany. Затем Hibernate будет использовать третью таблицу для представления этого отношения на стороне базы данных. Вы можете определить имя этой таблицы через @JoinTable.

This tutorial подробно объясняет это.

+0

Я собираюсь взглянуть на него. Большое спасибо! Итак, «третья» таблица будет автоматически создана в моей базе данных, правильно? – PrestigeDev

+0

Да, если вы используете модель сущности для генерации базы данных, e. г. с помощью 'hbm2dll' или [Liquibase] (https://github.com/liquibase/liquibase-hibernate/wiki), третья таблица будет создаваться автоматически вместе с таблицами сущностей. –

+0

Я тестировал его, и это сработало. В Phpmyadmin у меня теперь есть и третья таблица. Но мой вопрос в том, правильно ли он содержит 2 первичных ключа (gameid и categoryid) и 1 FK для категории. Если я посмотрю на отношения, это говорит, что у меня есть 2 FK. Это правильно и что я хотел? Я, хотя мне нужны только FK в такой «третьей» таблице? – PrestigeDev