Spring Boot 为什么我的存储库的查询注解中的email参数不起作用?

fhity93d  于 2023-04-30  发布在  Spring
关注(0)|答案(1)|浏览(164)

我的仓库有一个方法,通过电子邮件找到用户,我使用查询注解和一些参数,但它不工作,它返回?。这是详细信息:存储库类:

package com.baothien.server.repository;

import com.baothien.server.model.Users;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

public interface UserRepository extends JpaRepository<Users, Long> {
    @Query("SELECT u FROM Users u WHERE u.email = :email")
    List<Users> findUserByEmail(@Param("email") String email);
}

在我的服务类中获取userlist的方法:

public List<Users> getAllByEmail(String email) {
    return userRepository.findUserByEmail(email);
}

当我测试时,它返回:
休眠:选择u1_0。id,u1_0.email,u1_0.full_name,u1_0。密码,u1_0。role_num from users u1_0其中u1_0.email=?
在where条件下,u1_0。email=?,为什么会返回?但没有用我需要解决方案,非常感谢您的阅读和解决!
我读了很多JPA文档,遵循它,但仍然不起作用。

w9apscun

w9apscun1#

出示外卡是正确的行为。
它被称为准备好的声明。驱动程序将准备它并传递参数,该参数将被隐藏用于日志。假设您插入了一个密码字段,哈希密码显示在日志中。太可怕了
如果你还想展示它,有一个真实的的原因。在配置中添加以下行。

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE

相关问题