IntelliJ слишком умен для меня - PullRequest
1 голос
/ 01 марта 2011

Я бы хотел реализовать простые именованные запросы jpa с IntelliJ IDEA, используя окончательные строки для определенных параметров.Но инспектор не понравился и сказал мне «неожиданный знак» на «:» в конце первой части запроса.Как я могу отменить проверку или как убедить инспекцию принять это.

@NamedQueries({
  @NamedQuery(name = TaxonEntity.selectBytaxonId,
  query = "SELECT t FROM TaxonEntity t WHERE t.taxonId  =:" + TaxonEntity.TAXON_ID)
})
@Entity
public class TaxonEntity {

static public final String selectBytaxonId = "TaxonEntity.selectBytaxonId";
static public final String TAXON_ID = "taxonId";
....
}

Заранее спасибо,

Medrod

ОБНОВЛЕНИЕ: IntelliJ IDEA приметзапрос, если после константы будет добавлена ​​строка.

@NamedQueries({
@NamedQuery(name = TaxonEntity.selectBytaxonId,
query = "SELECT t FROM TaxonEntity t WHERE t.taxonId =:"+TaxonEntity.TAXON_ID+"")
})

Ответы [ 3 ]

2 голосов
/ 01 марта 2011

Попробуйте вместо этого

@NamedQueries({
  @NamedQuery(name = TaxonEntity.selectBytaxonId,
  query = "SELECT t FROM TaxonEntity t WHERE t.taxonId = " + TaxonEntity.TAXON_ID)
})
@Entity
public class TaxonEntity {
    static public final String selectBytaxonId = ":TaxonEntity.selectBytaxonId";

В качестве альтернативы вы можете просто сделать весь запрос постоянным. Это было бы немного более читабельным.

1 голос
/ 01 марта 2011

В качестве обходного пути создайте вторую константу, включающую :.

0 голосов
/ 01 марта 2011

Какую базу данных SQL вы используете?

Насколько я помню, в SQL оператор равенства равен =, а не =:.

Инспектор IDEA, скорее всего, жалуется не на инспектора Java, а на инспектора SQL. ИДЕЯ довольно умна и знает, что к чему.

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