私はDAO実装クラスから実行しようとしているストアドプロシージャを持っています。しかし、私は結果を得ることに失敗しています。私のリストには戻り値がnullとして表示されます。ストアドプロシージャがSQL Serverで値を返さない
ストアドプロシージャ
編集ダオ実行私のDAOコード:
@Repository
public class OhlcDaoImpl implements OhlcDao {
@Autowired
SessionFactory sessionFactory;
Session session;
public List getOhlc(Result result) {
session = sessionFactory.openSession();
SQLQuery query = session.createSQLQuery("EXEC getOhlc :stockSymbol, :statementType, :financialDataTypeId, :fiscalYearId");
query.setString("stockSymbol",result.getStockSymbol());
query.setString("statementType",result.getStatementType());
query.setInteger("financialDataTypeId",result.getFinancialDataTypeId());
query.setInteger("fiscalYearId",result.getFiscalYearId());
List l = query.list();
return l;
}
}
は、私はint型フィールドのsetIntegerにsetParametersを使用を変更しようとしたんが、まだ何の結果。
DefaultController.java
コントローラクラスは、サービスとサービスコールのDAOを呼び出します。サービスには、getDataメソッドと実装クラスを持つインターフェイスクラスが1つだけあります。
@RequestMapping(value = "/getData",method = RequestMethod.POST)
public List getData(@RequestBody Result result){
List l =ohlcService.getData(result);
return l;
}
私のストアドプロシージャ
USE [Wealth_1_0_0_Srv]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[getOhlc]
(
@stockSymbol varchar(50),
@statementType varchar(50),
@financialDataTypeId int,
@fiscalYearId int
)
As
Begin
Set Nocount on;
Set Arithabort on;
Select fdd.FinancialHeadId,isnull(ftd.FinancialHeadText,fh.FinancialHeadName)FinancialHeadName,fdd.Value,isnull(ftd.Bold,0)Bold,isnull(ftd.RowSeq,0)RowSeq
from FinancialDataMast fdm
inner join FinancialDataDetl fdd on fdd.MastId=fdm.Id
inner join FinancialHeading fh on fh.Id=fdd.FinancialHeadId
inner join Stock s on s.Id=fdm.StockId
INNER JOIN StatementType st ON st.Id = fdm.StatementTypeId
left outer join FinancialTemplateMast ftm on ftm.StatementTypeId=fdm.StatementTypeId and ftm.SectorId=s.SectorId and ftm.FinancialReportType=(Case fdm.FinancialDataTypeId when 0 then 2 else 1 end)
left outer join FinancialTemplateDetl ftd on ftd.MastId=ftm.Id and ftd.FinancialHeadId=fdd.FinancialHeadId
where s.StockSymbo[email protected] and [email protected] and [email protected] and [email protected]
order by isnull(ftd.RowSeq,0) asc
End
私のパラメータは大丈夫です。デバッグモードで私はそれらを見ることができますが、私は結果セットを取得していません。
同じスタジオで同じパラメータ値でストアドプロシージャを実行しようとしましたか?結果は何ですか? – ahoxha
SQL管理スタジオで実行中のプロシージャは完全に値を返します。 –
通話中のクラス全体を投稿できますか? – ahoxha