Hi.
I can add expenses fine when my db is h2 or postgresql, but get an
error (Unknown column 'Expense.dateOf' in 'where clause') when using
mysql. To get mysql working I added this to my pom.xml:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.5</version>
</dependency>
and this to my Boot.scala:
Class.forName("com.mysql.jdbc.Driver");
val dm = DriverManager.getConnection("jdbc:mysql://localhost/
pocketchangeapp","user","pass")
Everything works fine except adding new expenses, I get "Unknown
column 'Expense.dateOf' in 'where clause'" even if there is a dateof
column of type datetime in the expense table. This is the complete
stack trace:
Exception occured while processing /
Message: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown
column 'Expense.dateOf' in 'where clause'
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2941)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1623)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1715)
com.mysql.jdbc.Connection.execSQL(Connection.java:3249)
com.mysql.jdbc.PreparedStatement.executeInternal
(PreparedStatement.java:1268)
com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:
1403)
net.liftweb.mapper.DB$$anonfun$exec$3.apply(DB.scala:267)
net.liftweb.mapper.DB$$anonfun$exec$3.apply(DB.scala:266)
net.liftweb.util.TimeHelpers$class.calcTime(TimeHelpers.scala:241)
net.liftweb.util.Helpers$.calcTime(Helpers.scala:29)
net.liftweb.mapper.DB$.exec(DB.scala:266)
net.liftweb.mapper.MetaMapper$$anonfun$findMapFieldDb$1$$anonfun$apply
$9.apply(MetaMapper.scala:309)
net.liftweb.mapper.MetaMapper$$anonfun$findMapFieldDb$1$$anonfun$apply
$9.apply(MetaMapper.scala:307)
net.liftweb.mapper.DB$$anonfun$prepareStatement$1.apply(DB.scala:281)
net.liftweb.mapper.DB$$anonfun$prepareStatement$1.apply(DB.scala:277)
net.liftweb.util.TimeHelpers$class.calcTime(TimeHelpers.scala:241)
net.liftweb.util.Helpers$.calcTime(Helpers.scala:29)
net.liftweb.mapper.DB$.prepareStatement(DB.scala:277)
net.liftweb.mapper.MetaMapper$$anonfun$findMapFieldDb$1.apply
(MetaMapper.scala:306)
net.liftweb.mapper.MetaMapper$$anonfun$findMapFieldDb$1.apply
(MetaMapper.scala:298)
net.liftweb.mapper.DB$.use(DB.scala:305)
net.liftweb.mapper.MetaMapper$class.findMapFieldDb(MetaMapper.scala:
297)
com.pocketchangeapp.model.Expense$.findMapFieldDb(Expense.scala:162)
net.liftweb.mapper.MetaMapper$class.findMapDb(MetaMapper.scala:293)
com.pocketchangeapp.model.Expense$.findMapDb(Expense.scala:162)
net.liftweb.mapper.MetaMapper$class.findAll(MetaMapper.scala:259)
com.pocketchangeapp.model.Expense$.findAll(Expense.scala:162)
com.pocketchangeapp.model.Expense$.getByAcct(Expense.scala:191)
com.pocketchangeapp.model.Expense$.getLastExpenseData(Expense.scala:
199)
com.pocketchangeapp.snippet.AddEntry.doTagsAndSubmit$1(AddEntry.scala:
46)
com.pocketchangeapp.snippet.AddEntry$$anonfun$add$7.apply
(AddEntry.scala:88)
com.pocketchangeapp.snippet.AddEntry$$anonfun$add$7.apply
(AddEntry.scala:88)
net.liftweb.http.S$SFuncHolder$$anonfun$apply$45.apply(S.scala:911)
net.liftweb.http.S$SFuncHolder$$anonfun$apply$45.apply(S.scala:911)
scala.List.map(List.scala:805)
net.liftweb.http.S$SFuncHolder.apply(S.scala:911)
net.liftweb.http.LiftSession$$anonfun$buildFunc$1$2.apply
(LiftSession.scala:307)
net.liftweb.http.LiftSession$$anonfun$5$$anonfun$apply$19.apply
(LiftSession.scala:322)
net.liftweb.http.LiftSession$$anonfun$5$$anonfun$apply$19.apply
(LiftSession.scala:322)
scala.List.map(List.scala:805)
net.liftweb.http.LiftSession$$anonfun$5.apply(LiftSession.scala:322)
net.liftweb.http.LiftSession$$anonfun$5.apply(LiftSession.scala:311)
scala.List.flatMap(List.scala:1125)
net.liftweb.http.LiftSession.runParams(LiftSession.scala:311)
net.liftweb.http.LiftSession.processRequest(LiftSession.scala:449)
net.liftweb.http.LiftServlet.net$liftweb$http$LiftServlet$
$dispatchStatefulRequest(LiftServlet.scala:244)
net.liftweb.http.LiftServlet$$anonfun$2.apply(LiftServlet.scala:176)
net.liftweb.http.LiftServlet$$anonfun$2.apply(LiftServlet.scala:176)
net.liftweb.http.S$.net$liftweb$http$S$$wrapQuery(S.scala:398)
net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit$1$
$anonfun$apply$16.apply(S.scala:453)
net.liftweb.http.S$.net$liftweb$http$S$$doAround(S.scala:372)
net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_nest2InnerInit
$1.apply(S.scala:451)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.S$.net$liftweb$http$S$$_nest2InnerInit(S.scala:450)
net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun
$apply$19$$anonfun$apply$20$$anonfun$apply$21$$anonfun$apply$22$
$anonfun$apply$23$$anonfun$apply$24.apply(S.scala:471)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun
$apply$19$$anonfun$apply$20$$anonfun$apply$21$$anonfun$apply$22$
$anonfun$apply$23.apply(S.scala:470)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun
$apply$19$$anonfun$apply$20$$anonfun$apply$21$$anonfun$apply$22.apply
(S.scala:469)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun
$apply$19$$anonfun$apply$20$$anonfun$apply$21.apply(S.scala:468)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun
$apply$19$$anonfun$apply$20.apply(S.scala:467)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1$$anonfun
$apply$19.apply(S.scala:466)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.S$$anonfun$net$liftweb$http$S$$_innerInit$1.apply
(S.scala:465)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.S$.net$liftweb$http$S$$_innerInit(S.scala:464)
net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$27$$anonfun$apply
$28$$anonfun$apply$29$$anonfun$apply$30.apply(S.scala:495)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$27$$anonfun$apply
$28$$anonfun$apply$29.apply(S.scala:494)
net.liftweb.http.RequestVarHandler$.apply(Vars.scala:191)
net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$27$$anonfun$apply
$28.apply(S.scala:493)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.S$$anonfun$_init$1$$anonfun$apply$27.apply(S.scala:
492)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.S$$anonfun$_init$1.apply(S.scala:491)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.S$._init(S.scala:490)
net.liftweb.http.S$.init(S.scala:334)
net.liftweb.http.LiftServlet.doService(LiftServlet.scala:175)
net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply
(LiftServlet.scala:104)
net.liftweb.http.LiftServlet$$anonfun$doIt$1$1.apply
(LiftServlet.scala:104)
net.liftweb.util.TimeHelpers$class.calcTime(TimeHelpers.scala:241)
net.liftweb.util.Helpers$.calcTime(Helpers.scala:29)
net.liftweb.util.TimeHelpers$class.logTime(TimeHelpers.scala:250)
net.liftweb.util.Helpers$.logTime(Helpers.scala:29)
net.liftweb.http.LiftServlet.doIt$1(LiftServlet.scala:103)
net.liftweb.http.LiftServlet.service(LiftServlet.scala:112)
net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1$$anonfun$apply
$22.apply(LiftServlet.scala:525)
net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1$$anonfun$apply
$22.apply(LiftServlet.scala:525)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.URLRewriter$.doWith(Req.scala:390)
net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1.apply
(LiftServlet.scala:524)
net.liftweb.http.LiftFilterTrait$$anonfun$doFilter$1.apply
(LiftServlet.scala:518)
net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun$apply$4$
$anonfun$apply$5$$anonfun$apply$6.apply(Vars.scala:197)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun$apply$4$
$anonfun$apply$5.apply(Vars.scala:196)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.RequestVarHandler$$anonfun$apply$3$$anonfun$apply
$4.apply(Vars.scala:195)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.RequestVarHandler$$anonfun$apply$3.apply(Vars.scala:
194)
net.liftweb.util.ThreadGlobal.doWith(ThreadGlobal.scala:65)
net.liftweb.http.RequestVarHandler$.apply(Vars.scala:193)
net.liftweb.http.LiftFilterTrait$class.doFilter(LiftServlet.scala:
517)
net.liftweb.http.LiftFilter.doFilter(LiftServlet.scala:536)
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
(ServletHandler.java:1148)
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
387)
org.mortbay.jetty.security.SecurityHandler.handle
(SecurityHandler.java:216)
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
181)
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
765)
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
org.mortbay.jetty.handler.ContextHandlerCollection.handle
(ContextHandlerCollection.java:230)
org.mortbay.jetty.handler.HandlerCollection.handle
(HandlerCollection.java:114)
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
152)
org.mortbay.jetty.Server.handle(Server.java:324)
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
535)
org.mortbay.jetty.HttpConnection$RequestHandler.content
(HttpConnection.java:880)
org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
org.mortbay.io.nio.SelectChannelEndPoint.run
(SelectChannelEndPoint.java:409)
org.mortbay.thread.QueuedThreadPool$PoolThread.run
(QueuedThreadPool.java:520)