亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Hibernate/Spring Data JPA 無法識別 Spring Boot 應用程序中的

Hibernate/Spring Data JPA 無法識別 Spring Boot 應用程序中的

慕婉清6462132 2022-05-25 15:39:47
我正在@Formula為我的 Entity/Pojo 類中的一個屬性使用注釋。在運行時,它正在創建一個查詢來獲取結果,并且由于 ORA-02000: missing WITHIN keyword無法識別WITHIN為關鍵字而拋出 ERROR。標記.java@Formula("(SELECT CASE WHEN dis_order IS NULL THEN (SELECT listagg(qpm.displayed_order,', ') WITHIN GROUP (ORDER BY qpm.displayed_order) FROM que_post_mark qpm WHERE qpm.es_id = es_id AND qpm.sez_id = sez_id GROUP BY qpm.es_id, qpm.sez_id) ELSE NULL END FROM dual)")private String childItemsDisplayedOrder;生成的查詢如下:select marks0_.*,(SELECT    CASE         WHEN marks0_.displayed_order IS NULL THEN (SELECT            listagg(qpm.displayed_order,            ', ') marks0_.WITHIN         GROUP (ORDER BY            qpm.displayed_order)         FROM            que_post_mark qpm         WHERE            qpm.es_id  = marks0_.es_id              AND qpm.sez_id = marks0_.sez_id         GROUP BY            qpm.es_id ,            qpm.sez_id)         ELSE NULL     END FROM    dual) as formula2_0_ from    MARKS marks0_ where    marks0_.es_id =?它被識別WITHIN為列并附加別名,如marks0_.WITHIN我正在使用以下版本: spring-boot-starter-web = 1.4.0.RELEASE, spring-data-jpa:jar:1.10.2 ,hibernate-entitymanager:jar:5.1.3' hibernate-core:jar:5.1.3, hibernate-jpa-2.1-api:jar我試圖降低那些 jar 版本以使其工作,但它沒有工作。錯誤堆棧跟蹤如下:Caused by: java.sql.SQLSyntaxErrorException: ORA-02000: missing WITHIN keyword    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:225)    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:53)誰能幫我解決這個問題?
查看完整描述

1 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

我已經通過擴展這個鏈接中提到的休眠方言類解決了這個問題


public class Oracle10gDialectExtended extends Oracle10gDialect {

    public Oracle10gDialectExtended() {

        super();

        registerKeyword("within"); //Keyword has to be in lowercase.

    }

}

使用這個新類設置“hibernate.dialect”屬性。


Properties.setProperty("hibernate.dialect", "com.example.Oracle10gDialectExtended");


查看完整回答
反對 回復 2022-05-25
  • 1 回答
  • 0 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號