java - 使用 Hibernate 映射 boolean[] PostgreSql 列

标签 java hibernate postgresql arrays types

我在 PostgreSql 数据库中有一个使用 boolean[] 类型定义的列。我希望使用 Hibernate 3.3.x 将其映射到 Java 实体属性。但是,我找不到 Hibernate 乐意映射到的合适 Java 类型。我认为 java.lang.Boolean[] 是显而易见的选择,但 Hibernate 提示道:

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)

我还尝试了以下属性类型,但没有成功:

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

如何映射此列?

最佳答案

您需要实现自己的 UserType。这个article非常方便。我添加此链接是因为原始文章中的链接已损坏。

您可以通过覆盖某些 open source UserTypes 来实现您的客户用户类型。

关于java - 使用 Hibernate 映射 boolean[] PostgreSql 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2803433/

相关文章:

java - 在命令行中运行程序时如何使用冒号?

java - Ehcache 和 Hibernate

java - 如何在java中检索面板组件的值

hibernate - 在 Tomcat 上运行 JPA

hibernate - Grails 和后台任务

SQL 选择 COUNT(*) > 最小数量

java - 间接获取命令行参数

hibernate - JPA/Hibernate 中的动态排序?

SQL 为包含所有给定值的多列创建语句

python - SQLAlchemy:按 JSON 列中的键过滤