【发布时间】:2018-07-22 08:58:33
【问题描述】:
我正在尝试使用 QueryDSL 编写一个简单的查询,但我的尝试失败并出现以下异常。
Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
我尝试通过以下方式执行查询。
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session session = sf.openSession();
JPQLQuery query = new HibernateQuery(session);
QClient t = QClient.client;
List<Client> lst = query.from(t).list(t);
System.out.println(lst.size());
还有另一种方式。
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("my.package.entities");
EntityManager em = emf.createEntityManager();
JPAQuery query = new JPAQuery(em);
QClient t = QClient.client;
List<Client> lst = query.from(t).list(t);
System.out.println(lst.size());
如上所述,这两种方式都失败了,但出现了相同的异常。
我使用的是Postrges DB,参数在hibernate.cfg.xml中指定。
我是否需要进行更多设置才能使其正常工作?
【问题讨论】:
-
同时添加hibernate.cfg.xml内容
标签: java hibernate jndi jpql querydsl