簡體   English   中英

Spring Boot API條件多次返回

[英]Spring boot API criteria returning multiple times

我從Spring Boot和JPA 2.0開始。 我的api從具有單個記錄的mysql數據庫運行查詢。 由於某些原因,API會不停地返回查詢結果集。

有趣的是,如果我返回Vector的大小,它可以正常工作,但是當我返回List <>時,它會多次運行相同的代碼。

我懷疑可能必須為連接停止或其他設置一些標志。 關於什么可能導致此的任何想法?

//controller
    @RestController
    public class ClientController {


            @RequestMapping("/client")
            public List<Client> client(@RequestParam(value="name", defaultValue="World") String name) {

                Client clientModel = new Client();
                List<Client> clients = clientModel.getClients();

                //return clients.size();
                return clients;


            }
    }





    //model
    public List<Client> getClients() {

            try {
                EntityManagerFactory emf = Persistence
                        .createEntityManagerFactory("CRM");
                EntityManager em = emf.createEntityManager();
                CriteriaBuilder cb = em.getCriteriaBuilder();
                CriteriaQuery<Client> q = cb.createQuery(Client.class);
                Root<Client> c = q.from(Client.class);
                q.select(c);
                List<Client> clients = em.createQuery(q).getResultList();
                // ArrayList<Client> clients = (ArrayList<Client>) q.select(c);
                em.close();
                emf.close();

                return clients;
            } catch (Exception e) {
                throw e;
            }
        }

找不到問題的根本原因,但找到了解決方案。 在第一個版本中,我在定義Client @entity的同一類中實現查詢。 我創建了一個不同的類“ ClientRepository”,並將查詢移入其中。 問題停止了。

我猜JPA不喜歡這樣...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM