当前位置: 首页 > 面试题库 >

如何使用camelCase将Hibernate实体字段映射到snake_case(下划线)数据库标识符

汝弘深
2023-03-14
问题内容

我在下划线有数据库字段。我在camelcase中有实体字段。我不能改变任何一个。

是否有东西,也许是类级别的注释,我可以使用它默认将实体列名称注释设置为等效于驼峰式?

例如,我有一个这样的实体:

@Entity
public class AuthorisationEntity {

    @Column(name = "non_recoverable")
    private BigDecimal nonRecoverable;

    @Column(name = "supplier_recoverable")
    private BigDecimal supplierRecoverable;

    @Column(name = "refund_amount")
    private BigDecimal refundAmount;

}

我梦dream以求:

@Entity
@DatabaseIsUnderscoreAndThisAnnotationConvertsThemToCamelCaseByDefault
public class AuthorisationEntity {

    private BigDecimal nonRecoverable;

    private BigDecimal supplierRecoverable;

    private BigDecimal refundAmount;

}

问题答案:

您可以使用hibernate的命名策略。这种命名策略类描述了如何为给定的Java名称生成数据库名称。

看到:

命名策略示例

第二个例子

很好的oracle命名策略
-将骆驼转换为下划线约定,等等



 类似资料:
  • 是否有什么东西,也许是一个类级别的注释,我可以用来默认实体列名注释到camelcase等价的? 例如,我有一个这样的实体: 我梦想着:

  • 我试图找到一种方法,在JPQL查询中放置一个计算字段,以映射到Spring Boot中的实体。 我刚才的例子列出了一个静态数字,但我打算将来也将其用于聚合。 我在尝试运行查询时不断收到以下消息: “类[Ljava.lang.Object;不能强制转换为类com.School([Ljava.lang.Object;位于加载器“bootstrap”的模块java.base中;com.School位于加

  • 问题内容: 标题中几乎说了出来。我有一堂课,看起来像这样: 使用Oracle 11g,该列为a ,但序列产生一个a 。数据库显然对此感到满意,但是应用程序需要能够支持可能已插入到应用程序外部此列中的非数字ID。 考虑上面的代码,我得到一个。有什么办法可以做这种映射吗? 使用Hibernate 3.6。 问题答案: 实现一个自定义的IdentifierGenerator类;从博客文章: 像这样注释实

  • 实体类如下: 是否有任何方法可以将实体中的Transstatus列映射到枚举的整数值,即状态代码,例如,如果我有枚举值作为NOT_FOUND实体中的Transstatus值应该是12, 编辑请注意,我有两个枚举状态码的值,状态码字符串,我们想要的只是状态码,我们已经用“Ordinal”尝试过了,它打印枚举的整数值,而不是我示例中的状态码

  • 我有下面的结构,我想用MapStruct映射这个。 下面是mapstruct为toDTO方法生成的实现 下面是mapstruct为toEntity方法生成的实现 我的问题是方法只在文本不为空时设置注释。但是方法不检查空文本或空文本。因此,如果我在DTO中获得,它将创建一个新的comment对象并将文本设置为null。如何避免这一点?有人能解释一下这种行为并建议我正确的做法吗?谢了!

  • 我想将我的firebase数据对象映射到我的POJO。但是,我的firebase对象属性名是snake case,例如;“user_name”。我想在我的pojo上使用camelCase,例如;“用户名” 我找到了这样一个漂亮的答案,但是,我找不到任何关于snake_case到camelCase映射的示例。 我的波乔; 我使用下面的代码行进行映射。“content”匹配没有问题(有或没有@seri