gpt4 book ai didi

hibernate - jOOQ 无法映射 PostgreSQL 列以使 JPA 满意

转载 作者:行者123 更新时间:2023-11-29 13:25:11 27 4
gpt4 key购买 nike

在 Spring Boot 应用程序(v. 1.3.2)中,我尝试使用 jOOQ 生成所有映射数据库表的 POJO,以便它们也被注释为与 JPA 一起使用。数据库是 PostgreSQL。

问题在于 jOOQ 将某些类型(如 jsonb)映射为 Object。似乎 Hibernate 不喜欢这样。我得到一个异常(exception),如:

Caused by: org.hibernate.MappingException: property mapping has wrong number of columns: model.tables.pojos.Product type: object

有趣的是,如果我在生成的文件中将 Object 替换为 String,那么一切正常。显然这不是解决方案,否则我不明白为什么我应该使用工具来自动生成带注释的实体。

知道如何解决这个问题吗? jOOQ 是否有可能无法以更严肃的方式映射这些值(例如,jsonjsonbean13 等)。我想即使是 String 也会更好。

最佳答案

使用 jOOQ 支持特定于供应商的数据类型

使用 jOOQ 添加对绑定(bind)供应商特定数据类型的支持的标准方法是提供转换器或数据类型绑定(bind):

数据类型绑定(bind)页面甚至包含如何使用 PostgreSQL 的 JSON 数据类型执行此操作的示例。

使用 jOOQ 和 JPA

jOOQ 没有完全实现 JPA。如果您想将 JPA 注释的 POJO 用作真正的实体,您最好通过 Hibernate 生成它们(与 jOOQ 不同,它还注释 @OneToMany 和其他有用的属性)。

关于hibernate - jOOQ 无法映射 PostgreSQL 列以使 JPA 满意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35142951/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com