当前位置: 首页 > 知识库问答 >
问题:

Hibernate 5-命名策略-显式名称-忽略大写字母

司空海荣
2023-03-14

我尝试设置我的JPA映射。由于某些原因,我必须有相同的java变量/表列名(包括大写字母),但我不能设置Hibernate。我尝试了明确的列名:

@Type(type="java.lang.Integer")
@Column(name = "nextInvoiceNr")
public int nextInvoiceNr;

对于隐式映射:

@Type(type="java.lang.Integer")
public int nextInvoiceNr;

这两种方法都创建不带大写字母的列名——“nextinvoicenr”。

我还试图改变Hibernate配置添加:

lConf.setProperty("hibernate.implicit_naming_strategy", "org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl");
lConf.setProperty("hibernate.physical_naming_strategy", "org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl");

但没有成功

共有1个答案

黄修永
2023-03-14

我刚刚回答了一个可能与此非常类似的问题,它涉及到在Hibernate的列名中使用连字符所导致的错误。此处可能适用的解决方案是在引号中转义列名:

@Type(type="java.lang.Integer")
@Column(name = "\"nextInvoiceNr\"")
public int nextInvoiceNr;

如果您使用的是JPA 1.0,那么您可以在反勾中转义列名:

@Column(name = "`nextInvoiceNr`")

当然,替代方法是不依赖区分大小写的列名。

 类似资料:
  • 问题内容: 如标题中所述,我想忽略文档中元素名称的大小写。 我尝试使用Blaise Doughan发布的代码: 这实际上是行不通的。 对于此XML: 问题答案: 您可以将所有属性映射到小写的节点名称,然后包装XMLStreamReader以对其返回的所有属性/元素名称调用toLowerCase()。然后从该XMLStreamReader解组。 我最近为此问题添加了对EclipseLink JAXB

  • 问题内容: 我对hibernate(5.1版)的命名策略有些困惑-即它更改了我的表名,我想避免这种情况。另外- 根据intelij似乎已弃用,但我找不到正确配置它的(另一种)方法。 我在application.properties中具有以下配置: 如前所述,第一个被标记为已练习。 现在我有一个实体: 表格名称是类似usaUploadTable 中的名称。 现在,当我运行我的应用程序时,我得到 表’

  • 我对hibernates(5.1版)的命名策略有点困惑——也就是说,它改变了我的表名,我希望避免这种情况。还有-

  • underscored 参数 Sequelize 为模型提供了 underscored 参数. 设为 true 时,此参数会将所有属性的 field 参数设置为其名称的 snake_case 版本. 这也适用于由关联和其他自动生成的字段自动生成的外键. 例: const User = sequelize.define('task', { username: Sequelize.STRING },

  • Kotlin+Spring Boot Cassandra应用程序忽略了注释。下面的注释 正在映射到而不是。由于列在表中不存在,因此会导致运行时错误。

  • 忽略域名 您可能要从mitmproxy的拦截机制中免除部分流量的主要原因有两个: 证书固定:使用证书固定保护某些流量, 而mitmproxy的拦截会导致错误。例如,如果mitmproxy处于活动状态,则Twitter应用程序,Windows Update或Apple App Store无法工作。 便利性:您实际上并不关心某些流量,而只是希望它们消失。请注意,在这里,mitmproxy的Limit选