问题描述
我的 DAOImpl 中有一个方法,它旨在从数据库中获取属于特定用户的所有书籍的列表...该方法如下所示:
@Override
public List<>BooksList> findListsOf(String userId) {
Query query = em.createquery("SELECT * from BooksList where booksListOwner = unserid");
List<BooksList> resultsList = query.getResultList();
if (resultsList.isEmpty()) throw new NotFoundException();
return resultsList;
}
预期的表达式或 disTINCT,得到 '*'
我这里的 sql 语句有什么问题?
BR, 麦克风
解决方法
您需要指定一个标识变量而不是 SQL 通配符
List<BooksList> resultsList = em.createQuery(
"SELECT b from BooksList b where booksListOwner = :userId")
.setParameter("userId",userId)
.getResultList();