以下查询位于我的AuthorizedVoter中,并在访问我的API之前先被解雇。这将返回1个结果。
" from School s inner join fetch s.student ss where s.Key = :schoolKey and " +
"s.accountKey = :accountKey and ss.Key= :studentKey " +
"and ss.country='INDIA'"
API触发以下查询,此查询的结果也是1行
SELECT DISTINCT
s.key, ss.studentkey
FROM
school s
INNER JOIN
student ss ON s.key = ss.reportingsessionkey
AND (ss.country='INDIA')
WHERE
session0_.key = ?
如果我逐出缓存,则返回4行,这是实际的正确值。 我没有使用任何二级缓存,它似乎是一级缓存问题。 请帮助我找到比驱逐API中的缓存更好的解决方案。还有什么是真正的原因。
当我将2个查询作为集成测试的一部分运行时,在另一个结果很好之后添加更多内容。 第一个查询是Spring安全性的一部分,API的第二部分将在此之后被调用,似乎学生的详细信息存储在持久化上下文中并继续在API中使用。
上找到代码的链接