欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決jpa查詢語句自動變成了update的問題

 更新時間:2021年08月06日 08:59:58   作者:YYZhQ  
這篇文章主要介紹了解決jpa查詢語句自動變成了update的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

jpa查詢語句自動變成了update

今天碰到了個奇怪的問題,明明dao中一個查詢函數(shù),一直報connection read-only錯誤,斷點設(shè)置過去,發(fā)現(xiàn)明明一個select 查詢語句,一直到生成Query查看變量里面都是查詢的代碼,可一執(zhí)行就變成了update,簡直見了鬼了。

我的架構(gòu)是sshj,層次也就是entity,dao,service,action,代碼如下,非常簡單的代碼:

dao層:

public boolean findCanXiaohu(String code) {
  try {
   String queryStr = "  select count(*) from t_tablename ";
   Query query = em.createNativeQuery(queryStr);
   Long res = (Long) query.getSingleResult();
   if (res > 0) {
    return false;
   } else {
    return true;
   }
  } catch (Exception e) {
   return true;
  }
 }

serivce層:

public boolean getCanXiaohu(String code){
  return dao.findCanXiaohu(code);
 }

action層:

public String edit(){
  String res =  super.edit();
  if ("1".equals(entity.getYhzhanghuxingzhi())) {
   String code = entity.getYhcunkuanrenbianhao();
   canXiaohu = service.getCanXiaohu(code);
  } else {
   canXiaohu = true;
  }
  return "input";
 }

剛開始我以為是因為在action層我寫進了prepareModel方法中,這個方法按道理也沒有寫入數(shù)據(jù)庫操作,但以防萬一吧,我改到了edit方法下,這個方法也就是打開一個編輯頁面,其prepareEdit函數(shù)中執(zhí)行了prepareModel,也不過根據(jù)傳遞的id從數(shù)據(jù)庫中查找entity。

奇怪就奇怪在一執(zhí)行到getCanXiaohu,看斷點也執(zhí)行到了dao.findCanXiaohu(),實話說,我在前面查找問題過程中,還把函數(shù)名都改成這樣了,原來沒有前綴find、get,就如同上面說的,我斷點設(shè)置到查詢語句,一步步執(zhí)行,生成query的時候看里面的語句還是select,可一執(zhí)行到query.getSingleResult(),它就直接異常,然后看輸出的語句,就成了一個update t_table的語句,其中的set語句set 各字段的值,因為這個函數(shù)是查詢函數(shù),沒加事務(wù),所以不能執(zhí)行update,所以就會異常出錯。但它就是個查詢,我也并不打算做修改,不知道為什么會出這樣的問題,怎么改都不行,也搞不明白是怎么回事。

我就各種試,最后, 我把語句改成了jpql標準語句,然后,居然可以了?。。。。?!

public boolean findCanXiaohu(String code) {
  try {
   String queryStr = "  select count(o) from ClassName o ";
   Query query = em.createQuery(queryStr);
   Long res = (Long) query.getSingleResult();
   if (res > 0) {
    return false;
   } else {
    return true;
   }
  } catch (Exception e) {
   return true;
  }
 }

不報錯了,也執(zhí)行查詢了,雖然成功了,可我還是不知道是怎么回事。

JPA框架中UPDATE語句問題

一定要加上下面這個兩個注解啊啊啊啊?。。。。?!

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot AutoConfigureAfter控制Bean的注入順序方法詳解

    springboot AutoConfigureAfter控制Bean的注入順序方法詳解

    這個文章主要介紹一下@AutoConfigureAfter在spring框架中的作用,在使用過程中,很多開發(fā)人員在使用它的時候都出現(xiàn)了問題,問題比較多的就是它們的注冊順序總不是我們預(yù)期的,下面介紹一下正常的使用方法,感興趣的朋友一起看看吧
    2024-05-05
  • Java IO之序列化與反序列化詳解

    Java IO之序列化與反序列化詳解

    這篇文章主要為大家介紹了Java IO之序列化與反序列化,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • java實現(xiàn)馬踏棋盤游戲

    java實現(xiàn)馬踏棋盤游戲

    這篇文章主要為大家詳細介紹了java實現(xiàn)馬踏棋盤游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Eclipse查看開發(fā)包jar里源代碼的方法

    Eclipse查看開發(fā)包jar里源代碼的方法

    這篇文章主要介紹了Eclipse查看開發(fā)包jar里源代碼的方法的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • java數(shù)據(jù)結(jié)構(gòu)實現(xiàn)順序表示例

    java數(shù)據(jù)結(jié)構(gòu)實現(xiàn)順序表示例

    這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)實現(xiàn)順序表示例,需要的朋友可以參考下
    2014-03-03
  • JDK與JRE的下載和安裝以及配置JDK環(huán)境變量圖文教程

    JDK與JRE的下載和安裝以及配置JDK環(huán)境變量圖文教程

    JRE也就是(Java?RuntimeEnvironment)Java運行環(huán)境,是運行JAVA程序所必須的環(huán)境的集合,包含各種類庫,下面這篇文章主要給大家介紹了關(guān)于JDK與JRE的下載和安裝以及配置JDK環(huán)境變量的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • Mybatis-Plus實現(xiàn)自動生成代碼的操作步驟

    Mybatis-Plus實現(xiàn)自動生成代碼的操作步驟

    AutoGenerator 是 MyBatis-Plus 的代碼生成器,通過 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各個模塊的代碼,極大的提升了開發(fā)效率,本文將給大家介紹Mybatis-Plus實現(xiàn)自動生成代碼的操作步驟
    2023-10-10
  • 探究實現(xiàn)Aware接口的原理及使用

    探究實現(xiàn)Aware接口的原理及使用

    這篇文章主要為大家介紹了探究實現(xiàn)Aware接口的原理及使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Java打印九九乘法表代碼詳情

    Java打印九九乘法表代碼詳情

    這篇文章主要介紹了Java打印九九乘法表,使用了雙重for循環(huán),使用do{}while()實現(xiàn)打印九九乘法表這些好玩的語法實現(xiàn),感興趣的小伙伴可參考下面文章內(nèi)容
    2021-09-09
  • IDEA引入本地jar包的幾種方法

    IDEA引入本地jar包的幾種方法

    本文主要介紹了IDEA引入本地jar包的幾種方法,文中通過圖文結(jié)合的方式碼介紹的非常詳細,對大家的學習或工作有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2024-01-01

最新評論