Dan
Dan

Reputation: 237

PostgreSQL to Java Data Types (Grails)

I have the following (Grails) domain object:

class Country {

Integer id
char country_abbr
String country_name

static mapping = {
    version false
    id name: 'id'
    table 'country'
    id generator:'identity', column:'id'
}

static constraints = {
}}

The 'country_abbr' field within the 'country table' has type: character(2). However, whenever I am setting the domain object's data type (for 'country_abbr') to String, initialization is failing with the following exception

 org.hibernate.HibernateException: Wrong column type in mydb.country for column country_abbr. Found: bpchar, expected: varchar(255)

On the other hand, leaving this type as a Java char would only retrieve the first character. Any ideas how may I map to this type? Also, what is bpchar exactly?

Thanks

Upvotes: 6

Views: 4561

Answers (1)

user800014
user800014

Reputation:

Just to make this question answered. The solution is to change the country_abbr mapping:

country_abbr columnDefinition: 'char'

Reference here.

Upvotes: 3

Related Questions