当我执行下面的查询时,我得到了异常。如何在 JPQL 查询中指定架构。我的数据库架构是公开的。数据库是PostgreSQL。这是我的查询:SELECT p FROM profile p WHERE p.mobile_no = :mobileNo这是例外情况:java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager: Exception Description: Problem compiling [SELECT p FROM profile p WHERE p.mobile_no = :mobileNo]. [14, 21] The abstract schema type 'profile' is unknown.[30, 41] The state field path 'p.mobile_no' cannot be resolved to a valid type. org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1746) org.eclipse.persistence.internal.jpa.EntityManagerImpl.createQuery(EntityManagerImpl.java:1767) za.co.ezimax.database.ProfileDAO.get(ProfileDAO.java:15) za.co.ezimax.business.Business.register(Business.java:44) za.co.ezimax.rest.DatabaseTestServlet.doGet(DatabaseTestServlet.java:87) javax.servlet.http.HttpServlet.service(HttpServlet.java:634) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
1 回答
慕妹3242003
TA贡献1824条经验 获得超6个赞
如何在 JPQL 查询中指定架构?
架构配置不低于查询本身。它是在数据源中配置的。
请记住,您实际上正在编写JPQL(而不是SQL)。因此,您可以针对实体而不是表编写查询。话虽如此,您应该使用实体名称和实体字段,而不是表名称和表列。
而不是profile
,您应该使用Profile
(大写P
):
SELECT p FROM Profile p WHERE p.mobile_no = :mobileNo
还要确保这mobile_no
是实体中字段的名称Profile
(而不是数据库表中列的名称)。
添加回答
举报
0/150
提交
取消