【问题标题】:spring boot jpa storedProcedure issue with MS-SQL serverMS-SQL服务器的spring boot jpa storedProcedure问题
【发布时间】:2017-01-13 05:59:38
【问题描述】:

我在使用 spring boot 应用程序和 ms sl server db 执行存储过程时遇到了一些问题

似乎正在更改列名 他是相关代码

@Entity
public class StationComplianceStatus {

    @Id
    @Column(name="nID")
    private Long id;

    @Column(name="strResult")
    private String result;

    @Column(name="strStationType")
    private String stationType;

    @Column(name="strActiveUser")
    private String activeUser;
//non ars constructor, getters setters

实现是

StoredProcedureQuery query = em.createStoredProcedureQuery("my sp name as apprears in db", StationComplianceStatus.class);
query.registerStoredProcedureParameter(1, String.class, ParameterMode.IN);
        query.registerStoredProcedureParameter(2, String.class, ParameterMode.IN);
        query.registerStoredProcedureParameter(3, String.class, ParameterMode.IN);
query.setParameter(1, "");
        query.setParameter(2, "");
        query.setParameter(3, "");
query.execute();
        log.debug(" after execution");
        List<StationComplianceStatus> stationsStatus = query.getResultList();

我遇到了这个错误

engine.jdbc.spi.SqlExceptionHelper:SQL 错误:0,SQLState:S1093 engine.jdbc.spi.SqlExceptionHelper :列名 str_active_user 无效。

我注意到列名从 strActiveUser 更改为 str_active_user,我相信这是问题的根源

【问题讨论】:

    标签: sql-server spring jpa spring-boot spring-data-jpa


    【解决方案1】:

    原来解决方案很简单,只需定义以下属性

    spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.DefaultNamingStrategy

    参考:https://github.com/spring-projects/spring-boot/issues/2129

    【讨论】:

      猜你喜欢
      • 2019-03-13
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 2019-04-30
      • 2020-01-04
      • 1970-01-01
      相关资源
      最近更新 更多