當我執行下面的查詢時,我得到了異常。如何在 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
提交
取消