views:

286

answers:

2

I have a column in a PostgreSql database that is defined with type boolean[]. I wish to map this to a Java entity property using Hibernate 3.3.x. However, I cannot find a suitable Java type that Hibernate is happy to map to. I thought that the java.lang.Boolean[] would be the obvious choice, but Hibernate complains:

Caused by: org.hibernate.HibernateException:
    Wrong column type in schema.table for column mycolumn. Found: _bool, expected: bytea
    at org.hibernate.mapping.Table.validateColumns(Table.java:284)
    at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1130)

I have also tried the following property types without success:

  • java.lang.String
  • java.lang.boolean[]
  • java.lang.Byte[]

How can I map this column?

+1  A: 

This might help.

leonbloy
+1  A: 

You need to implement your own UserType. This article is very handy. I am including this link because the link in the original article is broken.

You can implement your customer user types by overriding some open source UserTypes

Kartik
Thanks @Kartik - the links provided enabled me to implement a solution.
teabot