Я пытаюсь связать объекты из одной таблицы с двумя другими с помощью ключей foriegn. Мои Таблицы:EJB multiple FK не работает
пользователя -> идентификатор (рк), имя пользователя, пароль, пол (Ф.К.), возраст (Ф.К.)
пол -> идентификатор (рк), пол
возрастная группа -> идентификатор (рк), группа
все идентификаторы INT (11), а все остальные столбцы VARCHAR
пользователь имеет столбцы гендерно & возраста, который удерживает целое число, которое является первичным ключом из соответствующих таблиц. Все таблицы InnoDB & Я связал их через phpmyadmin, используя вид отношений (найденный здесь). Рассматривая базу данных через представление JPA в Eclipse, они правильно аннотируются с помощью FK.
Я генерирую сущности из меню и настраиваю так, чтобы мой пользовательский объект имел отношения ManyToOne, настроенные для обоих полей, которые я хочу. У меня есть класс пользователей, который я создаю из своего сервлета, добавляя пользователя в качестве параметра к запросу и получая доступ в файле jsp для записи значений на страницу. Я хочу напечатать имена пользователей своей возрастной группы и их пола на странице.
${user.getUsername()}
${user.getGenderBean().getGender()}
${user.getAgegroup().getGroup()}
, когда у меня есть все три в JPA, я получаю только имя пользователя, напечатанное на странице. Как ни странно, если я повторно делаю сущности и не настраиваю возрастную группу, то пол печатается. Это не так. Порядок выше - то, как они используются. GenderBean был сгенерирован один раз, когда я случайно создал двунаправленное отношение, но имя палочки, даже когда я создаю способ, которым я хочу его, то есть однонаправленный.
Я использую Eclipse, Kepler, GlassFish, 4, MySql 5.5.31 & EclipseLink
Я получаю ошибку синтаксиса SQL следующим:
SELECT ID, RANGE FROM agegroup WHERE (ID = ?)
Я изменил groupt ранжировать только в случае возникновения недоразумений ключевых слов происходило. Является ли тот факт, что ID и RANGE имеют верхний регистр, что-то связано с ним, поскольку они не названы таким образом. Я создал все мои имена столбцов в нижнем регистре.
Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно здесь?
Если дело было проблемой, я предполагаю, что у вас есть другие поля, которые не совпадают с User и Gender, но поэтому это не должно влиять на AgeGroup. Обе группы и диапазон являются ключевыми словами в MySQL, поэтому вы можете попробовать что-то еще и посмотреть журналы для исключений - включите ведение журнала EclipseLink и следите за исключениями. Если это не помогает, требуется дополнительная информация, чтобы помочь вам определить, что происходит, например код для сущностей и ошибки в журналах. – Chris