第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法從 Spring-boot SQL 查詢中讀取結果

無法從 Spring-boot SQL 查詢中讀取結果

白衣非少年 2021-12-01 15:40:43
我正在嘗試使用來自存儲庫界面的以下查詢讀取從數(shù)據(jù)庫中獲取的數(shù)據(jù):public interface EventObjectRepository extends CrudRepository<EventObject, Long> {    @Query(value = "select tb.content from table0 tb where tb.id=:id", nativeQuery = true)    List<String> find(@Param("id") Long id);}下面是我從這個查詢中得到的結果的示例快照,它存儲在一個 java 列表中: List<String> results[clob1: '{"identity":0,"original_text":"some text","rowid":2}', clob2: '{"identity":2,"original_text":"some text","rowid":3}', clob3: '{"identity":3,"original_text":"some text","rowid":4}', clob4: '{"identity":4,"product.name":"some name","original_text":"some text","commodity.name":"some name","rowid":5}']但是,當我嘗試使用例如訪問列表的內(nèi)容時:results.get(1)我收到以下錯誤:[ERROR] 2018-10-22 13:44:45.113 [http-nio-8090-exec-1] [dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.ClassCastException: com.sun.proxy.$Proxy164 cannot be cast to java.lang.String] with root causejava.lang.ClassCastException: com.sun.proxy.$Proxy164 cannot be cast to java.lang.String我應該怎么做才能得到結果字符串?
查看完整描述

3 回答

?
慕田峪9158850

TA貢獻1794條經(jīng)驗 獲得超8個贊

如果我沒有錯,您正試圖訪問整個列表中的第一個對象,因為您需要將所有數(shù)據(jù)放入列表,然后嘗試從列表中獲?。ㄋ饕?。

例如:列表 listEmp=empRepository.findAll().get


查看完整回答
反對 回復 2021-12-01
?
小唯快跑啊

TA貢獻1863條經(jīng)驗 獲得超2個贊

在分配results.get(1)給之前String variable,您可以檢查列表中數(shù)據(jù)的類型,results.get(1).getClass()然后嘗試將結果分配給適當?shù)念愋汀?/p>


查看完整回答
反對 回復 2021-12-01
?
拉丁的傳說

TA貢獻1789條經(jīng)驗 獲得超8個贊

我終于在 CLOB 的幫助下讓它工作了。


我做的第一件事是在類定義中將 String 更改為 CLOB,如下所示:


@Column(columnDefinition="text")

@Lob

private String content;

通過添加@Lob,字符串將按照此處的帖子中的建議保存到 DB 內(nèi)的 CLOB 。然后為了檢索數(shù)據(jù),存儲庫查詢將返回一個 CLOB 列表,如下所示:


public interface EventObjectRepository extends CrudRepository<EventObject, Long> {

    @Query(value = "select tb.content from table0 tb where tb.id=:id", nativeQuery = true)

    List<Clob> find(@Param("id") Long id);

}

將數(shù)據(jù)放入 CLOB 列表后,我需要使用 InputStream 和 IOUtils 將每個 CLOB 轉(zhuǎn)換為字符串。例如,要從列表中獲取一項:


InputStream stream = results.get(1).getAsciiStream();

StringWriter w = new StringWriter();

IOUtils.copy(stream, w);

String sample = w.toString();


查看完整回答
反對 回復 2021-12-01
  • 3 回答
  • 0 關注
  • 336 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號