如何解决OSGI,karaf帮助我
1。我想创建一个带有传入变量且输出变量为out或OUT SYS_REFCURSOR的商店,我使用JPaimpl我已经在网络上使用了某些方法,但是所有人都不能调用商店
public void getDmDonViCsgtDdhc(int nCapDv,String maDdhc,List<com.etc.osgi.lab.dto.DmDonViCsgt> dmDVs) {
LOGGER.info("*** Start DvcsgtJPaimpl.getDmDonViCsgtDdhc");
Map<String,Object> params = new HashMap<>();
params.put("maDdhc",maDdhc);
List<com.etc.osgi.lab.bean.DonViCanhsatGt> entities = this.jpa.txExpr(TransactionType.Supports,em -> {
StoredProcedureQuery store = em.createStoredProcedureQuery("my_procedure");
// StoredProcedureCall call = new StoredProcedureCall();
// call.setProcedureName("my_procedure");
// call.useNamedCursorOutputAsResultSet("p_recordset");
// DataReadQuery databaseQuery = new DataReadQuery();
// databaseQuery.setCall(call);
// Query query = ((JpaEntityManager) em.getDelegate()).createquery(databaseQuery);
// List<Object> students = query.getResultList();
store.registerStoredProcedureParameter("diadanhhanhchinhID",String.class,ParameterMode.IN);
store.registerStoredProcedureParameter("p_recordset",List.class,ParameterMode.REF_CURSOR);
store.setParameter("diadanhhanhchinhID",maDdhc);
store.execute();
List<com.etc.osgi.lab.bean.DonViCanhsatGt> resultList = store.getResultList();
List<com.etc.osgi.lab.bean.DonViCanhsatGt> listDvCsgt = resultList;
LOGGER.info("Result excute sql,result size: {}",listDvCsgt.size());
return listDvCsgt;
});
- 我想从JPA切换到JDBCBaseDao 除了提供者中的此文件 @Reference(target =“(component.name = com.etc.osgi.lab.service.donViCsgt)”) DvCsgtService服务;
在文件JPA中:
@Component(name = "com.etc.osgi.lab.service.donViCsgt")
在DAO文件中:
@Component(name = "com.etc.osgi.lab.dao.Dvcsgt")
程序:
CREATE OR REPLACE PROCEDURE BCA_MOTO.my_procedure(diadanhhanhchinhID IN Don_Vi_canhsat_GT.id%TYPE,p_recordset OUT SYS_REFCURSOR)
AS
BEGIN
OPEN p_recordset FOR
SELECT dv.ID,dv.DV_CSGT_CAPTREN_ID,dv.DIA_DANH_HANH_CHINH_ID,dv.MA_DON_VI,dv.TEN_DON_VI,dv.DIA_CHI,dv.TEN_COQUAN_CHUQUAN,dv.TEN_COQUAN_LAP,dv.TEN_DAYDU,dv.TRANG_THAI,dv.CAP_DON_VI,dv.SAP_XEP,dv.LINH_VUC,dv.MA_THAMCHIEU,dv.TEN_VIETTAT,dv.CO_QUAN,dv.MA_TRUC_THUOC,dv.DV_CSGT_CAPTREN,dv.DV_TRUC_THUOC,dv.KHO_BAC_ID,dv.MA_KHO_BAC,dv.NGAN_HANG_ID,dv.MA_NGAN_HANG,dv.DIA_DIEM_TAM_GIU_ID,dv.DON_VI_RESOURCE_ID,ddhc.TEN,ddhc.MA
FROM DON_VI_CANHSAT_GT dv
LEFT JOIN DIA_DANH_HANH_CHINH ddhc
ON dv.DIA_DANH_HANH_CHINH_ID = ddhc.ID
where dv.DIA_DANH_HANH_CHINH_ID = diadanhhanhchinhID;
END;
/
我的功能:
CREATE OR REPLACE function BCA_MOTO.my_proc_test(v_number IN NUMBER) RETURN sys_refcursor
as
p_rc sys_refcursor;
begin
my_procedure(v_number,p_rc);
return p_rc;
END;
/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。