Spring @Query with principal and ternary operator
Spring @Query with principal and ternary operator
@Query("select p from Person p where p.id=?#{principal=='anonymousUser'?0:principal.id})")
public Person getCurrentUser();
此方法旨在 return 当前 user/person 或什么都没有(数据库中没有 id=0 的用户)如果用户是匿名的。在第一种情况下它工作正常,但是当用户是匿名用户时它会给出错误:
org.hibernate.QueryException: Not all named parameters have been set:
[1] [select p from Person p where p.id=?1)]
现在似乎需要一些参数,但为什么呢?查询不应该是
select p from Person p where p.id=0
?
好像把0换成null就可以了
@Query("select p from Person p where p.id=?#{principal=='anonymousUser'?0:principal.id})")
public Person getCurrentUser();
此方法旨在 return 当前 user/person 或什么都没有(数据库中没有 id=0 的用户)如果用户是匿名的。在第一种情况下它工作正常,但是当用户是匿名用户时它会给出错误:
org.hibernate.QueryException: Not all named parameters have been set: [1] [select p from Person p where p.id=?1)]
现在似乎需要一些参数,但为什么呢?查询不应该是
select p from Person p where p.id=0
?
好像把0换成null就可以了