Spring+Hibernate项目报Action无法转为String类错误如何解决?
警告出现的原因
- 核心原因是
RootConfig类的JPA属性配置类型不匹配:Environment.HBM2DDL_AUTO配置项要求传入字符串类型的值,但你直接传入了org.hibernate.tool.schema.Action.UPDATE枚举对象,Hibernate读取配置时尝试将枚举强转为字符串触发类型转换异常,因此抛出该警告。 - 额外冗余配置:
RootConfig类上错误添加了@EnableWebMvc注解,该注解为Spring MVC上下文专属配置,仅需在Servlet层的Config配置类上声明即可,根容器配置类重复添加会导致Bean初始化逻辑冲突。
修复步骤
- 修正HBM2DDL_AUTO配置项的传值类型,两种修改方式二选一即可:
- 方式一:调用枚举的
name()方法获取对应的字符串值
properties.put(Environment.HBM2DDL_AUTO, Action.UPDATE.name());- 方式二:直接传入对应的字符串常量
properties.put(Environment.HBM2DDL_AUTO, "update"); - 方式一:调用枚举的
- 移除
RootConfig类上的@EnableWebMvc注解,避免Spring MVC上下文重复初始化。
修改完成后重新启动项目,该警告就会消失。
内容的提问来源于stack exchange,提问作者Michael Joseph Jackson
相关产品推荐
相关产品推荐

