0
我想創建一個查詢,以恢復所有使用JPA標準查詢與用戶相關的站點(OpenJPA的錯誤?):SQL語法錯誤
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Site> query = cb.createQuery(Site.class);
Root<Site> fromSite = query.from(Site.class);
Join<UserSiteClientRolePK, Integer> joinUser = fromSite
.join(Site_.siteClients)
.join(SiteClient_.usersSitesClientsRoles)
.join(UserSiteClientRole_.id)
.join(UserSiteClientRolePK_.userid);
query = query.select(fromSite);
query = query.where(cb.equal(joinUser, userid));
TypedQuery<Site> typedQuery = em.createQuery(query);
List<Site> sites = typedQuery.getResultList();
然而,當我測試代碼我得到這個錯誤:
<openjpa-2.4.0-r422266:1674604 fatal general error>
org.apache.openjpa.persistence.PersistenceException:
ERROR: error de sintaxis en o cerca de «AND»
Position: 440 {prepstmnt 737085888
SELECT ...
WHERE (t3.userid = ? AND AND) [params=?]} [code=0, state=42601]
出於某種原因,OpenJPA的是包括錯誤的SQL代碼「和AND)」在自動生成的SQL腳本的結尾,我想不通爲什麼。
這使我瘋狂。請有人幫助我嗎?順便說一下,我使用的是OpenJPA 2.4.0版本。
非常感謝。親切的問候。
我感謝你的幫助。與此懷疑相關的任務已經移到積壓,因爲它不是先驗的,所以我還沒有能夠測試它,我可能不會在一段時間。 –