如何使用实体 bean 类名和属性名生成类和属性?
Posted
技术标签:
【中文标题】如何使用实体 bean 类名和属性名生成类和属性?【英文标题】:how to generate classes and properties using Entity bean class name and property names? 【发布时间】:2021-10-25 01:20:59 【问题描述】:我使用 jooq-codegen-maven 插件和 jooq meta hibernate 扩展成功地生成了 jOOQ 类。
为表/列生成的类和方法的名称使用实际的数据库表和列名称。
生成可以在@Entity
类simple-name 和@Column
实例变量名称上使用而不是@Entity(name=TABLE)
和@Column(name=COLUMN)
吗?
对我来说,使用 jOOQ 创建查询时,使用与 JPA 类相同的名称会更直观。
谢谢
【问题讨论】:
【参考方案1】:jOOQ 并不真正“了解”您的实体。在JPADatabase
的幕后,模拟了在实际数据库中为您的实体安装生成的 SQL(目前,从 jOOQ 3.15 开始,在 H2 中,但将来可能会改变)。从那时起,jOOQ 将继续连接到一个 实际 数据库以进行逆向工程,而不知道这个模拟数据库源自 JPA 实体。
因此,无法“记住”您为这些表和列指定的替代名称。
但是,您可能知道并有一些命名约定,您可以将其编码为 generator strategy。
【讨论】:
卢卡斯,感谢您的回复。是的,我明白它是如何工作的。我在想 codegen 会收获实体(以同样的方式 Hibernate 在数据库中创建表)创建从表到 bean 类名和列到属性名的反向映射。然后生成器策略可以使用该映射来获取 Java 标识符。再次感谢 @AlejandrAbdelnur 或许可以这样做...介意创建功能请求吗? github.com/jOOQ/jOOQ/issues/new/choose 卢卡斯,创建github.com/jOOQ/jOOQ/issues/12368。谢谢以上是关于如何使用实体 bean 类名和属性名生成类和属性?的主要内容,如果未能解决你的问题,请参考以下文章