SSH框架整合遇到的錯誤——Hibernate查詢語句出現錯誤


在調試前台注冊界面,填寫注冊信息,用戶名Ajax異步驗證時報錯,報錯文件在Dao文件的查詢語句中。

 

報錯信息:

java.lang.IllegalArgumentException: org.hibernate.QueryException: Legacy-style query parameters (`?`) are no longer supported; use JPA-style ordinal parameters (e.g., `?1`) instead : from com.itcast.shop.user.vo.User where username = ? [from com.itcast.shop.user.vo.User where username = ?]
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:133)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:157)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:164)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:713)
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:103)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

 

錯誤原因:find方法過時,導致HQL語句格式必須改變才能使用。

將HQL語句中的"?"改為JPA-style:

String hql="from User where username = ?0";

這樣就可以正確查詢到信息了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM