0

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?

teabot
  • 15,358
  • 11
  • 64
  • 79
  • 1
    possible duplicate of [mapping a postgres array with hibernate](http://stackoverflow.com/questions/1647583/mapping-a-postgres-array-with-hibernate) – Pascal Thivent May 10 '10 at 18:07
  • I agree that this is a duplicate - thank you for finding it @Pascal. The link on the original is broken however and this question has since acquired a good answer from @Kartik so I am uncertain whether I should close it(?) – teabot May 11 '10 at 07:50
  • Ideally, I'd say that Kartik should add his answer to the previous question and that this one should be closed. But I'm no one to decide this alone so, just let the community decide. – Pascal Thivent May 11 '10 at 10:16

1 Answers1

1

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
  • 2,541
  • 2
  • 37
  • 59