gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 01:46:19 25 4
gpt4 key购买 nike

当我执行下面的查询时,我得到了异常。如何在 JPQL 查询中指定架构。我的数据库架构是公开的。数据库是PostgreSQL。

这是我的查询:

SELECT p FROM profile p WHERE p.mobile_no = :mobileNo

这是一个异常(exception):

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)

最佳答案

How do I specify the schema in a JPQL query?

架构配置不低于查询本身。它是在数据源中配置的。

请记住,您实际上正在写 JPQL (而不是 SQL )。因此,您可以针对实体而不是表编写查询。话虽如此,您应该使用实体名称和实体字段,而不是表名称和表列。

您应该使用Profile(大写P),而不是profile:

SELECT p FROM Profile p WHERE p.mobile_no = :mobileNo

还要确保 mobile_no 是您的 Profile 实体中的字段名称(而不是数据库表中的列名称)。

关于java - 如何在 EclipseLink JPQL 查询中指定架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57822426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com