Hibernate Mapping генерирует ошибку в Grails для столбца с псевдонимом "h002-01" - PullRequest
1 голос
/ 14 января 2011

Я пытаюсь реализовать отображение в Grails поверх Hibernate для таблицы, которая имеет специальные символы в именах столбцов.то есть "-"

Отображение в классе домена

//properties
    Boolean  h00_02

//mapping
    static mapping = {
     h00_02 column : 'h00-02'
     }

Трассировка стека исключений:

   2011-01-14 09:47:01,492 [http-8080-2] ERROR util.JDBCExceptionReporter  - Unknown column 'this_.h00' in 'field list'
2011-01-14 09:47:01,532 [http-8080-2] ERROR errors.GrailsExceptionResolver  - Exception occurred when processing request: [GET] /Dailyreport/dates/list
Stacktrace follows:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'this_.h00' in 'field list'
 at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
 at com.mysql.jdbc.Util.getInstance(Util.java:381)
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
 at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
 at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
 at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885)
 at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
 at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96)
 at dailyreport.DatesController$_closure2.doCall(DatesController.groovy:13)
 at dailyreport.DatesController$_closure2.doCall(DatesController.groovy)
 at java.lang.Thread.run(Thread.java:662)

Запрос : есть ли у вас какие-либо идеи, как я могу решить вышеупомянутую проблему.Он пытался избежать этого, но это тоже не сработало.Я должен использовать вышеупомянутое имя столбца, потому что я пытаюсь разработать UI на существующей базе данных.

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

1 Ответ

3 голосов
/ 14 января 2011

Это работает?

static mapping = {
  h00_02 column : '`h00-02`'
}

(Или это то, что вы имеете в виду, когда говорите «Я пытался сбежать от этого»?)

...