title: Grails, casting error when retrieving a record
body: <p>I created a new domain and created the table manually.
  The table should only contain one record so the only record id will be (1).</p>
  
  <p>The record should be created automatically if not exist but I always get a casting error when trying to retrieve the record. It doesn't matter if I create the record manually first - the get, find or whatever always return in error.</p>
  
  <p>The code that fails:</p>
  
  <pre><code>    def int id = 1
      def WtStatus wts = WtStatus.get(id)?:new WtStatus(id:1).save(failOnError:true)
  </code></pre>
  
  <p>The domain:</p>
  
  <pre><code>class WtStatus {
    def prodBufferService
    int     weekUpdated
    Date    dateUpdated
  
    def beforeInsert() {
        dateUpdated = new Date()
        weekUpdated = prodBufferService.getCurrentYearWeek()
    }
    def beforeUpdate() {
        dateUpdated = new Date()
    }
    static constraints = {
        dateUpdated     nullable:true
        weekUpdated     nullable:true
    }
  
    static mapping = {
        table   'wt_status'
        version true
        id              column: "id",              type:        'int'
    }
  </code></pre>
  
  <p>}</p>
  
  <p>The create-script for the table:</p>
  
  <pre><code>CREATE TABLE [dbo].[wt_status](
      [id] [int] NOT NULL,
      [version] [bigint] NOT NULL,
      [date_updated] [datetime2](7) NULL,
      [week_updated] [int] NULL,
   CONSTRAINT [PK__wt_statu__3213E83F77809FC6] PRIMARY KEY CLUSTERED 
  (
      [id] ASC
  )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
  ) ON [PRIMARY]
  </code></pre>
  
  <p>STACKTRACE:</p>
  
  <pre><code>java.lang.Long cannot be cast to java.lang.Integer. Stacktrace follows:
  
  java.lang.reflect.InvocationTargetException: null
      at org.grails.core.DefaultGrailsControllerClass$ReflectionInvoker.invoke(DefaultGrailsControllerClass.java:210)
      at org.grails.core.DefaultGrailsControllerClass.invoke(DefaultGrailsControllerClass.java:187)
      at org.grails.web.mapping.mvc.UrlMappingsInfoHandlerAdapter.handle(UrlMappingsInfoHandlerAdapter.groovy:90)
      at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
      at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
      at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
      at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
      at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
      at org.springframework.boot.web.filter.ApplicationContextHeaderFilter.doFilterInternal(ApplicationContextHeaderFilter.java:55)
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
      at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
      at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
      at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
      at grails.plugin.springsecurity.web.UpdateRequestContextHolderExceptionTranslationFilter.doFilter(UpdateRequestContextHolderExceptionTranslationFilter.groovy:64)
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
      at grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter(GrailsAnonymousAuthenticationFilter.groovy:53)
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
      at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:158)
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
      at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
      at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
      at grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter(MutableLogoutFilter.groovy:62)
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
      at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
      at grails.plugin.springsecurity.web.SecurityRequestHolderFilter.doFilter(SecurityRequestHolderFilter.groovy:58)
      at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
      at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
      at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
      at org.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:77)
      at org.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:67)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at java.lang.Thread.run(Thread.java:745)
  Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
      at org.hibernate.type.descriptor.java.IntegerTypeDescriptor.unwrap(IntegerTypeDescriptor.java:19)
      at org.hibernate.type.descriptor.sql.IntegerTypeDescriptor$1.doBind(IntegerTypeDescriptor.java:46)
      at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:74)
      at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:253)
      at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:248)
      at org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:2051)
      at org.hibernate.loader.Loader.bindParameterValues(Loader.java:2020)
      at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1950)
      at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1903)
      at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1881)
      at org.hibernate.loader.Loader.doQuery(Loader.java:925)
      at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:342)
      at org.hibernate.loader.Loader.doList(Loader.java:2622)
      at org.hibernate.loader.Loader.doList(Loader.java:2605)
      at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2434)
      at org.hibernate.loader.Loader.list(Loader.java:2429)
      at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:109)
      at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1787)
      at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:363)
      at org.hibernate.internal.CriteriaImpl.uniqueResult(CriteriaImpl.java:385)
      at org.grails.orm.hibernate.AbstractHibernateGormStaticApi$_get_closure1.doCall(AbstractHibernateGormStaticApi.groovy:79)
      at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:243)
      at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:187)
      at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:110)
      at org.grails.orm.hibernate.AbstractHibernateGormStaticApi.get(AbstractHibernateGormStaticApi.groovy:75)
      at org.grails.datastore.gorm.GormEntity$Trait$Helper.get(GormEntity.groovy:518)
      at com.buffer.OrdersAndStoreController$$EQIjps9c.list(OrdersAndStoreController.groovy:29)
      ... 37 common frames omitted
  </code></pre>