代码之家  ›  专栏  ›  技术社区  ›  Pradyut Bhattacharya

持久性查询中的异常

  •  0
  • Pradyut Bhattacharya  · 技术社区  · 16 年前

    java类中的代码

    EntityManager em = null;
        EntityManagerFactory emf = null;
    
    public List fname (String id) {
        String fname = null;
        List persons = null;
        try {
            emf = Persistence.createEntityManagerFactory("WebApplicationSecurityPU");
            em = emf.createEntityManager();
            persons = em.createQuery("select r from Roleuser r").getResultList();
            int i=0;
            for (i=0;i<persons.size(); i++)
                System.out.println("Testing n "+ i +" " + persons.get(i));
    
        } catch(Exception e) {
            System.out.println("" + e);
        }
        finally {
            if(em != null) {
                em.close();
            }
        }
        return persons;
    }
    

    IllegalArgumentException 完全的例外是

    java.lang.IllegalArgumentException:一个 创建文件时发生异常 EntityManager中的查询

    我认为实体类没有初始化,或者它们没有与数据库连接 这就是为什么

    1 回复  |  直到 16 年前
        1
  •  0
  •   Pradyut Bhattacharya    16 年前

    我可以通过修改代码来纠正它

    @PersistenceUnit
    public EntityManagerFactory emf;
    EntityManager em;
    
    
    public List fname (String id) {
        String fname = null;
        List persons = null;
        //private PersistenceManagerFactory persistenceManagerFactory;
    
        try {
            emf = Persistence.createEntityManagerFactory("WebApplicationSecurityPU");
    
            em = emf.createEntityManager();
            persons = em.createQuery("select r from Roleuser r").getResultList();
    
            int i=0;
            for (i=0;i<persons.size(); i++)
                System.out.println("Testing n "+ i +" " + persons.get(i));
    
        } catch(Exception e) {
            System.out.println("" + e);
        }
        finally {
            if(em != null) {
                em.close();
            }
        }
        return persons;
    }
    

    谢谢