JPA執行原生SQL截斷Char型別問題

2021-09-02 03:07:14 字數 544 閱讀 5065

在jpa的api中執行原生sql:entitymanager.createnativequery(string sqlstring); 傳入引數是原生sql語句,返回sql物件。

如果oracle資料庫中某個字段定義的是char型別比方說是char[2],當使用entitymanager.createnativequery(string sql); 去查詢這些值的時候,發現返回的結果集中只要資料庫中是char型別的,都只返回乙個字元。

原因:hibernate將char 型別的字段轉化成了character。  因此造成查詢結果不對。

解決辦法:

只需要在sql語句中把資料庫中是char型別字段,加個trim函式處理就可以了。

用entitymanager.createnativequery(string sqlstring, class resultclass) 方法替換成以下方法即可:entitymanager.createnativequery(string sqlstring); 其中class resultclass是實體類的全名稱,包括所在的包名稱。              

Django執行原生SQL

hey,各位小夥伴,這次怎麼來玩一下,如何使用django執行原生sql 我們都知道,python在web界的扛把子,django,可謂是集大成為統一,各種各樣的外掛程式,forms元件,model模型,admin後台 反正就是乙個字,nb 本次就來學一下,如何在django執行原生語句 在使用dj...

django執行原生sql

一 orm row 方法 只能實現查詢 d list models.article.objects.raw select nid,count nid as num,strftime y m create time as ctime from blog article where user id st...

Django執行原生SQL語句

msg show successfully error tag 0 用connection庫 和原生的sql語句讀資料庫,如下 from django.db import connection 匯入connection sql str select from book str型別的原生sql語句 c...