2013-12-03 8 views
1
  • IntelliJ 13 Community Edition
  • Play Framework 2.2
  • Scala 2.10.2

Я ввожу anorm._ и используя SQL в моем объекте. Объект запускается следующим образом:Импорт anorm.SQL в IntelliJ IDEA 13

package controllers 

import play.api.mvc._ 
import play.api.db.DB 
import play.api.Play.current 
import anorm._ 

object Walks extends Controller { 

val futureWalksSql = SQL("SELECT * FROM walks where evt_date > now()") 

IntelliJ не может разрешить символ SQL. Если я ctrl + Enter, после anorm. не существует опции SQL, хотя есть .Sql-признак, объект и класс.

Когда я запускаю проект воспроизведения, все работает отлично, без ошибок компиляции, поэтому Scala синтаксически корректна, но IntelliJ не выбирает это. Я создал файлы идей, вызвав idea из игровой консоли, и я также попробовал idea with-sources=yes.

Как получить IntelliJ Community Editon, чтобы получить anorm.SQL? Что особенного в этом объекте? Я все еще изучаю Scala, и поэтому это может быть проблема Scala.

ответ

1

SQL - это метод, определенный в объекте пакета anorm. Поэтому, когда вы import anorm._, вы импортируете весь пакет вместе с объектом пакета. На самом деле я понятия не имею, почему Idea не подбирает это. Но если вы посмотрите на источники объектов пакета, вы увидите, что метод SQL является всего лишь оберткой на anorm.Sql.sql(inSql: String).

В качестве временного решения можно попробовать импортировать anorm.Sql._ и использовать sql("select 1") вместо SQL("select 1")