конфликт выбора с EJB3 - PullRequest
       4

конфликт выбора с EJB3

1 голос
/ 17 сентября 2010

Сегодня у меня новая проблема с JPA / EJB3.У меня есть 2 таблицы User и Group с отображением OneToMany (первая группа - много пользователей)

Когда я использую оператор выбора в EJB, например:

@NamedQuery(name = "Iuser.findAll", query = "SELECT i FROM Iuser i")

конфликт возникает, он не знает group поле я выбираю, где таблица?(group поле в User Таблица groupid [внешний ключ] и group поле в Group Таблица * Group [Первичный ключ])

Как я могу решить эту проблему?

Я знаю, что пользователь user.group оператор кнопки в EJB3 не выполняется, пожалуйста, помогите.

1 Ответ

2 голосов
/ 18 сентября 2010

Моя ставка заключается в том, что сущность IGroup отображается на таблицу Group, которая является зарезервированным ключевым словом и может вызвать проблемы, если ее не экранировать.

Если вы используете провайдера JPA 2.0, вы можете указать провайдеру JPA экранировать имя объекта базы данных, заключив его в двойные кавычки, например:

@Entity
@Table(name="\"GROUP\"")
public class IGroup {
    ...
}

Если вы используете JPA 1.0, стандартного способа не существует, это зависит от поставщика JPA. С Hibernate вам придется использовать обратные галочки:

@Entity
@Table(name="`GROUP`")
public class IGroup {
    ...
}

Или измените имя таблицы для незарезервированного ключевого слова:

@Entity
@Table(name="GROUPS")
public class IGroup {
    ...
}

Имеет ли это смысл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...