Spring Boot 的 Hibernate 字段命名问题(命名策略)

2023-11-27

请注意,此代码确实适用于普通 Spring,但不适用于 Spring Boot(v1.3.3),我是否缺少某些内容,因为这是从有效的 Spring 应用程序导入的。下面的代码来自spring boot应用程序

@Entity
@Table(name="project")
public class Project implements Serializable{

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id")
    private int id;

    @Column(name="teamId")
    private int teamId;

    //private String Rentabiliteit;

    @Column
    //@Index(name="IProject_status",columnNames="Status")
    private String status;

    @Column
    //@Index(name="IProject_naam",columnNames="Naam")
    private String naam;
    //public Prototype m_Prototype;
    //public Team m_Team;

}

SQL

CREATE TABLE IF NOT EXISTS `project` (
`id` int(11) NOT NULL,
`teamId` int(11) DEFAULT NULL,
`status` varchar(255) DEFAULT NULL,
`naam` varchar(255) DEFAULT NULL
 ) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=latin1;

ERROR

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:           
 Unknown column 'project0_.team_id' in 'field list'

编辑:Application.yml

spring:

mvc:
  view:
    prefix: /WEB-INF/jsp/
    suffix: .jsp

datasource:
    url: jdbc:mysql://localhost:3306/oxyplast
    username: oxyplastuser
    password: oxyplastuserpw

jpa:
  properties:
    hibernate:
      current_session_context_class: org.springframework.orm.hibernate4.SpringSessionContext 
      namingStrategy: org.hibernate.cfg.DefaultNamingStrategy

自 Spring-Boot 1.4 起

从1.4开始,因为切换到Hibernate 5,命名策略更新为SpringPhysicalNamingStrategy which 应该非常接近至 1.3 默认值。

也可以看看:

  • Spring的命名策略

以前的版本

Spring Boot 提供了ImprovedNamingStrategy作为默认命名策略,这使得 Hibernate 搜索team_id列(从int teamId场地)。由于您的表中不存在此列,这就是错误的原因。来自 Hibernate 文档:

改进的命名策略,更喜欢嵌入下划线而不是混合大小写名称

你有两个选择:

  1. 明确提供列名称 as @Column(name="teamId")。曾经有一个bug在早期的 Boot 版本中,现在不再有此功能。

  2. 改变命名策略在 Spring Boot 属性中并告诉它使用EJB3NamingStrategy,它不会将camelCase转换为snake_case,而是保持原样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot 的 Hibernate 字段命名问题(命名策略) 的相关文章

随机推荐

  • 在哪里可以找到 Windows API 常量列表

    每次我与 user32 dll 等 dll 交互时 我都需要 MF REMOVE 等常量 是否有所有这些常量的概述或常量所有这些常量的 C 库 您将在 win32 API 的 C 标头中找到所有常量 获取此信息的低技术方法是简单地在 Vis
  • 为什么 `lein uberjar` 计算用 `def` 定义的变量?

    我试图在创建时理解 Lieningen 行为uberjar 以下是重现该行为的最小示例 ns my stuff core gen class def some var throw Exception boom defn main args
  • 如何避免 selenium webdriver 的套接字超时?

    我有一个复杂的 python selenium 测试套件来测试非公共网页 在该设置中 我需要获取网络驱动程序 如下所示 self driver webdriver Firefox firefox profile profile log pa
  • Final 类中的 Powermock 静态 Final 方法

    我正在编写的测试用例 public class AClassUnderTest This test class has a method call public Long methodUnderTest Uses the FinalUtil
  • 水晶报表打印空白页

    我有一个水晶报告 它正在打印空白页并打印报告 但只是带有这个附加页 完成我的研究 勾选 取消勾选并将正确的公式添加到 新页面之后 选项中 而不是最后一个记录公式等 但它仍然打印空白页 这是我的部分专家详细信息 报告标题 勾选 自由格式 灰色
  • 如何以编程方式登录 WordPress?

    我需要以编程方式在 WordPress 管理面板中执行一些操作 但无法管理如何使用 C 和 HttpWebRequest 登录 WordPress 这是我所做的 private void button1 Click object sende
  • PHP 中的多重继承

    我正在寻找一种好的 干净的方法来解决 PHP5 仍然不支持多重继承的事实 这是类层次结构 Message 短信 邀请短信 邮件留言 邀请邮件留言 两种类型的邀请 课程有很多共同点 我希望有一个共同的父类 Invitation 他们都可以继承
  • 如何通过NodeJS调用elasticsearch api?

    我的任务是对弹性搜索 api 进行 POST api 调用 https search test search fqa4l6ubylznt7is4d5yxlmbxy us west 2 es amazonaws com klove ddb r
  • python目录路径中的空格

    我是 Python 编码新手 但我遇到了一些谷歌搜索也无法帮助我解决的问题 我正在尝试编写一个简单的目录列表工具 但我似乎无法处理 OSX 中目录名称中的空格 我的代码如下 def listdir nohidden path import
  • 与 p:dialog 相比,PrimeFaces 对话框框架会破坏视图范围吗?

    我正在使用 PrimeFaces 5 我想在按下按钮时打开一个对话框
  • 通过 exec 将变量传递给 PhantomJS

    我正在开始使用 Grunt 并希望将变量传递给我通过 exec 运行的 PhantomJS 脚本 我想要做的是传递一个 url 供脚本从中获取屏幕截图 任何帮助将不胜感激 谢谢 Darren Grunt 脚本 exec phantomjs
  • 如何在可变参数模板函数中使用source_location?

    C 20 功能std source location用于捕获有关调用函数的上下文的信息 当我尝试将它与可变参数模板函数一起使用时 我遇到了一个问题 我看不到放置source location范围 以下不起作用 因为可变参数必须位于末尾 do
  • 如何使用 Selenium WebDriver 在 Chrome 中激活 AdBlocker?

    我想使用 Selenium WebDriver Java 激活 Chrome 浏览器的 Adblocker 如何做呢 您可以使用扩展的 crx 文件 也可以指向它安装的目录 假设您已经安装了它 您需要添加ChromeOptions给你的ne
  • Jquery - 使用 POST 请求,这是不允许的错误

    我正在尝试让 jquery 与网络服务进行通信 function Test item ajax type POST url WebService asmx Test data Item item contentType applicatio
  • 将字符数组视为比特流的 C/C++ 代码

    我在 char 数组中有一大堆二进制数据 我需要将其解释为打包的 6 位值的数组 I could坐下来编写一些代码来执行此操作 但我认为必须有人已经编写了一个很好的现有类或函数 我需要的是这样的 int get bits char data
  • 如何在 asp.net mvc 3 中使用 jquery 和 dataannotation 验证输入文件

    我确信我在这里遗漏了一些东西 我发现this验证文件的问题 这里是示例代码 public class UpdateSomethingViewModel DisplayName evidence Required ErrorMessage Y
  • MySQL 错误 1215:无法添加外键约束

    我正在尝试将我的新架构正向工程到我的数据库服务器上 但我无法弄清楚为什么会出现此错误 我试图在这里搜索答案 但我发现的所有内容都说要么将数据库引擎设置为 InnoDB 要么确保我尝试用作外键的键是它们自己的表中的主键 如果我没记错的话 这两
  • 如何在javascriptalert()中增加字体大小

    我可以控制javascript中字符串的字体大小吗alert call 我有下面的图片 我想增加字体大小以使其清晰易读 Javascript 警报弹出窗口 我可以在 javascriptalert 调用中控制字符串的字体大小吗 没有 警报窗
  • ADB - Android - 获取当前活动的名称

    有没有办法通过 adb 获取当前正在运行的活动的详细信息 我更喜欢解析结果dumpsys window windows over dumpsys activity adb shell dumpsys window windows grep
  • Spring Boot 的 Hibernate 字段命名问题(命名策略)

    请注意 此代码确实适用于普通 Spring 但不适用于 Spring Boot v1 3 3 我是否缺少某些内容 因为这是从有效的 Spring 应用程序导入的 下面的代码来自spring boot应用程序 Entity Table nam