为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 EclipseLink JPQL 查询中指定架构?

如何在 EclipseLink JPQL 查询中指定架构?

蛊毒传说 2023-07-13 15:47:19
当我执行下面的查询时,我得到了异常。如何在 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(而不是数据库表中列的名称)。


查看完整回答
反对 回复 2023-07-13
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信