使用readonly事务spring boot调用存储过程

ujv3wf0j  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(267)

我的程序如下:

@NamedStoredProcedureQueries({
    @NamedStoredProcedureQuery(name = "getFilteredServiceCentersStoredProcedure", procedureName = "getFilteredServiceCentersStoredProcedure",parameters = {
            @StoredProcedureParameter(name = "searchText", mode = ParameterMode.IN, type = String.class),
            @StoredProcedureParameter(name = "sectorId", mode = ParameterMode.IN, type = Long.class),
            @StoredProcedureParameter(name = "lat", mode = ParameterMode.IN, type = Double.class),
            @StoredProcedureParameter(name = "lon", mode = ParameterMode.IN, type = Double.class),
            @StoredProcedureParameter(name = "currentLatitude", mode = ParameterMode.IN, type = Double.class),
            @StoredProcedureParameter(name = "currentLongitude", mode = ParameterMode.IN, type = Double.class),
            @StoredProcedureParameter(name = "radius", mode = ParameterMode.IN, type = Double.class),
            @StoredProcedureParameter(name = "serviceCenterTypes", mode = ParameterMode.IN, type = String.class),
            @StoredProcedureParameter(name = "pageOffset", mode = ParameterMode.IN, type = Long.class),
            @StoredProcedureParameter(name = "pageSize", mode = ParameterMode.IN, type = Integer.class),
            @StoredProcedureParameter(name = "totalCount", mode = ParameterMode.OUT, type = Long.class) }) })

我正试图在服务内部调用它:

@Transactional(readOnly = true)

Spring一直给我:

Connection is read-only. Queries leading to data modification are not allowed

现在我的存储过程是只读的,我想从我的读取副本中读取它,所以我必须将连接标记为只读。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题