Неправильная генерация сценариев Oracle SQL из EJB QL

У меня есть этот запрос

SELECT acc.Id 
  FROM Auth as auth, AccId as acc 
 WHERE acc.ownId.Id = auth.Id 
   AND acc.disabled = 0

Который, кажется, был сгенерирован правильно:

org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: ORA-00904: "T1"."A_ID"."T1"."A_ID": invalid identifier

очевидно acc.ownId.Id не был сгенерирован должным образом.

Как это могло случиться?

1 ответ

Решение

Пожалуйста, покажите определение вашей таблицы, это упрощает процесс. Предоставьте информацию о вашей таблице, и мы можем взглянуть на предложение создания таблицы.

acc.ownId.Id неверный идентификатор для столбца, если вы не ставите "" вокруг него!

Проверьте правильность столбца.

может быть

acc.ownId только? или же acc."ownId.Id"?

ЕСЛИ имя вашей колонки было создано как:

Create table AccId (
...
"ownId.Id" int,
...
);

Это работает, но я бы не рекомендовал этот вид именования.

Тогда, конечно, вам нужно будет обернуть его в "", если вы используете его в своем запросе.

т.е.

ГДЕ согласно. "OwnId.Id" = auth.Id

Другие вопросы по тегам