gpt4 book ai didi

java - 单个存储库中的自定义方法返回 null

转载 作者:行者123 更新时间:2023-12-02 12:40:04 24 4
gpt4 key购买 nike

我按照创建和自定义存储库的引用指南进行操作,并得出以下结论:

public interface UserRepository extends JpaRepository<User, Long>, UserRepositoryCustom {
}


@Transactional(readOnly = true)
public class UserRepositoryCustomImpl implements UserRepositoryCustom {

@Override
public User findByToken(UUID token) {
return new User();
}
}


public interface UserRepositoryCustom {
User findByToken(UUID token);
}

在我的例子中,userRepository.findByToken(token);返回 null。

@编辑

下面的测试失败

@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = NONE)
public class UserRepositoryTest {
private final Logger logger = LoggerFactory.getLogger(this.getClass());

@Autowired
private TestEntityManager entityManager;

@Autowired
private UserRepository userRepository;

@Test
public void test() throws Exception{
assertNotNull(userRepository.findByToken(UUID.randomUUID()));
}
}

最佳答案

您的自定义实现命名错误。它应该以存储库的类名命名,而不是以声明自定义方法的接口(interface)命名。

刚刚将 UserRepositoryCustomImpl 重命名为 UserRepositoryImpl

该方法当前返回 null 的原因是 Spring Data 根据名称创建查询,但未找到具有指定 token 的 User

关于java - 单个存储库中的自定义方法返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44978008/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com