Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
43 / 43 / 15
Регистрация: 10.09.2013
Сообщений: 293

JPA/Hibernate MappingException: Foreign key must have same number

03.01.2015, 21:53. Показов 4656. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот описание ошибки.
Code
1
org.hibernate.MappingException: Foreign key (FK_n9nvapt8aqpregmwepb98hjed:questions [test_id])) must have same number of columns as the referenced primary key (tests [date,group,name])
Суть в том, что внешний ключ должен включать такое же количество столбцов что и ключ на который он силаеться. Но в таблице questions нет внешних ключей! Она связана с таблицей tests связью многие-ко-многим через дополнительную таблицу в которой, поидеи, все хорошо. Помогите разобраться с ошибкой..

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.01.2015, 21:53
Ответы с готовыми решениями:

[Hibernate] A Foreign key has the wrong number of column. should be 0
Ошибка: Initial SessionFactory creation failed.org.hibernate.AnnotationException: A Foreign key refering com.artmal.model.Teacher from...

Hibernate + Cannot add or update a child row: a foreign key constraint fails
Есть вот такая схема: Соответственно два класса: @Entity @Table(name = "item_orders") public class ItemOrders implements...

Ненормальный org.hibernate.MappingException в Хибернейте
Всем привет! Кто сталкивался с такой проблемой? Пишу свое маленькое приложение, в качестве бд использую Постгрес, в качестре орма -...

3
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
04.01.2015, 13:17
У тебя какое-то неправильное понимание о связи через дополнительную таблицу, связывающая таблица должна состоять хотя-бы из двух полей, в твоём же примере сложно понять что и как ты увязал, видимо хибренейт тоже не смог разобраться
Пример связи многие ко многим на пользователях и их доступах из моего проекта см. в прикреплённом файле.
Миниатюры
JPA/Hibernate MappingException: Foreign key must have same number  
0
43 / 43 / 15
Регистрация: 10.09.2013
Сообщений: 293
04.01.2015, 20:14  [ТС]
У меня есть таблица tests в которой первичный ключ состоит из трех полей и таблица questions в которой есть первичный ключ из одного поля. Их нужно связать отношением many-to-many. Как это сделать, чтобы hibernate ето понял?

Добавлено через 6 часов 19 минут
Нужно вот эту схему перенести в объектно реляционный мир.
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
CREATE TABLE IF NOT EXISTS `atutor`.`tests` (
  `test_pk` INT NULL DEFAULT 1,
  `name` VARCHAR(60) NOT NULL,
  `date` DATE NOT NULL,
  `group` VARCHAR(10) NOT NULL,
  `discipline_fk` INT NULL,
  PRIMARY KEY (`name`, `date`, `group`),
  INDEX `fk_test_disciplines_fk_idx` (`discipline_fk` ASC),
  UNIQUE INDEX `test_pk_UNIQUE` (`test_pk` ASC),
  CONSTRAINT `fk_test_disciplines_fk`
    FOREIGN KEY (`discipline_fk`)
    REFERENCES `atutor`.`disciplines` (`discipline_pk`)
    ON DELETE CASCADE
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
 
 
-- -----------------------------------------------------
-- Table `atutor`.`questions`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `atutor`.`questions` ;
 
CREATE TABLE IF NOT EXISTS `atutor`.`questions` (
  `name` VARCHAR(100) NOT NULL,
  `question_pk` INT NULL DEFAULT 1,
  PRIMARY KEY (`name`),
  UNIQUE INDEX `question_pk_UNIQUE` (`question_pk` ASC))
ENGINE = InnoDB;
 
 
-- -----------------------------------------------------
-- Table `atutor`.`test_question`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `atutor`.`test_question` ;
 
CREATE TABLE IF NOT EXISTS `atutor`.`test_question` (
  `test_fk` INT NULL,
  `question_fk` INT NULL,
  INDEX `fk_test_question_question_id_idx` (`question_fk` ASC),
  CONSTRAINT `fk_test_question_question_id`
    FOREIGN KEY (`question_fk`)
    REFERENCES `atutor`.`questions` (`question_pk`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_test_question_test_id`
    FOREIGN KEY (`test_fk`)
    REFERENCES `atutor`.`tests` (`test_pk`)
    ON DELETE CASCADE
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
0
 Аватар для animator404
99 / 99 / 12
Регистрация: 05.05.2013
Сообщений: 1,208
09.01.2015, 23:23
Insane__, создать по сущности на каждую таблицу, пометить их @Entity и @Table(name=''tableName'), расставить связи - тоже аннотациями.
В чем сложность?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.01.2015, 23:23
Помогаю со студенческими работами здесь

Зачем нужны primary key и foreign key?
Пожалуйста, объясните самым простым языком зачем эти ключи нужны? Какова их функция? Как они работают? В чём приемущество?

Как одной строкой запроса добавить один и тот же сгенерированный UUID в поле Key таблицы1 и в поле Foreign Key таблицы2 ?
У меня получается добавить одним запросом один и тот же UUID в две таблицы. Как одной строкой запроса добавить один и тот же...

JPA: Hibernate
Где-то читал, что реализация JPA от Hibernate это entity-manager. Но там даже нету классов типа javax.persistence ... Нашел такие классы...

Spring boot, Jpa, Hibernate, H2DB
Суть такова я вызываю удаленную процедуру public interface NotificationProcedureRepository extends...

Не записывает в базу Spring4+JPA+Hibernate
Пишу проэкт на Spring 4 + Gradle + Hibernate. Пытаюсь добавить в таблицу юзеров пользователя. Вы дает ошибку: Exception encountered...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru