grails-audit-logging-plugin icon indicating copy to clipboard operation
grails-audit-logging-plugin copied to clipboard

Column 'date_created' cannot be null

Open abrahaj opened this issue 5 years ago • 3 comments

Seems there is an issue with logging due to a "Column 'date_created' cannot be null" and MySQL

Using: grailsVersion=3.3.9 gormVersion=6.1.11.RELEASE audit-logging:3.0.4 name: 'mysql-connector-java', version: '5.1.47'

    into
        audit_log
        (persisted_object_id, property_name, date_created, last_updated, event_name, actor, new_value, class_name, old_value, persisted_object_version, uri) 
    values
        (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: 
    insert 
    into
        audit_log
        (persisted_object_id, property_name, date_created, last_updated, event_name, actor, new_value, class_name, old_value, persisted_object_version, uri) 
    values
        (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
...
2019-08-16 10:54:50.502 TRACE --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder      : binding parameter [3] as [TIMESTAMP] - [null]
2019-08-16 10:54:50.502 TRACE --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder      : binding parameter [3] as [TIMESTAMP] - [null]
2019-08-16 10:54:50.502 TRACE --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder      : binding parameter [4] as [TIMESTAMP] - [null]
2019-08-16 10:54:50.502 TRACE --- [nio-8080-exec-3] o.h.type.descriptor.sql.BasicBinder      : binding parameter [4] as [TIMESTAMP] - [null]
...
2019-08-16 10:54:50.523 ERROR --- [nio-8080-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper   : Column 'date_created' cannot be null
2019-08-16 10:54:50.537 ERROR --- [nio-8080-exec-3] g.p.orm.auditable.AuditLogListener       : Error creating audit log for event PostInsert and domain anyDomain : 3```

abrahaj avatar Aug 16 '19 09:08 abrahaj

Same for newer versions of mysql-connector (tested with mysql-connector-java', version: '8.0.17')

abrahaj avatar Aug 16 '19 09:08 abrahaj

How does your AuditTrail class look like? Autotimestamp is normally on. There is a fallback in the listener to create the actual dateCreated. See https://github.com/robertoschwald/grails-audit-logging-plugin/blob/master/plugin/src/main/groovy/grails/plugins/orm/auditable/AuditLogListener.groovy#L192

robertoschwald avatar Oct 10 '19 08:10 robertoschwald

I have had the same problem with the default AuditTrail class created by grails audit-quickstart.

After removing autoTimestamp false from mapping closure, everything works fine.

davidsonnabend avatar Dec 15 '20 13:12 davidsonnabend