kaleidos / grails-postgresql-extensions

Grails plugin to use postgresql native elements such as arrays, hstores,...
Apache License 2.0
78 stars 62 forks source link

JsonbMapType reporting their type appropriately #67

Closed tmarthal closed 9 years ago

tmarthal commented 9 years ago

Use jsonb with a dbCreate='validate' When using a JsonbMapType class and dbCreate='validate' with the current plugin, the following happens:

nested exception is org.hibernate.HibernateException: Wrong column type in term.stanson_code for column code. Found: jsonb, expected: json

This is because the JsonbMapType is a child class of JsonMapType and the sqlTypes method is not being overridden correctly.

Here is an example:

Domain Class:

    // The key/value json blob
    Map code
    static mapping = {
        code type: JsonbMapType
    }

Using update, this will NOT complain that the 'jsonb' and 'json' types do not match. We can see that the JsonbMapType is reporting the wrong type when the schema is exported:

$> ./grailsw schema-export; cat target/ddl.sql | grep json

Before:

code json not null,

With the code in the pull requesT:

code jsonb not null,
coveralls commented 9 years ago

Coverage Status

Coverage increased (+0.04%) to 73.98% when pulling 0d84d181cc458ef2acf94388efeff0a5a898f637 on tmarthal:master into 1b90d71f9aa254679f6b3b87dfa5133d9004474d on kaleidos:master.

coveralls commented 9 years ago

Coverage Status

Coverage increased (+0.04%) to 73.98% when pulling 0d84d181cc458ef2acf94388efeff0a5a898f637 on tmarthal:master into 1b90d71f9aa254679f6b3b87dfa5133d9004474d on kaleidos:master.

ilopmar commented 9 years ago

Thank you very much for the PR. I'm busy right now but I promise that I'll review all the pending PRs and release a new version during the GR8Conf Hackergarten in two weeks.

ilopmar commented 9 years ago

Merged!

Thank you very much :+1:

ilopmar commented 9 years ago

Included in version 4.5.0