Я пытаюсь использовать Circumflex ORM (как указано в StackOverflow - здесь , здесь и здесь ) для подключения к локальная (встроенная) база данных Apache Derby через JDBC из проекта Scala (построена с помощью простого инструмента сборки). Я внимательно следовал инструкциям, но у меня возникли некоторые интересные проблемы.
Вот компоненты драйвера и URL файла cx.properties:
orm.connection.driver=org.apache.derby.jdbc.EmbeddedDriver
orm.connection.url=jdbc:derby:derbyDB
(Они сопоставляются с моделью «создание экземпляра отраженного драйвера и создание соединения» с необработанным JDBC или эквивалентами в persistence.xml - Circumflex использует файл коротких и полезных свойств, потому что, как вы знаете, это не XML и это хорошо.)
Зависимости, которые я добавил в мой файл проекта sbt, которые имеют непосредственное отношение:
"ru.circumflex" % "circumflex-orm" % "1.0",
"org.apache.derby" % "derby" % "10.6.1.0"
Я создал короткую примерную модель, которая определяет упрощенную версию таблицы, которую описывает документация:
import java.sql.DriverManager
import ru.circumflex.orm._
class Country extends Record[Country] {
val code = "code" VARCHAR(2)
val name = "name" TEXT
}
object Country extends Table[Country]
Это, похоже, компилируется нормально, и я могу создать экземпляр объекта Country (используя оболочку Scala 2.8.0 RC5, вызванную с консоли sbt), создать объект в стиле ActiveRecord и затем сохранить его следующим образом:
val c = new Country
c.code := "US"
c.name := "United States of America"
c.save
Согласно документации, следует запустить проверку объекта и затем вставить его в базу данных. Я получаю следующее исключение:
java.sql.SQLSyntaxErrorException: Syntax error: Encountered "public" at line 1, column 13.
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement30...
Я нашел эту ветку , где у кого-то возникла аналогичная проблема с "Обнаруженной" публикой "и Apache Derby, но ответы, похоже, не предлагают полезного способа продвижения вперед.
Есть идеи, что может быть причиной этого?