You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用调用REST服务存数据报错:Hibernate属性解析失败

解决Hibernate QueryException: could not resolve property: line_type的问题

我来帮你排查这个Hibernate的属性解析错误,结合你的情况来看,大概率是实体类和数据库字段的映射出了问题,给你几个针对性的排查和解决方向:

  • 检查实体类属性与数据库字段的映射匹配度
    你提到数据库字段是LINE_TYPE (注意末尾带有空格),而逆向生成的实体类可能没处理这个特殊情况。Hibernate默认是基于实体类属性名来解析HQL/JPQL的,不会自动识别带空格的数据库字段。
    解决方案:在实体类对应的属性上显式添加@Column注解,指定带空格的字段名(Oracle中带特殊字符或空格的字段需要用双引号包裹,所以在Java注解里要转义双引号):

    @Column(name = "\"LINE_TYPE \"")
    private String lineType; // 这里的属性名可以根据你的实体类命名规范调整,比如line_type也可以
    
  • 检查HQL/JPQL查询语句中的属性名
    错误提示找不到line_type,要确认你的查询语句里写的是数据库字段名还是实体类属性名。HQL是面向实体类的,必须使用实体类的属性名,而不是数据库字段名。比如如果实体类属性是lineType,但查询里写了line_type,就会报错,这时候要把查询语句里的line_type改成实体类对应的属性名。

  • 对比两个项目的Hibernate配置差异
    你之前的应用能成功,现在的项目失败,要检查两个项目的Hibernate命名策略配置是否一致。比如是否使用了不同的物理命名策略(比如SpringPhysicalNamingStrategy和DefaultNamingStrategy的转换规则不同),如果当前项目的命名策略无法正确处理你的字段,也会导致映射失败。

  • 确认逆向生成的实体类是否遗漏字段
    有时候逆向生成工具可能因为字段名带空格等特殊情况,没有生成对应的实体类属性,这时候需要手动在实体类中添加该属性,并配置好@Column注解映射到数据库字段。

内容的提问来源于stack exchange,提问作者TheAlmac2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:42:56