oracle jpa几个sql语句

// 本地查询,jpa原生sql

// 1、创建会话级临时表
    @Transactional
    @Modifying
    @Query(nativeQuery = true,value="Create global temporary table file_temp "
            + "on commit preserve rows as select * from MANAGE_FILE_UPLOAD_WQ")
    public void createFileTemp();
    // 2、将查询到的文书数据,放入到临时表中
    @Transactional
    @Modifying
    @Query(nativeQuery = true,value="insert into file_temp "
            + "(select * from MANAGE_FILE_UPLOAD_WQ  where MANAGE_BASE_INFO_ID =?1)")
    public void insertIntoFileTemp(String manageBaseInfoId);
    // 3、从临时表中取数据
    @Query(nativeQuery = true,value="select * from file_temp where MANAGE_BASE_INFO_ID =?1")
    public List findByFileTemp(String manageBaseInfoId);

// 解析List,一个Object[]相当于一个类,每个Object是一个字段

for(Object[] o:list) {
            String id = (String) o[0]; // 主键
            String baseInfoId = (String) o[1]; // 案件基础信息表主键id
            String fileNum = (String) o[2]; // 文书编号
            String fileType = (String) o[3]; // 文书类型
            String fileName = (String) o[4]; // 文件名称
            Blob fileBytes = (Blob) o[5]; // 文件内容
            String remark = (String) o[6]; // 描述
            LocalDateTime createTime = localDateFromTimestamp( (Timestamp)o[7]); // 创建时间
            String fileUrl = (String) o[8]; // 文书路径
            ManageFileUploadWq wq = new ManageFileUploadWq();
            wq.setId(id);
            wq.setManageBaseInformationId(baseInfoId);
            wq.setFileNum(fileNum);
            wq.setFileType(FileDocumentType.valueOf(fileType));
            wq.setFileName(fileName);
            /*try {
                wq.setFileBytes(new SerialBlob(fileBytes));
            } catch (SQLException e) {
            }*/
            wq.setRemark(remark);
            wq.setCreateTime(createTime);
            wq.setFileUrl(fileUrl);
            fileWqs.add(wq);
        }

// 无论是否是本地查询
单个字段单条记录时,返回类型最好用对应字段的类型或者Object。

单个字段多条记录时,返回类型最好用List或者List<字段对应类型>。

多个字段时,不论是多条记录还是单条记录,返回类型都应该是List

你可能感兴趣的:(oracle jpa几个sql语句)