最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決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語句問題

一定要加上下面這個兩個注解啊啊啊啊?。。。。。?/p>

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

相關(guān)文章

最新評論

龙州县| 吴桥县| 青铜峡市| 九江县| 抚顺市| 富阳市| 府谷县| 丹东市| 彩票| 南郑县| 库伦旗| 名山县| 迁安市| 福安市| 乐至县| 包头市| 土默特右旗| 沂南县| 湘潭县| 英山县| 汝州市| 沂南县| 荔波县| 甘洛县| 宜都市| 台北市| 郸城县| 商都县| 平度市| 怀集县| 丹棱县| 富川| 远安县| 景洪市| 长岭县| 周至县| 项城市| 聊城市| 德令哈市| 桂阳县| 渝北区|