1

如果我用 @Type(type = "jsonb") 从

     <dependency>
        <groupId>com.vladmihalcea</groupId>
        <artifactId>hibernate-types-52</artifactId>
     </dependency>
   

该实体被排除在 jOOQ 代码生成过程之外(没有表、记录......)。

是否有不涉及排除注释的解决方案?(https://www.jooq.org/doc/latest/manual/code-generation/custom-data-type-bindings/ ??!)

谢谢

4

1 回答 1

2

如相关github 问题 #10723中所述,这似乎是JPADatabase 当前工作方式的限制(在 jOOQ 3.13、3.14 中)。在逆向工程之前,它使用 Hibernate 在内存 H2 数据库中创建您的模式。

H2 不支持该JSONB数据类型,尽管该JSON类型是受支持的。这意味着您com.vladmihalcea.hibernate.type.json.JsonBinaryType不能与这种功能组合一起使用。你有几个选择:

  • 不要使用JPADatabase,由于上述原因,它始终是限制的来源。如果您计划使用供应商特定的功能,则使用实际的 PostgreSQL 连接来生成 jOOQ 代码会更好。您甚至可以按照功能请求 #6551中的要求或在本示例中显示的那样,在testcontainers托管数据库上运行代码生成。
  • 改用该JSON类型,这似乎有效。当然,这将是一个遗憾,因为 PostgreSQL 提供了JSONB比 with更好的性能JSON,但在您的情况下它可能是一个可行的解决方法。
于 2020-10-09T09:23:32.287 回答