又把LIKE查询写成了如下的样子,期望把name里面包含了参数fullName所代表的字符串的结果查询出来。这自然是木有结果的,jpa的底层实现会告诉你没有:fullName这个参数。
@NamedQuery(name = "findFolderByFullNameLike", query = "SELECT f FROM Folder f WHERE f.name LIKE %:fullName%") }
query.setParameter("fullName", "哈哈");
正确的写法应该是,先把named query写成以下的样子
@NamedQuery(name = "findFolderByFullNameLike", query = "SELECT f FROM Folder f WHERE f.fullName LIKE :fullName") }
然后在参数替换的时候再使用百分号。
query.setParameter("fullName", "%哈哈%");