繁体   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